Перечислите ВСЕ файлы, созданные при работе с этим примером, а также укажите их расширения.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Модульное программирование – организация программы в виде совокупности независимых блоков (модулей). В результате программа может быть многофайловой.
Модуль – программная единица, которая автономно компилируется в отдельный дисковый файл.
Модули – это по сути библиотеки подпрограмм; они позволяют создавать собственные библиотеки процедур и функций, строить программы практически любого размера.
В модулях описываются переменные, константы, типы, классы, процедуры и функции. Для того чтобы эти объекты можно было использовать в вызывающем модуле (которым может быть и основная программа), следует указать имя файла модуля (без расширения 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 информацию о том, кто ввел в программирование понятие модуля и модульного программирования.