Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чернов Шафеева.doc
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
1.39 Mб
Скачать

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

Любая программная единица включает следующие разделы:

<Объявление программной единицы>

{Раздел описаний} BEGIN

{Раздел исполняемых операторов} END. {символ конца программной единицы}

<Объявление программной единицы>  заголовок программы, процедуры или функции. Заголовок программы можно опускать, для процедур и функ­ций наличие заголовка обязательно.

<Cимвол конца программной единицы>  это символ точки для прог­раммы или символ ";" для процедуры или функции.

В разделе описаний объявляются идентификаторы типов, объектов, констант, переменных, а также метки, процедуры и функции. Каждый блок определяется своим ключевым словом. Тогда структура программы будет иметь вид

PROGRAM <имя программы>;

USES <список библиотечных модулей>;

LABEL <список меток в основном блоке>;

CONST < определение констант>;

TYPE <определение типов>;

VAR

<определение глобальных переменных>;

<определение процедур>

<определение функций>;

BEGIN

<основной блок программы>

END.

Директива USES выполняет подключение стандартных или написанных программистом модулей. Она должен обязательно стоять первым, если присутствует в программе. Например, строкой USES CRT, DOS, GRAPH;

производится подключение трех модулей CRT, DOS и GRAPH.

Модуль CRT содержит процедуры и функции для управления выводом текста на дисплей, звуковым генератором и чтения с клавиатуры. DOS со­держит программы операционной системы. GRAPH содержит комплекс графи­ческих программ универсального назначения.

В отличие от стандартного Паскаля блоки TYPE, CONST, VAR, LABEL в Турбо Паскале могут следовать друг за другом в любом порядке и встре­чаться в разделе описаний сколько угодно раз.

В блоке LABEL перечисляются через запятую метки, используемые в программной единице. Метка может содержать числовое значение от 0 до 9999 либо являться идентификатором из не более чем 63 символов. Например:

LABEL 1, 4.00, M1, EPS;

если метка описана в этом блоке, но в программе не встретилась, то вы­дается сообщение об ошибке. Метки не должны повторяться. Блок меток может находиться в любом месте, их может быть несколько, но все метки должны быть определены до начала основной программы. При отсутствии меток блок исключается.

Блок CONST описывает константы двух видов:

CONST <имя1>=<константа1>; или CONST <имяК>:<тип>=<константаK>;

<имя2>=<константа2>; <имяR>:<тип>=<константаR>;

... ...

Например: CONST

NI=100;

f= -NI;

d: real=7.65432;

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

Блок TYPE содержит определения вводимых программистом нестандарт­ных типов в следующих формах

TYPE <идентификатор>=(список_компонентов);

или

TYPE идентификатор>=<описание_типа>или<имя_другого_типа>;

Пример: TYPE FAMILY=(FATHER, MOTHER);

Если в Паскале используются только стандартные типы (например: INTEGER, REAL), то этот блок опускается.

Блок VAR описывает имена переменных, а также имена массивов:

VAR A1, A2, ..., An: <тип1>;

B1, B2, ..., Bn: <типК>;

...

<имя массива>: ARRAY[диапазон] OF <тип>;

где буквами Ai, Bj указаны имена переменных, а <тип1>, <типК> – типы соответствующих переменных, [диапазон] указывает начальное и конечное значения индексов массива, <тип> задает тип элементов массива.

Пример: VAR

A, B, C: INTEGER; {объявлены три переменные целого типа}

D, M: REAL; {объявлены две вещественные переменные}

MASS1: ARRAY[1..10] OF REAL; {массив из 10 чисел}

MASS2: ARRAY[-2..2] OF CHAR; {массив из пяти символов}

В качестве значений диапазона могут использоваться идентификаторы лю­бого порядкового типа, если их значения определены выше в разделе CONST.

Основной блок программы начинается с ключевого слова BEGIN и за­канчивается END, после которого ставится точка. Основной блок содержит программу из выполняемых операторов, в которой используется то, что было объявлено и описано в разделе описаний.

Пример программы, явно преобразующей вещественные числа в целые:

PROGRAM INTRЕAL;

VAR A,B,C:INTEGER;

X,Y,Z:REAL;

BEGIN

READ(X,Y);

Z:=Y+X;

A:=TRUNС(Z); {выделение целой части }

B:=ROUND(Z); (* округление *)

C:=B-A;

WRITELN('Z=', Z, 'A=', A, 'B=', B, 'C=', C);

END.

Длина строки в программе не может превышать 126 символов. Объем текста в файле с программой не должен быть более 64 Кб.

Любой блок программы может содержать комментарий.

Комментарий  это произвольная последовательность любых символов, обрамленная фигурными скобками или парами символов (* и *). Коммента­рий разрешается вставлять в любое место программы, где по смыслу может стоять пробел.

Существует некоторое ограничение на размещение блоков. Программа компилируется последовательно, поэтому то что используется в програм­ме или подпрограммме, должно быть определено выше.