Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
12.05.2015
Размер:
253.95 Кб
Скачать

Модули

1

Общие положения

Подпрограмма — это фрагмент кода, к которому можно обратиться по имени

Логические законченные части программы оформляются в виде подпрограмм

Подпрограмма записывается один раз, а вызываться может столько раз, сколько необходимо

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

Модуль - это часть программы, компилируемый

отдельно от остальных ее частей. Именно

 

возможность раздельной компиляции и является

 

основным преимуществом модулей.

2

 

Модуль — это подключаемая к программе

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

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

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

3

Модули можно разделить на:

-стандартные, которые входят в состав

системы программирования (System,

Crt,Dos и WinDos,Graph,Strings,Printer и Winprn);

- пользовательские, то есть создаваемые программистом.

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

4

Состав модуля

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

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

Секция инициализации предназначена для присваивания начальных значений переменным, которые используются в модуле.

5

Структура модуля

unit имя;

{ заголовок модуля }

interface

{интерфейсная секция модуля или секция внешних связей}

{описание глобальных элементов модуля (видимых извне) }

implementation

{секция реализации модуля }

{описание локальных (внутренних) элементов модуля }

begin

{ секция инициализации } { может отсутствовать }

end.

6

Название модуля

Заголовок модуля (unit <имя_модуля>;) обязан присутствовать всегда.

Имя модулям и имя файлам, содержащего исходный текст модуля имеют одинаковые имена.

Например:

модуль с именем modul_1 хранится в файле с именем modul_1.pas, и т.п.

7

Секция внешних связей

Эта секция содержит объявления тех типов данных, констант, переменных, подпрограмм и т.п., которые должны быть видны вне модуля.

interface

[uses список_вспомогательных_модулей>;] [const <список_внешних_констант>;]

[type <список_внешних_типов_данных>;] [var <список_внешних_переменных>;] [procedure <объявление_внешней_процедуры>;] [function <объявление_внешней_функции>;]

Всекциях связей не допускается рекурсивное использование модулями друг друга.

8

Секция реализации

implementation

[uses <список_вспомогательных_модулей>;] [const <список_внутренних_констант>;] [type <список_внутренних_типов_данных>;] [var <список_внутренних_переменных>;] [procedure <описание_внешней_процедуры>;]

[function

<описание_внешней_функции>;] [procedure

<объявление_и_описание_внутренней_процедуры>;]

[function

<объявление_и_описание_внутренней_функции>;]

В секциях реализации допускается рекурсивное использование модулями друг друга.

9

Секция инициализации

 

Секция инициализации предназначена

 

для присваивания начальных значений

 

переменным, используемым в модуле или в

 

программе, к которой он подключен.

 

Операторы, расположенные в секции

 

инициализации модуля, выполняются перед

 

операторами основной программы. Если к

 

программе подключено более одного

 

модуля, их секции инициализации

 

вызываются на выполнение в порядке,

 

указанном в операторе uses.

10