Перечислите ВСЕ файлы, созданные при работе с этим примером, а также укажите их расширения.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

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

Модуль – программная единица, которая автономно компилируется в отдельный дисковый файл.

Модули – это по сути библиотеки подпрограмм; они позволяют создавать собственные библиотеки процедур и функций, строить программы практически любого размера.

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

Файл модуля (.pas) или откомпилированный файл модуля (.pcu) должен находиться:

- либо в том же каталоге, что и основная программа;

- либо в подкаталоге Lib системного каталога программы PascalABC.NET.

Модуль имеет следующую структуру:

 
 

 

 


Первая строка обязательна и называется заголовком модуля.

Раздел интерфейса и раздел реализации модуля могут начинаться с раздела uses подключения внешних модулей и пространств имен .NET. Имена в двух разделах uses не должны пересекаться.

Раздел интерфейса включает объявление всех имен, которые экспортируются данным модулем в другие модули (при подключении его в разделе uses). Это могут быть константы, переменные, процедуры, функции, классы, интерфейсы. Реализация методов классов может быть дана прямо в разделе интерфейса, но это не рекомендуется.

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

Раздел инициализации и раздел финализации представляют собой последовательность операторов, разделяемых символом «. Операторы из раздела инициализации модуля выполняются до начала основной программы, операторы из раздела финализации модуля - после окончания основной программы. Порядок выполнения разделов инициализации и разделов финализации подключенных модулей непредсказуем. Как раздел инициализации, так и раздел финализации могут отсутствовать. Вместо разделов инициализации и финализации может присутствовать только раздел инициализации в виде:

begin
последовательность операторов
end.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

 

1.Повторить правила ТБ при работе с ПК.

 

2.Включить ПК и запустить ИСП PascalABC.NET.

ПРИМЕР 1. Создание собственного вычислительного модуля.

 

3.В новом окне ИСП PascalABC.NET наберите текст модуля, листинг которого приведен ниже.

 

 

3.1. Сохраните этот файл в свою папку под именем Math (ТОЛЬКО с этим именем!).

 

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

 

3.3. Затем попробуйте запустить этот файл на выполнение – появится следующее сообщение:

 

 

Окно с текстом модуля не закрывайте – мы еще будем с ним работать.

 

4.В новом окне ИСП PascalABC.NET наберите текст программы, в которой будем использовать созданный модуль.

 

5.Изменим текст модуля – поместим в него еще и процедуру вывода строки «*», т.к. она используется в программе несколько раз.

 

5.1. Для этого дополните разделы Interface и Implementation процедурой Print:

 

 

5.2. Снова выполните компиляцию модуля.

5.3. Теперь внесите изменения в основную программу: те строки, в которых выводилась строка «*», замените вызовом добавленной в модуль процедуры:

 

вместо writeln ('********************************************');

 

напишите Print;

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

 
 


5.5. Откройте папку, в которой Вы сохраняли файлы сегодняшней ЛР.

Перечислите ВСЕ файлы, созданные при работе с этим примером, а также укажите их расширения.

 

6. САМОСТОЯТЕЛЬНОсоздайте модуль с собственными графическими процедурами (например, напишите процедуру рисования треугольника).

 

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

 

КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ

 

1. Каково назначение модуля?

 

2. Какие разделы, предусмотренные структурой модуля, присутствуют в созданным Вами модулях, а какие отсутствуют?

 

3. Найдите в Internet информацию о том, кто ввел в программирование понятие модуля и модульного программирования.