Имя файла, в котором хранится модуль, должно совпадать с именем модуля.

End.

Модульное программирование

Прогрессивным подходом в программировании считается использование модулей и блоков. Модуль – это подключаемая к программе библиотека ресурсов. Он может содержать описания типов, констант, переменных и подпрограмм. В модуль обычно объединяют связанные между собой ресурсы.

Модули применяются для разбиения сложной программы на составные части (возрастает скорость ее компиляции) или в качестве библиотеки подпрограмм.

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

Чтобы использовать модуль, достаточно знать только его интерфейс: детали его реализации скрыты от пользователя. Для подключения модуля к программе необходимо предварительно его скомпилировать. Результат компиляции хранится на диске в отдельном файле с расширением .tpu.

Структура модуля.Исходный текст каждого модуля хранится в отдельном файле с расширением .pas. Модуль состоит из секций.

 

unit <Имя модуля>; {заголовок модуля}

interface {интерфейсная секция модуля}

………………………

{описание глобальных элементов модуля (видимых извне)}

…………………..

implementation {секция реализации модуля}

………………………

{описание локальных (внутренних) элементов модуля}

…………………..

 

begin {секция инициализации}

{может отсутствовать}

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

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

Секция инициализации предназначена для присваивания начальных значений переменным, используемым в модуле. Операторы, расположенные в данной секции, выполняются перед операторами основной программы.

Для подключения модуля к программе необходимо указать его имя в разделе описания модулей (USES).

Пример. Составить модуль для нахождения факториала числа и вычисления степени.

 

unit Matematika;

 

interface

procedure Factorial(m:integer;var F: integer);

function POWER(FACTOR:real; EXPONENT:integer): REAL;

 

implementation

procedure Factorial(m:integer;var F: integer);

var i:integer;

begin

F:=1; for i:=1 to m do F:=F*i;

end;

 

function POWER(FACTOR:real; EXPONENT:integer): REAL;

begin

if EXPONENT < 0

then POWER:=1/POWER(FACTOR,abs(EXPONENT))

else if EXPONENT > 0

then POWER := FACTOR*POWER(FACTOR,EXPONENT-1)

else POWER:=1

end;

end.

program Primer;

uses Matematika;

 

var k, n: integer; S:real

begin

Factorial(5,k); Factorial(10,n);

S:=n+k+ POWER (2,-5)+ POWER (6.23, 3)

Writeln(‘ S = ’, S:7:3);

readln

end.

 

В данной программе подключается модуль Matematika и используются процедура и функция, описанные в данном модуле.