Лекция 14. Модули и внешние файлы в Паскаль

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

В языке Паскаль модуль (unit) по определению считается отдельной программой. Если подпрограмма является структурным элементом Паскаль - программы и не может существовать вне ее, то модуль представляет собой отдельно хранимую и независимо компилируемую единицу.

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

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

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

Заголовок модуля составляется из служебного слова unit и следующего за ним идентификатора, являющегося именем модуля. Заголовок завершается символом ';' (точка с запятой). Интерфейсная часть начинается со служебного слова interface, за которым следует совокупность обычных описаний. Часть реализации начинается служебным словом implementation, за которым идут описания скрытых объектов. Завершает модуль, как и программу, служебное слово end и символ '.' (точка).

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

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

  Unit UnitName;
  Interface
    Описание видимых объектов  
  Implementation
    Описание скрытых объектов  
  Begin
  Операторы инициализации объектов модуля
  End.
  Рисунок 15.1 – Структура модуля на языке Паскаль
     

В модулях могут использоваться наравне с другими Pascal-объектами процедуры и функции. Заголовок подпрограммы является ее интерфейсом, а тело - реализацией. В соответствии с этой точкой зрения в интерфейсной части модуля должны быть представлены только заголовки процедур и функций, видимые(доступные) для других программ,(но без служебного слова forward), а их полные описания будут содержаться в разделе реализации. При этом описание подпрограммы может иметь сокращенный заголовок, состоящий только из служебного слова procedure или function, имени подпрограммы и символа ';'. (Разумеется, можно повторить полный заголовок подпрограммы, но тогда он должен быть точно таким же, как и заголовок в интерфейсной части).

Например:

Unit summa;

interface

type

complex = record

Re, Im: real;

End;

Procedure InitC (e:complex; R,I:real);

…..

implementation

procedure initc

begin

with c do begin

Re:=R;

Im:=I;

End;

End;

…..

End.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: