Имя файла, в котором хранится модуль, должно совпадать с именем модуля.
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 и используются процедура и функция, описанные в данном модуле.