Шрифт:
Проверьте правильность своих рассуждений, запустив программу на выполнение…
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).
Такой способ задания числовых последовательностей, когда следующие элементы определяются через значения предыдущих, называется возвратным или рекуррентным.
Для себя его можно переформулировать в виде правила рекурсии: чтобы двигаться вперёд — смотри назад!
Метод Крамера — это метод численного интегрирования, который используется для решения систем линейных уравнений. Он основан на разбиении системы на более простые подсистемы и последовательном решении каждой из них методом Крамера.
Типы данных. Переменные
В реальной жизни мы совершаем различные действия над окружающими нас предметами, или объектами. Мы меняем их свойства, наделяем новыми функциями. По аналогии с этим компьютерные программы также управляют объектами, только виртуальными, цифровыми. Пока не дойдем до уровня объектно-ориентированного программирования, будем называть такие объекты данными.
Очевидно, данные бывают разными. Часто компьютерной программе приходится работать с числами и строками. Так на прошлой теме мы работали с числами, выполняя над ними арифметические операции. Операция сложения выполняла изменение первого числа на величину второго, а умножение увеличивало одно число в количество раз, соответствующее второму.
Числа в свою очередь бывают разными: целыми, вещественными, могут иметь огромное значение или очень длинную дробную часть. При знакомстве с языком Паскаль мы в первую очередь столкнемся с тремя типами данных:
Операции в программировании
Операция — это выполнение каких-либо действий над данными, которые в данном случае именуют операндами. Само действие выполняет оператор — специальный инструмент. Например: если бы вы выполняли операцию постройки стола, то вашими операндами были бы доска и гвозди, а оператором — молоток. (10+20)