Использование модулей


Модуль компилируется так же, как и обычные программы, но так как модуль сам по себе не выполняем, то в результате получается специальный файл с расширением TPU (Turbo Pascal Unit).

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

USES <список модулей>;

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

Program Prim;

Uses Complex;

Var R,X,Y,Z: Complex;

Begin

Read (X.RE,X.IM,Y.RE,Y.IM,Z.RE,Z.IM);

R := CADD(CMUL(X,Y),CADD(CMUL(X,Z),CMUL(Y,Z)));

Writeln(R.RE,'+',R.IM,'i')

end.

Правила использования.

1. Иногда некоторые имена используемого модуля могут совпадать с именами использующей его программы. Тогда интерфейсные имена модуля, указанного в списке первым, образуют самый внешний блок программы, имена второго модуля образуют блок, вложенный в первый и т.д.

Например, в программе есть спецификация:

Uses A,B;

то вложенность блоков будет следующей:

То есть имена выполняемой программы «экранируют» одинаковые имена модулей А и В. Получить доступ к одноименным переменным модуля можно, используя составное имя.

Пусть есть модуль:

Unit A;

Interface

Var X:Real;

Procedure Pr(Y:integer);

implementation

... ...

end.

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

Program P;

Uses A;

Var X:Integer;

Begin

... ...

X:=8; { определение внутренней целой переменной }

A.X:=2.5; { переменная модуля (составное имя) }

Pr(X); { X - фактический целый параметр-значение }

... ...

end.

2. Разрешены косвенные использования модулей. Причем в спецификации использования указываются только модули, непосредственно используемые в программе. Пример косвенного использования модуля А в программе Р:

Unit A; Unit B; Program P;

Interfase Interfase Uses B;

... ... Uses A; ... ..

end. ... ... end.

end.

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

Unit A; Unit B;

Interfase Interfase

Uses B; Uses A; <- недопустимо

... ... ... ...

4. При наличии раздела инициализации операторы модуля выполняются первыми в порядке описания:

Program P;

Uses A,B;

... ...

Выполняются:

1. операторы модуля А;

2. операторы модуля В;

3. операторы программы Р.

5. Рекомендуется, чтобы имя модуля совпадало с именем файла на внешнем носителе информации, например:

Unit Module1;

... ...

Текст программы необходимо поместить в файл Module1.pas, а оттранслированный модуль будет находиться в файле Module1.tpu. При необходимости хранить код модуля в файле с другим именем используют директиву компилятора $U. Она имеет параметр дискового имени файла с данным модулем и должна находится непосредственно перед именем модуля в спецификации пользователя. Например, запись

Uses {$U MY} MyUnit;

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

Стандартные модули

Обычно все используемые модули находятся в текущем каталоге или в системном библиотечном файле TURBO.TPL (Turbo Pascal Library). В этот файл можно добавлять и свои модули, но в стандартном варианте там находятся 5 модулей, содержащих все системные константы, типы, процедуры и функции:

SYSTEM,

DOS,

CRT,

PRINTER,

OVERLAY.

Остальные модули

GRAPH,

STRINGS,

WINDOS,

TURBO3 и GRAPH3

размещаются в отдельных файлах TPU.

 

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

Uses SYSTEM;

Модули Dos и WinDos содержат средства доступа к основным функциям операционной системы и обработки файлов.

Модуль Crt обеспечивает работу с экраном дисплея в текстовом режиме, работу с клавиатурой и простейшее управление звуком.

Модуль Printer содержит единственный интерфейсный элемент – файловую переменную Lst стандартного типа Text, системно связанную с печатающим устройством. Ее использование в стандартных процедурах приводит к выводу информации не на экран, а на печать.

Модуль Overlay предоставляет средства для организации программ, размер которых превышает объем доступной оперативной памяти.

Модуль Graph объединяет многочисленные программные средства управления графическим режимом работы дисплея.

Модуль Strings позволяет использовать строки с завершающим нулем, что вместе с расширенным синтаксисом позволяет создавать Windows-приложения.

Модули Turbo3 и Graph3 предназначены для обеспечения совместимости программ, созданных на ранних версиях Турбо Паскаля и сейчас не используются.

Модуль Crt

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

Текстовый режим поддерживают все типы адаптеров. В этом режиме каждый символ кодируется одним байтом и занимает от 16х16 до 8х8 точек или пикселов, чем существенно экономится память. В зависимости от типа адаптера и включенного режима количество строк на экране и символов в строке может быть разным: от 40х25 до 120х50, но стандартным является размер экрана в 25 строк по 80 символов.

Черно-белый текстовый режим является частным случаем цветного. Для последнего совместно с кодом самого символа задается байт атрибута цвета. Каждый символ имеет цвет начертания, или цвет переднего плана и цвет фона. Кроме этого символ может мерцать. Эта информация кодируется в байте атрибута символа:


 

  Биты  
  Бит мерцания
  Красный
Цвет фона Зеленый
  Голубой
  Яркость
Цвет символа Красный
  Зеленый
  Голубой

 

Таким образом, цвет фона может задаваться восьмью темными тонами, а цвет символа 16-ю, и каждому из них соответствует константа со стандартным именем.

 

Темные цвета:

0 (Black) – черный;

1 (Blue) – синий;

2 (Green) – зеленый;

3 (Cyan) – голубой;

4 (Red) – красный;

5 (Magenta) – фиолетовый;

6 (Brown) – коричневый;

7 (LightGrau) – светло-серый.

Светлые цвета:

8 (DarkGray) – темно-серый;

9 (LightBlue) – светло-синий;

10 (LightGreen) – светло-зеленый;

11 (LightCyan) – светло-голубой;

12 (LightRed) – светло-красный;

13 (LightMagenta) – светло-фиолетовый;

14 (Yellow) – желтый;

15 (White) – белый.

Начальная координата экрана находится в левом верхнем углу, а увеличение идет по осям Х и Y аналогично записи на бумаге по позициям и строкам. То есть экран в стандартном текстовом режиме выглядит в соответствии с рис. 9.1.

Рис. 9.1. Координаты знакомест в стандартном текстовом режиме монитора

То есть увеличение Х соответствует перебору символов в одной строке слева направо, а увеличение Y – перебору строк сверху вниз.



Дата добавления: 2016-06-29; просмотров: 1751;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.015 сек.