Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Доступность модуля для программы

Поиск

Скопируйте свой новый файл.TPU,.TPW или.TPP в каталог модулей, заданный в диалоговом окне Options¦Directories, или используйте параметр командной строки /U при работе с компилятором режима командной строки.

Если вы поместите свой модуль в заданный каталог модулей, то сможете ссылаться на этот модуль, даже если он не находится в текущем каталоге или в библиотеках исполняющей системы.

Включите в любую программу, где вы хотите использовать свой новый модуль, оператор uses. Например, если ваш новый модуль называется INTLIB.TPW, то задайте в своей программе оператор следующего вида:

 

uses IntLib;

 

Чтобы найти модуль, имя которого указано в операторе uses, Turbo Pascal проверяет его наличие в библиотеке исполняющей системы, загруженной в память в время инициализации.

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

Если модуль в библиотеке исполняющей системы отсутствует, то компилятор ищет его на диске, сначала в текущем каталоге, затем в каталогах, заданных в качестве каталогов модулей (Options¦ Directories). Компилятор предполагает, что имя файла совпадает с именем модуля, а расширение имени файла - это.TPU,.TPW или.TPP. Исходный текст модуля имеет расширение.PAS.

Пример. Теперь напишем небольшой модуль. Назовем его IntLib и вставим в него две простые подпрограммы для целых чисел - процедуру и функцию:

 

unit IntLib;

 

interface

procedure ISwap(var I,J: integer);

function IMax(I,J: integer): integer;

implementation

procedure ISwap;

var

Temp: integer;

 

begin

Temp:= I; I:= J; J:= Temp

end; { конец процедуры ISwap }

function IMax;

begin

if I > J

then IMax:= I

else IMax:= J

end; { конец функции IMax }

end. { конец модуля IntLib }

 

Наберите этот модуль, запишите его в файл INTLIВ.PAS, а затем скомпилируйте, задав в качестве целевой платформы защищенный режим DOS. В результате получим код модуля в файле INTLIВ.ТРP. Перешлем его в каталог модулей (если такой имеется), или оставив в том же каталоге, где находится следующая программа, которая использует модуль IntLib:

 

program IntTest;

uses IntLib;

var

A,B: integer;

begin

Write('Введите два целочисленных значения: ');

Readln(A,B);

ISwap(A,B);

Writeln('A = ',A,' B = ',B);

Writeln('Максимальное значение равно ',IMax(A,B));

end. { конец программы IntTest }

 

Модули и большие программы

До сих пор мы говорили о модулях как о библиотеках - наборах полезных подпрограмм, которые могут использоваться несколькими программами. Однако, у модуля есть еще одна функция - разбивать большую программу на составные части.

Два аспекта Turbo Pascal способствуют использованию модулей в такой функции:

- высокая скорость компиляции и компоновки;

- способность работать с несколькими файлами одновременно, например, с программой и несколькими модулями.

Обычно большая программа разбивается на модули, которые группируют процедуры по их функциям. Например, программа редактора может быть разделена на части, выполняющие инициализацию, распечатку, чтение и запись файлов, форматирование и так далее. Так же, как имеется основная программа, определяющая глобальные константы, типы данных, переменные, процедуры и функции, так же может иметь место и "глобальный" модуль, который используется всеми другими модулями.

Набросок большой программы-редактора может иметь вид:

 

program Editor;

uses

WinCrt, String { стандартные модули из TPW.TPL }

EditGlobals, { модули, написанные пользователем }

EditInuit,

EditPrint,

EditRead, EditWrite,

EditFormat;

 

{ описание, процедуры и функции программы }

begin { основная программа }

end. { конец программы Editor }

 

Модули в данной программе могут содержаться в TPW.TPL, библиотеке исполняющей системы Windows, или быть отдельными файлами.TPW. В последнем случае Turbo Pascal выполняет за вас управление проектом. Это означает, что при перекомпиляции программы Editor с помощью встроенного в компилятор средства формирования Turbo Pascal сравнивает даты каждого файла.PAS и.TPW и перекомпилирует любой модуль, исходный код которого перекомпилирован.

Другая причина использования модулей в больших программах состоит в ограничения кодового сегмента. Процессоры 8086 (и родственные им) ограничивают размер сегмента кода 64 килобайтами. Это означает, что основная программа и любой данный сегмент не может превышать 64К. Turbo Pascal интерпретирует это, создавая для каждого модуля отдельный сегмент кода. Без этого объем кода вашей программы не мог бы превышать 64К.



Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 448; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.34.211 (0.005 с.)