Tasuta

Занимательный Паскаль 7

Tekst
Märgi loetuks
Šrift:Väiksem АаSuurem Aa

Тогда: возникает исключение 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=-½.

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

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

Задача:

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

Решение:

Если значение переменной 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;