Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Рекомендации по разработке программ с использованием модулей типа UNIT.




Модуль типа unit в Турбо-Паскале - это отдельно хранимая и независимо компилируемая единица, в отличие от программ, которые, являясь структурным элементом Pascal-программы, не могут существовать вне нее. Но модуль не является исполняемой программой; константы, типы, переменные, процедуры и функции, входящие в состав модуля типа UNIT, используются другими программами.

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

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

В соответствии с вышеизложенным модуль типа UNIT имеет следующую структуру:

 

unit {служебное слово} Unit_Name {имя модуля};

Interface {начало интерфейсной части}.

 

Описание объектов, видимых из других программных модулей: Const... (определение констант} Туре... (определение типов переменных) Var... (определение переменных) Procedure... (только заголовки процедур} Function... (только заголовки функции)  

 

Implementation {начало части реализации}

 

Описание объектов, скрытых от других программных модулей: Const... (определение констант) Procedure...... ... Function.........  

Begin

Операторы инициализации переменных перед использованием модуля UNIT_NAME  

 

End;

End. {окончание модуля}

 

Модуль компилируется точно таким же образом, как и обычные программы, но так как модуль не является непосредственно выполняемой единицей, то в результате его компиляции образуется дисковый файл с расширением.TPU (Turbo Pascal Unit), а не с расширением ЕХЕ. При компиляции модуля, имя файла (NАМЕ.ТРU) берется из имени файла с исходным текстом модуля (NАМЕ.РАS).

Чтобы основная программа могла воспользоваться константами, переменными, процедурами и другими объектами, описанными в интерфейсной секции использованного модуля, необходимо указать в программе имя нужного TPU-файла. Соответствующая конструкция называется спецификацией используемых модулей и имеет следующий общий вид:

USES Unit_Name1, Unit_Name2;

имена используемых модулей

служебное слово

 

 

Эта спецификация должна идти непосредственно после заголовка программы. В модуле типа UNIT такая спецификация должна следовать сразу после служебною слова interface При этом имя модуля (например, unit1) должно совпадать с именем файла, содержащего его текст и объектный код (например, Unit.PAS и, соответственно, UNIT1.TPU).

Если имя модуля (например, Unit_M) отличается от имени файла с его текстом (например, FILE_UN.PAS), то программа должна содержать директиву ($U) для переопределения имени файла. Директива должна находиться непосредственно перед именем модуля в спецификации использования.

Например, конструкция

USES ($U FILE_UN} Unit_M;

приведет к тому, что компилятор будет искать код модуля Unit_М в дисковом файле FILE_UN.TPU.

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

Ниже приведен пример программы с использованием модулей, а также текст самих модулей.

 

Главная программа.

 

Файл OSNOV.PAS

 

Program Osn; {Главная часть модульной программы}; Uses Crt, Unit1, Unit2; Begin {program} ClrScr; {Процедура очистки экрана из модуля Crt}   {--------Использование модулей--------} repeat run1; {Коды процедур run1 и run2 расположены в} run2 {модулях Unit1 и Unit2} until KeyPassed End. {program}  

 

Используемые модули.

Файл UNIT1.PAS Файл UNIT2.PAS

 

Unit Unit1; Interface Uses Crt; Procedure run1; Implementation Var I, j,: 1..5; Procedure run1; Begin TextColor(Yellow); Writeln(‘Работает 1 модуль’); For I:=1 to 5 do Begin For j:=1 to 5 do Write(‘1’); Delay(400); Writeln End; End End. Unit Unit1; Interface Uses Crt; Procedure run1; Implementation Var I, j,: 1..5; Procedure run2; Begin TextColor(Yellow); Writeln(‘Работает 2 модуль’); For I:=1 to 5 do Begin For j:=1 to 5 do Write(‘2’); Delay(400); Writeln End; End End.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных