Структура программы
Вопросы для самопроверки
1. Что представляют собой операции «целочисленное деление» и «остаток от деления»?
2. Что определяет приоритет операций?
3. Какая операция выполнится раньше в выражении без скобок: AND или XOR?
4. Как записать на языке Паскаль выражение x2+|a-b|?
5. Какого типа возвращает результат функция sqrt?
Программа на языке Паскаль состоит из заголовка, блока описаний и блока операторов.
Заголовок программы содержит имя программы. Он начинается с ключевого слова program, за которым и указывается само имя. При этом имя программы должно удовлетворять требованиям к именам (идентификаторам) в языке Паскаль, которые были приведены в §1.
Пример: Program PRIM;
Заголовок программы не является обязательным элементом. В случае если имеется файл *.pas, в котором записан исходный текст лишь одной программы, то она может быть безымянной. В этом случае ключевое слово program не указывается. Если же у программы есть заголовок, то слово program записывается в первую очередь.
За заголовком программы следует блок описаний. Все, что используется в программе на языке Паскаль (метки, константы, переменные и т.п.), должно быть предварительно описано в этом блоке. Другими словами, если мы используем в исходном тексте программы некоторое X, то компилятор к этому времени должен уже знать, что такое X, какого он типа, какой объем памяти необходимо для него выделить, какие в нем могут храниться значения и т.п.
Описания могут включать в себя раздел подключаемых библиотек (модулей), раздел описания меток, раздел описания констант, раздел описания типов, раздел описания переменных, раздел описания процедур и функций. Каждый раздел начинается со специального служебного слова, за которым и следуют собственно описания.
uses <описание подключаемых библиотек>;
label <описание меток>;
const <описание констант>;
type <описание типов>;
var <описание переменных>;
<описание процедур и функций>;
Рассмотрим вкратце назначение некоторых из перечисленных разделов.
Раздел описания модулей определяется служебным словом uses и содержит имена подключаемых модулей (библиотек), как входящих в состав системы Турбо Паскаль, так и написанных пользователем. Раздел описания модулей должен быть первым среди разделов описаний. Имена модулей отделяются друг от друга запятыми.
Пример: uses CRT, Graph;
После того, как в разделе uses указано имя библиотеки, в самой программе можно использовать дополнительные процедуры и функции, входящие в её состав.
Любой оператор в программе может быть помечен меткой. Благодаря этой метке, к такому оператору можно перейти из любого места программы с помощью специального оператора goto (получается команда типа «перейти к оператору, который помечен меткой METKA»). В качестве метки могут использоваться произвольные целые без знака, содержащие не более четырех цифр, а также любые имена. Метка ставится перед оператором и отделяется от него двоеточием. Все метки, используемые в программе, должны быть перечислены в разделе описания меток.
Пример: label 3, 471, 29, Quit;
Описание констант позволяет использовать имена как синонимы некоторых значений. Например, в математике известны такие константы, как π (3.14) или e (2.71). В программе на языке Паскаль все такие константы необходимо определить в разделе описаний констант.
Пример: const K= 1024; MAX= 16384;
В разделе описания переменных определяются все используемые в программе переменные и их типы. Более подробно с ними мы познакомимся в следующих параграфах.
Пример:
var
P,Q,R: Integer;
A, B: Char;
F1, F2: Boolean;
Отметим, что в программе необязательно должны присутствовать все указанные выше разделы: пользователь описывает только то, что он использует. Если в программе нет, например, констант или меток, то в блоке описаний соответствующие разделы не записываются. В случае очень простой программы может так получиться, что блок описания вовсе не потребуется.
Завершает программу на языке Паскаль основной блок. Основной блок, в отличие от заголовка и описаний, присутствует всегда во всех программах. Именно здесь записываются все команды, которые необходимо выполнить.
Основной блок представляет собой набор операторов, разделенных между собой символами «;». Он начинается зарезервированным словом begin и заканчивается словом end, после которого следует точка.
Пример:
begin
writeln (‘Hello world!’);
end.
Пример: программа для вычисления площади, периметра и длины диагонали прямоугольника, размеры которого задаются пользователем.
program test;
var
a, b: integer;
s, p: integer;
d: real;
begin
writeln(‘Введите длину и ширину прямоугольника’);
readln(a, b);
s := a*b;
p := 2*a+2*b;
d := sqrt(sqr(a)+sqr(b));
writeln(‘Площадь прямоугольника = ’, s);
writeln(‘Периметр прямоугольника = ’, p);
writeln(‘Диагональ прямоугольника = ’, d:5:2);
end.