Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_novyy (1).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
388.1 Кб
Скачать

13. Модули в языке turbo - pascal

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

Позднее в реализациях Turbo-Pascal начиная с версии 4.0 был учтен этот недостаток и появилась возможность при выполнении программы подключать к ней внешние подпрограммы и файлы. Это достигается двумя способами - применение так называемых директив компилятора и применение новых объектов программирования в Turbo-Pascal - модулей.

Для того, чтобы включить в программу текст хранимый на диске в некотором файле, необходимо в нужном месте программы поставить директиву компилятора

$I <имя файла>

при этом имя файла должно содержать путь к нему, например директива

$I c:\pascal\user\modul1.pas

включит в текст программы текст хранимый в файле modul1.pas. Если

путь к файлу не указан, то компилятор будет его искать только в

текущей директории.

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

Более сильным средством организации внешних подпрограмм в языке Turbo-Pascal является аппарат модулей, наличие которого позволяет программировать и отлаживать программу по частям, создавать библиотеки подпрограмм и данных, пользоваться возможностями стандартных модулей и т.д.

Конструкция языка программирования Turbo-Pascal модуль состоит из нескольких частей:

1) Заголовок модуля.

Заголовок модуля состоит из служебного слова Unit и имени программы. Сам модуль должен быть помещен в файл, имя которого совпадает с именем модуля, а его расширение должно быть .pas.

2) Интерфейс модуля.

Через интерфейс модуля осуществляется взаимодействие основной программы с модулем (или модуля с модулем). В интерфейсе указываются константы, типы, переменные, процедуры и функции, которые могут быть использованы основной программой (модулем) при вызове этого модуля. Интерфейс начинается со служебного слова interface. Далее после служебного слова uses указываются имена используемых здесь модулей, затем следует раздел описаний констант, типов, переменных и т.д.

3) Исполнительная часть модуля.

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

4) Секция инициализации модуля.

Секция инициализации модуля применяется для установления его связи с какими-либо файлами и для инициализации переменных. Эта секция начинается словом Begin, после которого идут исполняемые операторы и заканчивается словом End. (с точкой). Если инициализация модуля не нужна, то в секции помещается лишь слово End. (с точкой).

Первые три раздела модуля являются обязательными, последовательность разделов так же является обязательной. Таким образом общая структура модуля имеет вид:

Unit <имя модуля>;

Interface;

<описание объектов используемых основной программой> Implementation;

<описание локальных объектов используемых модулем>

Begin

<операторы инициализации модуля>

End.

Для того чтобы избежать многократного описания в различных программах некоторых общеупотребительных типов данных, можно сосредоточить их в одном модуле. Рассмотрим, например, модуль, связанный с описанием дат, месяцев, дней и т.д.

Unit Calendar;

Interface

Type

Days = (Mon,Tue,Wed,Thu,Fri,Sat,San);

Months = (Jan,Feb,Mar,Apr,May,June, July,Aug,Sept,Oct,Nov,Decem);

WorkDays = Mon .. Fri;

Summer = June .. Aug;

Autumn = Sept .. Nov;

Spring = Mar .. May;

Winter = Decem .. Feb;

DayNo = 1 .. 31;

YearNo = 1900 .. 2000;

Date = Record

Day : DayNo;

Month : Months;

Year : YearNo End;

Implementation

End.

Чтобы использовать подпрограммы, константы, типы, переменные, описанные в интерфейсе модуля, в основной программе следует записать слово Uses, после которого указать имя (имена) модуля (модулей), например

Program example(input,output);

Uses Calendar; .............................

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

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