Определение модуля. Свойства модуля

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

Все ресурсы модуля делятся на две группы: внешние - предназначенные для использования другими программными единицами, и внутренние рабочие ресурсы данного модуля.

Структура модуля выглядит следующим образом:

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

interface

<интерфейсная секция>

Implementation

<секция реализации>

Begin

<секция инициализации>

End.

Имя модуля должно совпадать с именем файла в катором он содержится. Результат компиляции модуля помещается в файл с тем же именем и расширением .tpu.

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

§ Compile - компилируется только основная программа, все модули должны быть предварительно откомпилированы в файлы с расширением .tpu и размещены либо в текущем каталоге, либо в одном из каталогов, указанных как источники файлов .tpu в настройках среды;

§ Make модули, для которых не обнаружены файлы .tpu, компилируются из соответствующих файлов .pas, которые должны находиться в текущем каталоге или в каталогах, указанных в настройках среды в качестве источников исходных файлов модулей;

§ Build - все ранее откомпилированные модули . tpu игнорируются и все модули компилируются из своих исходных файлов .pas.

В процессе отладки модулей целесообразно использовать режим Build, а при отладке программы - режим Compile.

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

Секция реализации содержит описание подпрограмм, объявленных в интерфейсной секции и описание внутренних ресурсов модуля (локальных переменных, типов, подпрограмм). Обращение к этим ресурсам возможно ТОЛЬКО из подпрограмм, описанных в том же модуле.

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

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

Uses <имя модуля1>, <имя модуля2>, ....;

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

Пример 4. Разработать модуль, содержащий подпрограмму суммирования элементов массива.

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

Модуль должен размещаться в файле Summa.раs.

Unit Summa;

Interface {объявление внешних ресурсов}

Type mas=array[1. 10] of integer;

Function sum(b:mas;n:integer):integer;

Implementation

Function sum: {описание функции}

Var s: integer, i:integer;

begin s:=0;

for i: =1 to n do s:=s + b[i];

sum:=s;

end;

End.

Программа использует из модуля два ресурса: описание типа mas для объявления массива М и функцию Sum.

Program ex;

Uses Summa; {указание используемого модуля}

Var a:mas; {используем ресурс mas}

i,n:inleger;

Begin readln(n);

for i:=1 tо n do read(a[i]);

Readln;

WriteLn('Cyмма= ',sum(a,n)); {используем ресурс sum}

End.

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

<имя модуля>.<имя ресурса>.

Например, в модуле описана переменная X:

Unit A;

Interface

Var X:real;

...

End.

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

Program ex;

Uses А;

Var X: integer;

Begin

X:=W; {переменная программы}

А.Х:=0.45; ... {переменная модуля }

В виде модулей в Borland Pascal реализованы библиотеки подпрограмм, использование которых существенно упрощает разработку программ.








Дата добавления: 2015-12-01; просмотров: 906;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.