В программе используется стандартная функция - экспонента ЕХР(1) и наша подпрограмма
МЕХР(1).
Модули используют в более поздних версиях Паскаля для создания библиотек и
разделения больших программ на логически связанные независимые друг от друга составные
части. В состав модуля входят следующие разделы: заголовок, интерфейс, реализация,
инициализация. Заголовок необходим для ссылок на модуль. Интерфейс содержит объявления,
включая процедуры и функции, представленные списком заголовков и доступные пользователям в
теле основной программы. Раздел «реализация» содержит тела процедур и функций,
перечисленных в интерфейсной части модуля. Раздел «инициализация» содержит операторы,
необходимые для инициализации модуля. Таким образом модуль - это набор констант, типов
данных, переменных, процедур и функций. Каждый модуль компилируется отдельно; результат
компилляции - файл с расширением .tpu (Turbo Pascal Unit). Каждый элемент модуля можно
использовать в программе пользователя без дополнительного объявления, для чего достаточно
записать имя используемого модуля в директиве Uses в начале программы после его заголовка.
В Турбо-Паскале версии 5.0 и выше применяют стандартные модули CRT, GRAPH и др. В
этих модулях содержатся сервисные процедуры и функции по работе с экраном дисплея, с
клавиатурой, графическими примитивами и т.п. Модули подключаются к программе путем
специальной команды, размещаемой сразу после заголовка:
uses <имя модуля>
Программист может сам создать модуль. Ниже приведен пример с соответствующими
комментариями.
Пример. Создать модуль, дополняющий математические возможности Паскаля
арифметическими действиями над комплексными числами.
Будем представлять комплексные числа парами действительных: (а, b). Как известно,
действия над ними выполняются по правилам
(a,b) + (c.d) = (a+c,b+d),
(a,b)-(c,d)=(a-^,b-d),
(a,b) * (c,d) = (a*c-b*d , a*d+b*c),
(a,b) / (c,d) = ( (a*c+b*d)/(c*c+d*d), (b*c-a*d)/(c*c+d*d)).
Создаваемый модуль будет включать четыре процедуры: Sum - сумма, Raz -разность, Proiz
- произведение, Chastn - частное.
Этот модуль может быть отдельно откомпилирован. После этого любая программа,
написанная на Паскале, может получить доступ к интерфейсным объектам (в данном случае -
процедурам) этого модуля с помощью директивы Uses CompChisla.
Обратим внимание, что в интерфейсной части модуля от процедур присутствуют лишь
заголовки, а в части «реализация» от заголовков процедур остаются лишь их имена.
Программа 22
unit CompChisla;
interface
procedure Sum(a,b,c,d: real; var x,y: real);
procedure Raz(a,b,c,d: real; var x,y: real);
procedure Proiz (a,b,c,d: real; var x,y: real);
procedure Chstn(a,b,c,d: real; var x,y: real);
implementation
procedure Sum;
begin x:=a+c; y:=b+d end;
procedure Raz;
begin x:=a-c; y:=b-d end;
procedure Proiz;
begin x:=a*c-b*d; y:=a*d+b*c
end;