Чтение онлайн

на главную

Жанры

Занимательный Паскаль 7
Шрифт:

Тогда: возникает исключение TypeError: unsupported operand type(s) for +: int and str Паскаль сообщит что произошла недопустимая операция склеивания разных типов данных.

Числовые переменные

Самым простым и важным видом переменных являются числовые переменные. Они допускают хорошее наглядное представление, которым пользуются все профессиональные программисты: числовая переменная — это “коробочка”, в которую можно положить на хранение какое-либо число.

Чтобы

различать переменные, им дают имена. У каждой переменной есть имя и текущее значение. В дальнейшем будем предполагать, что компьютер уже обучен нижеследующим действиям со значениями переменных:

на русском языке

на английском языке

запросить значение переменной Х с клавиатуры

x =Readln(“x=”);

вычислить значение Х

x=function;

напечатать значение Х

Writeln(x)

если значение переменной Х удовлетворяет условию, то…

if (x<=0) do:

begin

end;

При вычислении значений переменных будем использовать следующие обозначения: сложение =a+b; вычитание — , умножение *, деление /, целочисленное деление //, возведение в степень **, извлечение квадратного корня sqrt(х), синус sin(x), косинус cos(x), целая часть числа int(x), абсолютная часть числа abs(x), случайные числа — библиотека random.

Эти действия в Паскале называются операторами и функциями. В Паскале их много, с некоторыми остальными мы познакомимся позднее. Также будем полагать, что перед началом вычислений при выполнении программы всем значениям переменных присваивается нулевая величина (если конечно в условии задачи конкретно не указано, какое значение нужно ввести).

Каждый программист

Работа программы во многом определяется ходом изменения значений её переменных.

Поэтому каждый программист стремится как можно более точно предвидеть характер этого изменения: на умении делать трассировку (пошаговое выполнение), и точно прослеживать порядок значений переменных базируется мастерство составления программ.

В качестве тренировки разберем следующую задачу:

Какое значение будет иметь переменная х после 5го цикла выполнения программы?

Проверьте правильность своих рассуждений, запустив программу на выполнение…

Program 1;

var int: x,y,z,i;

begin

x=1;

y=1;

z=1;

i=0;

while (i<5) do:

begin

x=x*y*z+1;

y=x*y*z+1;

z=x*y*z+1;

i=i+1;

Writeln(x,y,z);

end;

Readln;

End.

Обратите внимание в этой программе вместо сложения умножение и результат растет уже в геометрической прогрессии. И тогда в качестве начальных значений переменных нужно брать единицы 1, так как если оставить 0 то 0*1*2*3*…* = 0 в любом случае…

Доктор Шибкин

Доктор Шибкин был человеком чрезвычайно рассеянным и частенько допускал оплошности. Но как ни странно, именно это приводило его

порой к самым разным маленьким открытиям.

Так, читая предыдущий пункт книги, он проскочил глазами само задание и подумал, что нужно найти решение системы уравнений:

X=Х+Y+Z+1,

Y=X+Y+Z+1,

Z=X+Y+Z+1

что он и сделал мгновенно в уме: из одинаковости правых частей очевидно, что X=Y=Z, откуда: X=Y=Z=- 1/2 .

Когда же он собрался сверить ответ, то понял, что в задании речь идёт не о системе уравнений, а о программе для компьютера. Выполнив задание правильно, профессор с изумлением заметил: “Между двумя решениями нет ничего общего!”. С тех пор доктор Шибкин проникся идеей, что смысл математических и программных обозначений, при всей их схожести, — совершенно различный.

Таблица квадратов

Задача:

Составить программу, — печатающую таблицу квадратов целых чисел.

Решение:

Если значение переменной N будет пробегать натуральный ряд 1, 2, 3, …, N то переменная X=N*N даст квадрат N. Печатая значение N и X и зациклив программу, имеем:

Program 2;

var int: N=1;

begin

while (N<21) do:

begin

X=N*N;

Writeln(N, X);

N=N+1;

end;

Writeln(“End”);

Readln;

end.

Степени числа 2

Задача:

Аналогично таблице квадратов можно составить программу, печатающую числа 2**n: N=N+1; X=2**N. Однако это можно сделать проще, если заметить что степень числа 2 — представляет собой произведение двоек столько раз, каков показатель степени.

Решение:

Если значение переменной N будет пробегать ряд чисел от 1 до 21, то переменная X=1 в первом шаге, и затем X=X*2 в последующих шагах программы даст нам значение степени числа 2. Печатая значение N и X имеем:

Program 3;

var int: N=1;

var int: X=1;

begin

while (N<21) do:

begin

X=X*2;

Writeln(N, X);

N=N+1;

end;

Writeln(“End”);

Readln;

end.

Такой способ вычислений очень рационален. Чтобы лучше это понять, вычислим первые шесть значений 2^n вручную:

2*1=2

2*2=4

4*2=8

8*2=16

16*2=32

32*2=64

Т.е. вместо того, чтобы каждый раз перемножать n двоек, лучше один раз умножить на 2 предыдущее значение: 2^n=2*2^(n-1).

Такой способ задания числовых последовательностей, когда следующие элементы определяются через значения предыдущих, называется возвратным или рекуррентным.

Для себя его можно переформулировать в виде правила рекурсии: чтобы двигаться вперёд — смотри назад!

Метод Крамера — это метод численного интегрирования, который используется для решения систем линейных уравнений. Он основан на разбиении системы на более простые подсистемы и последовательном решении каждой из них методом Крамера.

Поделиться:
Популярные книги

Восход. Солнцев. Книга X

Скабер Артемий
10. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга X

Мастер 7

Чащин Валерий
7. Мастер
Фантастика:
фэнтези
боевая фантастика
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Мастер 7

Неудержимый. Книга XIV

Боярский Андрей
14. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIV

Все не случайно

Юнина Наталья
Любовные романы:
современные любовные романы
7.10
рейтинг книги
Все не случайно

Гром над Тверью

Машуков Тимур
1. Гром над миром
Фантастика:
боевая фантастика
5.89
рейтинг книги
Гром над Тверью

Идущий в тени 5

Амврелий Марк
5. Идущий в тени
Фантастика:
фэнтези
рпг
5.50
рейтинг книги
Идущий в тени 5

Кровь, золото и помидоры

Распопов Дмитрий Викторович
4. Венецианский купец
Фантастика:
альтернативная история
5.40
рейтинг книги
Кровь, золото и помидоры

Неудержимый. Книга VIII

Боярский Андрей
8. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
6.00
рейтинг книги
Неудержимый. Книга VIII

Чужое наследие

Кораблев Родион
3. Другая сторона
Фантастика:
боевая фантастика
8.47
рейтинг книги
Чужое наследие

Пистоль и шпага

Дроздов Анатолий Федорович
2. Штуцер и тесак
Фантастика:
альтернативная история
8.28
рейтинг книги
Пистоль и шпага

Мастер 4

Чащин Валерий
4. Мастер
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Мастер 4

Темный Патриарх Светлого Рода 6

Лисицин Евгений
6. Темный Патриарх Светлого Рода
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 6

Лорд Системы 14

Токсик Саша
14. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 14

Падение Твердыни

Распопов Дмитрий Викторович
6. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Падение Твердыни