Структура программы

Вопросы для самопроверки

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.