Итак, на предыдущей странице мы определились со следующими понятиями: program, integer, real, const, var, begin, end, write, writeln, read, readln. Давайте напишем простые программы на Паскале с их использованием. Но сначала выясним, из каких частей состоит программа на Паскале.
Любая программа на языке программирования Pascal имеет три составляющие: 1) заголовок; 2) раздел описаний; 3) тело программы.
✎ 1) Заголовок – это слово Program , после которого идет название программы латиницей и точка с запятой в конце. Название не может начинаться с цифры, не должно совпадать с зарезервированными словами (begin, end, integer и т.п.) или с названиями переменных из раздела описаний (см. ниже), а также недопустимо использование каких бы то ни было символов (‘@’, ‘%’, ‘&’ и т.п.), кроме подчеркивания. Название желательно давать со смыслом, которое отображало бы суть самой программы. Но заголовок писать не обязательно.
✎ 2) Раздел описаний – Поскольку сначала мы будем рассматривать простейшие задачи, то у нас во втором разделе будет находиться или описание констант, или переменных (см. пп. 4 и 5 статьи Введение в Pascal).
✎ 3) Тело программы – блок операторов, в котором записываются команды для выполнения. Начинается этот блок словом begin («начало»), а заканчивается словом end. («конец») с точкой в конце(пп. 6, 7 той же статьи).
Таким образом, в общем случае программа на Паскале выглядит следующим образом:
Program <название программы>;
<раздел описаний>
begin
<оператор 1>;
<оператор 2>;
. . . . . . .
<оператор N>;
end.
При решении простейших задач ограничимся сначала целыми числами. Перед тем как начать программировать, укажем простейшие 4 действия над числами в Паскале: «+» − сложение, «-» − вычитание, «*» − умножение, «/» − деление. Как видим, в программировании и математике элементарные действия над числами обозначаются одинаково. Решим следующую задачу:
Задача. Пусть даны целые числа A и B. Найти их сумму.
Назовем программу нахождения суммы как Summa. Тогда часть кода, отвечающая за название программы, будет иметь вид:
Program Summa; { программа называется Summa }
Обозначим сумму чисел A и B через S. Поскольку числа целые, то и сумма будет целым числом. Таким образом, в описании чисел A, B, S будем использовать переменную целого типа integer
. Но как описать эти числа в разделе описаний – как константы (const) или как переменные (var)? Все зависит от условия задачи. Мы можем числа A и B записать и как константы, и как переменные. Но в любом случае сумма S будет переменного типа, поскольку нам неизвестно её значение.
Итак, пусть дано значение чисел A и B, равное, например, 23 и 76 соответственно. Поскольку мы знаем значения наперед, то A и B будут типа const, а S опишем как var. Учитывая, что описание констант идет перед описанием переменных, раздел описаний в этом случае будет следующим:
Const
A = 23;
B = 76;
var
S: integer;
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 Таким образом, тело программы будет состоять из вычисления суммы S и вывода её на экран. В паскале, чтобы вычислить сумму А и В, нельзя просто записать S = A + B; такая запись возможна, если надо проверить, не равно ли число S сумме A + B. А чтобы в переменную S записать значение суммы А + В, надо значение этой суммы «присвоить» переменной S, т.е. сумму А + В записать в то место памяти компьютера, которое выделено для переменной S. Это как бы «впихивание» значения одного числа в значение другого. Записывается присваивание так:
S := A + B;
Для вывода результата используется оператор вывода write с комментарием на экране:
write('Сумма чисел 23 и 76 равна: S = ', S);
Объединяя наши 1)заголовок программы, 2)раздел описаний и 3)тело программы, получим небольшой код, который можно скопировать в PascalABC.Net или в другую версию Pascal:
Program Summa; { программа называется Summa }
Const
A = 23;
B = 76;
var
S: integer;
begin
S := A + B; { сумма чисел A и B }
writeln('Сумма чисел 23 и 76 равна: S = ', S);
readln { <-- Ожидание нажатия Enter, после
которого программа завершится }
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 После выполнения этой программы на экране мы увидим:
Сумма чисел 23 и 76 равна: S = 99
Все хорошо и программа работает. Но здесь мы написали кое-что лишнее. Посмотрите внимательно на оператор вывода write в конце – там выводится сумма S. Изменится ли что-нибудь, если вместо S написать само значение суммы, то есть А + В? Правильно, ничего. Только тогда надо убрать переменную S из нашего кода, а вместо неё при выводе на экран использовать сумму А + В. Вот упрощенный код:
Program Summa; { программа называется Summa }
Const
A = 23;
B = 76;
begin
writeln('Сумма чисел 23 и 76 равна', A + B); { <-- Выводим сумму }
readln { <-- нажимаем Enter и выходим из программы }
end.
В этом случае результат на экране будет такой:
Сумма чисел 23 и 76 равна 99
Это и есть наша простейшая первая программа. Другие задачи такого типа можете посмотреть на странице Прямоугольник, круг и параллелепипед. Вычисление площадей, периметров и объемов. Там, правда, используются переменные действительного типа real, но суть та же: решать задачу без оператора присваивания. Вообще этот оператор используется там, где надо вычислить промежуточную переменную, которая задействуется при вычислении основного результата. Поэтому там, где при вычислении результата (ответа к задаче) можно обойтись без присваивания, записывать выражение надо прямо в оператор вывода write. Только, если выражение слишком большое и не помещается в оператор вывода, надо вычислять его отдельно, вводя дополнительные переменные (var). Но в простейших случаях, как правило, можно обойтись и без оператора присваивания.
На следующей странице поговорим о процентах.