Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

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

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

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 реализованы библиотеки подпрограмм, использование которых существенно упрощает разработку программ.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.