Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория.pdf
Скачиваний:
465
Добавлен:
11.05.2015
Размер:
1.15 Mб
Скачать

РАЗДЕЛ 6. СТРУКТУРА ПРОГРАММЫ

Паскаль-программа состоит из одного или нескольких независимо компилируемых модулей.

Различают два вида модулей:

программный модуль;

модуль Unit.

Программный модуль определяет программу, получающую управление от операционной системы.

Модуль Unit имеет вспомогательный характер, используется для создания библиотек подпрограмм и может применяться лишь вместе с программным модулем.

Каждый модуль состоит из заголовка, Uses-части (предложения использования) и тела модуля (блока). Признаком конца модуля является точка.

6.1. Программный модуль

Программный модуль имеет следующую структуру, которую представляет рисунок 6.1.

<Программный_модуль> ::=

<Заголовок_прогр._модуля>

<Uses_часть> <Прогр._блок>

Рисунок 6.1 – Синтаксическая диаграмма структуры программного модуля

Заголовок программного модуля имеет вид, который иллюстрирует рисунок 6.2.

Заголовок программного модуля начинается служебным словом Program, за которым записывается имя, присваиваемое модулю.

Заголовок программы является чисто декоративным, служит для совместимости с другими компиляторами с языка Паскаль. Заголовок программы компилятором игнорируется. Однако желательно заголовок писать и присваивать программе смысловое имя.

130

<Заголовок_прогр._модуля> ::=

Program <Имя_модуля> ;

Рисунок 6.2 – Синтаксическая диаграмма заголовка программного модуля

Например,

Program Symma;

Заголовок отделяется от Uses_части точкой с запятой (;).

Предложение использования Uses определяет все модули Unit, которые будут использоваться в данной программе (как непосредственно используемые модули, так и модули, используемые этими модулями). Формат предложения использования представляет рисунок 6.3.

<Предложение_использования> ::=

Uses <Идентификатор> ;

,

Рисунок 6.3 – Синтаксическая диаграмма предложения использования

Модули Unit могут быть стандартными и модулями, созданными программистом.

Существует восемь стандартных модулей Unit: System, Dos, Crt, Printer, Graph, Overlay, Turbo3, Graph3.

Unit System подключается автоматически, в предложении Uses он не указывается. Он содержит встроенные процедуры и функции ввода-вывода, обработки строк, арифметические, динамического управления памятью, поддержку арифметики с ПТ и т.д.

Unit Dos содержит процедуры обращения к функциям MS-DOS.

Unit Crt содержит переменные, процедуры и функции, используемые при управлении выводом информации на экран дисплея.

131

Unit Overlay поддерживает построение программ с оверлейной структурой (программ с перекрытиями).

Unit Printer поддерживает вывод информации на принтер (содержит описание файла LST).

Unit Graph содержит процедуры для построения графических изображений.

Unit Turbo3, Unit Graph3 обеспечивают совместимость с программами, написанными для Паскаля 3.0.

Пример предложения использования:

Uses Dos, Crt, Graph;

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

<Программный_блок> ::=

<Раздел_описаний><Раздел_операторов>

Рисунок 6.4 – Синтаксическая диаграмма тела программного модуля

Раздел описаний следует вначале тела модуля. В языке Паскаль предусмотрено пять видов объявлений (описаний):

1)

объявление меток;

Стандартный порядок

2)

объявление констант;

3)

объявление типов;

объявлений

4)объявление переменных;

5)объявление процедур и функций.

В списке приведена стандартная последовательность разделов. В ранних версиях языка Паскаль разделы должны следовать друг за другом строго в этом порядке. Современные версии языка Паскаль допускают произвольный порядок объявлений. Отдельные виды объявлений и соответствующие разделы в модуле могут отсутствовать (быть пустыми) – если отсутствуют соответствующие элементы. Каждый раздел может повторяться произвольное число раз.

132

6.2. Раздел меток

Метка – это идентификатор или целочисленная константа в диапазоне 0 ÷ 9999, стоящая перед оператором и отделенная от него двоеточием. Метка служит для выделения оператора и играет роль имени данного оператора. Оператор с меткой называется помеченным.

Метки используются, чтобы перейти к выполнению определенного оператора, нарушая естественный последовательный порядок выполнения операторов.

Все метки операторов должны быть различныvb.

Передача управления оператору, помеченному меткой, осуществляется с помощью управляющtuj оператора Goto.

Пример 6.1.

Пример фрагмента программы:

M1: X := X + Y;

...

5: Z := sin(X);

...

Goto M1;

...

Goto 5;

...

Все метки, используемые в разделе операторов модуля, должны быть обязательно предварительно описаны в разделе меток.

Данный раздел начинается служебным словом Label и имеет вид, который представляет рисунок 6.5.

<Раздел_меток> ::=

Label

<Метка>

;

,

Рисунок 6.5 – Синтаксическая диаграмма раздела меток

Например, для примера 6.1:

Label M1, 5;

133

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]