Новости           

Программы

Turbo Pascal

Игры  

Документация

"Странности"

FAQ

Ссылки

Благодарности

Об авторе

 

Яндекс цитирования

                                            27. МОДУЛИ

Модуль (UNIT) в TURBO PASCAL - это особым образом оформленная биб лиотека подпрограмм. Модуль в отличие от программы не может быть за пущен на выполнение самостоятельно, он может только участвовать в построении программ и других модулей.
Модули позволяют создавать личные библиотеки процедур и функций и
строить программы практически любого размера.
Модуль в TURBO PASCAL представляет собой отдельно хранимую и неза висимо компилируемую программную единицу.
В общем случае модуль - это совокупность программных ресурсов, предназначенных для использования другими программами. Под программ ными ресурсами понимаются любые элементы языка TURBO PASCAL: констан ты, типы, переменные, подпрограммы. Модуль сам по себе не является выполняемой программой, его элементы используются другими программны ми единицами.
Все программные элементы модуля можно разбить на две части:
- программные элементы, предназначенные для использования другими программами или модулями, такие элементы называют видимыми вне моду ля;
- программные элементы, необходимые только для работы самого моду ля, их называют невидимыми или скрытыми.
В соответствии с этим модуль, кроме заголовка, содержит две основ- ные части, называемые интерфейсом и реализацией.
В общем случае модуль имеет следующую структуру:

unit <имя модуля>; {заголовок модуля}

interface
{ описание видимых программных элементов модуля }

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

begin
{ операторы инициализации элементов модуля }
end.

В частном случае модуль может не содержать части реализации и час-
ти инициализации, тогда структура модуля будет такой:

unit <имя модуля>; {заголовок модуля}

interface
{ описание видимых программных элементов модуля }

implementation

end.

Использование в модулях процедур и функций имеет свои особенности. Заголовок подпрограммы содержит все сведения, необходимые для ее вы зова: имя, перечень и тип параметров, тип результата для функций, эта информация должна быть доступна для других программ и модулей. С дру гой стороны, текст подпрограммы, реализующий ее алгоритм, другими программами и модулями не может быть использован. Поэтому заголовок процедур и функций помещают в интерфейсную часть модуля, а текст - в часть реализации.
Интерфейсная часть модуля содержит только видимые (доступные для других программ и модулей) заголовки процедур и функций (без служеб- ного слова forward). Полный текст процедуры или функции помещают в часть реализации, причем заголовок может не содержать список формаль- ных параметров.
Исходный текст модуля должен быть откомпилирован с помощью дирек-
тивы Make подменю Compile и записан на диск. Результатом компиляции
модуля является файл с расширением .TPU (Turbo Pascal Unit). Основное
имя модуля берется из заголовка модуля.
Для подключения модуля к программе необходимо указать его имя в
разделе описания модулей, например:

uses CRT, Graph;

В том случае, если имена переменных в интерфейсной части модуля и в программе, использующей этот модуль, совпадают, обращение будет происходить к переменной, описанной в программе. Для обращения к пе ременной, описанной в модуле, необходимо применить составное имя, состоящее из имени модуля и имени переменной, разделенных точкой. Например, пусть имеется модуль, в котором описана переменная К:
unit M;
interface
var K: Integer;
implementation
.................
end.

Пусть программа, использующая этот модуль, также содержит перемен- ную К:

Program P;
uses M;
var K: Char;
begin
.............
end.

Для того, чтобы в программе P иметь доступ к переменной K из моду- ля M, необходимо задать составное имя M.K.
Использование составных имен применяется не только к именам пере- менных, а ко всем именам, описанным в интерфейсной части модуля. Рекурсивное использование модулей запрещено.
Если в модуле имеется раздел инициализации, то операторы из этого
раздела будут выполнены перед началом выполнения программы, в которой
используется этот модуль.

На первую страницу

 

Rambler's Top100 Rambler's Top100
(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz