Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2- Введение в программирование.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
753 Кб
Скачать
☆

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

Программа на языке ТР состоит из строк. Набор текста программы осуществляется с помощью текстового редактора среды ТР.

Общее число символов в файле не должно быть больше 64535. Компилятор ТР воспринимает строки программы длиной не более 126 символов. Редактор ТР вставляет в конец каждой строки невидимый на экране символ-разделитель (вставляется клавишей Enter).

Программист имеет право произвольно располагать строки на экране. Строка может располагаться с любой колонки, т.е. величина отступа слева устанавливается программистом с целью получить наиболее читабельный, по его мнению, текст программы.

В полном варианте программа на языке ТР имеет следующий вид (по мере объяснения).

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

Uses <имя1>,<имя2>,…;

Label

1, 234, m1, Stop;

Const

MaxN: word = 100; {Типизированная константа}

Vxod = ‘Блок_1’; {Строковая константа}

Kod = $124; {Константа – шестнадцатеричное число}

Type

Matrix = array[1..10] of real;

LatBukva = (‘a’..’z’);

Dni = 1..31;

Var

A, B, C : integer;

Result, Summa : real;

Vxod : boolean;

Procedure <имя>;

<тело процедуры>;

…;

Function <имя>;

<тело функции>;

…;

BEGIN

<операторы>;

END.

Регистр написания заголовков неважен. Любой раздел, кроме раздела операторов, может отсутствовать (если в нем нет необходимости). Название программы в ТР имеет чисто декоративное назначение, как комментарий. Конструкция Program <имя> не является необходимой в ТР, по сравнению с другими версиями Паскаля.

Раздел Uses состоит из этого зарезервированного слова и списка имен подключаемых стандартных из набора ТР и пользовательских (разработанных программистом) модулей. Включение дополнительных модулей расширяет список используемых в программе процедур, функций, переменных, констант. Если директива Uses присутствует, то она должна стоять перед прочими директивами. Она может появиться в программе только один раз.

Раздел описания меток Label содержит перечисленные через запятую метки переходов, установленные в основном блоке программы. Метка, поставленная перед каким-либо оператором, позволяет выполнить прямой переход к этому оператору из любого места программы с помощью оператора безусловного перехода goto. Метки могут обозначаться целым числом 0..9999 или символьными конструкциями длиной не более 63 букв (см. пример).

В разделе описания констант Const производится присваивание идентификаторам констант постоянных значений (см. пример).

Тип данных может быть описан непосредственно в разделе описания переменных, либо определяется идентификатором (именем) типа. Стандартные типы данных не требуют специального описания. Пользовательские типы, которые имеют имена описываются разделе Type (см. пример) (подробное рассмотрение типов данных ТР – позднее).

Раздел описания глобальных переменных (переменных, которые могут быть использованы в любом месте, процедуре, функции программы) начинается зарезервированным словом Var. После чего перечисляются имена переменных с указанием через двоеточие их типа (см. пример).

В отличие от стандартного языка Pascal в ТР разделы Label, Type, Const, Var могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколько угодно раз. Если в них нет необходимости, они могут отсутствовать. Однако поскольку программа компилируется последовательно, начиная с начала, важно соблюдать правило: все, что в программе используется должно быть перед этим описано. Например, если переменная, описывается, как массив М :array[1..Max] of integer, то величина Мах = 20 должна быть ранее (выше по программе) описана в разделе Сonst.

В разделе описания процедур и функций размещаются тела подпрограмм. Подпрограмма - это программная единица, имеющая имя, по которому она может быть вызвана из других частей программы. В языке ТР роль подпрограмм выполняют процедуры и функции. В общем случае подпрограмма имеет ту же структуру, что и программа (состоит из раздела описаний и раздела операторов). Для описания подпрограмм используются зарезервированные слова Procedure и Function. Заголовки процедур и функций записываются в начале программы до раздела операторов. Обычно за заголовком сразу следует реализация (тело) процедуры и функции, но они могут быть и разнесены внутри программы. Процедуры и функции подразделяются на стандартные и определенные пользователем. Стандартные - являются частью языка и могут вызываться без предварительного описания. Описание процедур и функций пользователя обязательно. Более подробное рассмотрение будет в следующих разделах.

Часть программы, предшествующая разделу операторов, называется разделом описаний.

Основным в программе является раздел операторов. Именно в нем с предварительно описанными переменными, константами, значениями функций выполняются действия, позволяющие получить результат, ради которого создавалась программа. Это раздел начинается словом Begin, далее следуют операторы языка, отделенные друг от друга «;». Завершает раздел слово End и точка. Операторы выполняются строго последовательно в том порядке, в котором они записаны, а также в соответствии с синтаксисом языка и правилами пунктуации. Раздел операторов завершает программу.

Кроме конструкций языка программа может содержать комментарии и ключи компиляции. Комментарии - это произвольный поясняющий текст в любом месте программы, заключенный в фигурные скобки { } или между двойными символами (* *). В ограничителях (* *) пробелы между скобкой и звездочкой запрещены. В тексте не должны находиться ограничители, с которых комментарий начинается (т.е. {пример {1}}). Однако ограничители { } можно вложить в (* *), и наоборот. Ограничений на длину комментрия нет. Комментарий игнорируется компилятором и поэтому никакого влияния на программу не оказывает. Ограничители {} ((* *)) удобно использовать при отладке программы, когда с их помощью временно исключаются части программы.

Текст программы может также содержать директивы компилятора, которые используются программистом для управления режимами компиляции, т.е. включать или выключать контроль ошибок, использовать или эмулировать математический сопроцессор, изменять распределение памяти и т.д. Эти директивы, как и комментарии, заключаются в фигурные скобки, но они имеют отличительный признак $, после чего указывается буква-ключ с последующим знаком “+” (включить режим) или “-“ (выключить) (не допускаются пробелы между открывающей скобкой, знаком $ и ключом компилятора). Директивы могут быть переключающими, условными и параметрическими. Переключающие директивы воздействуют на те опции, которые включены в диалоговое окно OPTIONS/COMPILER; условные директивы определяют условия, при которых компилируются те или иные франменты программы; параметрические директивы задают параметры, которые должен учитывать компилятор. Некоторые директивы могут действовать только на часть текста программы (локальные директивы). В отличие от этого глобальные директивы располагаются в начале текста программы (модуля) и действуют сразу на всю программу (модуль) в целом. Например, {$R-} – отключить проверку диапазонов индексов массивов, {$N+} – использовать сопроцессор 80Х87.