Литмир - Электронная Библиотека

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

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

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

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

Какое значение будет иметь переменная х после 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;

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)

(операнд1 10 +(оператор) операнд2 20)

Так например в математике и программировании символ плюса является оператором сложения по отношению к числам, в то же время этот оператор + выполняет операцию конкатенации, т. е. склеивания в случае строк.

10+9

19

‘Hello’+World’

‘HelloWorld’

Здесь следует для себя отметить, что то, что делает оператор в операции, зависит не только от него, но и от типов данных, которыми он оперирует. Например молоток в случае нападения на нас крокодила — перестает играть роль строительного инструмента, а превращается в оружие… Однако в большинстве случаев операторы не универсальны — например знак плюса неприменим, если операндами являются с одной стороны число, а с другой стороны строка.

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

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

История

Язык программирования Pascal был создан в 1970 году на основе языка Алгол-60.

Pascal создавался Никлаусом Виртом в 1968–1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал одну из первых в мире механических машин, складывающую два числа. Первая публикация Вирта о языке датирована 1970 годом; представляя язык, автор в качестве цели его создания указывал построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные.[источник Википедия]

Последующая работа Вирта была направлена на создание на основе Паскаля языка системного программирования с сохранением возможности вести на его базе систематический, целостный курс обучения профессиональному программированию: «The guiding idea was to construct a genuine successor of Pascal meeting the requirements of system engineering, yet also to satisfy my teacher’s urge to present a systematic, consistent, appealing, and teachable framework for professional programming.». Результатом этой работы стал язык Модула-2, после которого Вирт занялся разработкой объектно-ориентированного языка программирования Oberon на основе всех предыдущих разработок, и затем язык GO от компании Google.

Одной из целей создания языка Паскаль Никлаус Вирт считал обучение студентов структурному программированию. До сих пор Паскаль заслуженно считается одним из лучших языков для начального обучения программированию. Его современные модификации, такие как Object Pascal, широко используются в коммерческом программировании (среда Delphi). Также на основе синтаксиса языка Паскаль создан язык программирования Structured Text (ST) или Structured Control Language (SCL) для программируемых логических контроллеров.[источник Википедия]

3
{"b":"892521","o":1}