1.Средства модульного программирования в системе Турбо-Паскаль: структура модуля, подключение модуля к программе, особенности компиляции.
Модуль является программной единицей для хранения элементов, которые можно использовать в тех или иных программах. Такими элементами могут быть типы, константы, переменные и подпрограммы. Если все, что было написано в программе, полностью входит в скомпилированный файл программы, то из модуля в скомпилированную программу попадают только те части, которые необходимы данной программе. Поэтому модуль выступает как библиотека, которую можно употреблять во многих программах, и каждая из них берет только то, что ей требуется. Наличие модулей в Турбо-Паскале позволяет программировать и отлаживать программу по частям, создавать библиотеки подпрограмм и данных, пользоваться возможностями стандартных модулей, практически неограниченно увеличивать кодовую (содержащую коды команд) часть программы.
Все модули можно разбить на две группы:
- стандартные модули - заранее созданные разработчиками языка Turbo-Pascal 7.0 (эти модули поставляются в скомпилированном виде, и их без каких-либо доработок можно использовать в программах);
- модули пользователя - которые создает сам программист (он должен написать модуль, скомпилировать его, отладить и только после этого использовать в своей программе; естественно, что в такие модули программист при необходимости может вносить изменения).
Модуль состоит из следующих частей:
- заголовок модуля;
- интерфейс модуля;
- исполнительная часть модуля;
- секция инициализации.
Все разделы модуля, за исключением секции инициализации, являются обязательными. Обязательна также указанная последовательность разделов.
Заголовок модуля.
Заголовок модуля состоит из зарезервированного слова UNIT и идентификатора (имя модуля). Идентификатор модуля должен быть уникальным. Пример заголовка:
UNIT MyModule;
Модуль должен быть помещен в файл, имя которого совпадает с именем модуля, а его расширение должно быть .pas.
Интерфейс модуля.
Через интерфейс осуществляется взаимодействие основной программы с модулем (модуля с модулем). В интерфейсе указываются константы, типы, переменные, процедуры и функции, которые могут быть использованы основной программой (модулем) при вызове этого модуля.
Интерфейсная часть модуля начинается словом interface и может содержать следующие разделы:
- раздел объявления используемых модулей;
- раздел объявления констант;
- раздел объявления типов;
- раздел объявления переменных;
- раздел объявления процедур и функций.
Завершается интерфейсная часть началом исполнительной части.
Раздел объявления используемых модулей интерфейсной части модуля такой же, как у программы, а параметры модулей, перечисленных здесь, могут использоваться во всех частях модуля, а не только в интерфейсной части.
Если один модуль обращается к интерфейсной части другого, который в своей интерфейсной части обращается к третьему модулю и т.д., наконец, последний модуль использует первый модуль (так называемое циклическое использование модулей), то такая ситуация недопустима из-за того, что компилятор в этом случае не сможет установить необходимые связи.
Все разделы интерфейсной части, кроме раздела объявления используемых модулей, могут идти в любой последовательности; можно создавать несколько однотипных разделов.
В разделе объявления процедур и функций указываются лишь заголовки подпрограмм (за исключением тех подпрограмм, которые используют директиву inline, которая здесь допустима). Сами подпрограммы приводятся в исполнительной части модуля.
Исполнительная часть модуля.
Исполнительная часть включает все подпрограммы модуля. Она может также включать локальные метки, константы, типы и переменные, недоступные для других программных единиц (естественно, и для интерфейса самого модуля).
Начинается интерфейсная часть словом implementation, а завершается либо началом секции инициализации, если она есть, либо словом end. (с точкой).
Исполнительная часть - "внутренняя кухня" модуля, где протекают процессы, о которых не недо "знать" другим программным единицам. Она может содержать следующие разделы:
- раздел объявлений используемых модулей;
- раздел объявления констант;
- раздел объявления типов;
- раздел объявления переменных;
- раздел процедур и функций.
В разделе объявления используемых модулей исполнительной части перечисляются модули, параметры которых могут употребляться в модуле всюду, за исключением интерфейсной части (чаще всего так и бывает). В исполнительной части допускается циклическое применение модулей, поэтому по мере возможности именно здесь следует объявлять модули. Если какой-то модуль объявлен в интерфейсной части, то в исполнительной части его объявлять не следует. В остальном раздел объявления используемых модулей исполнительной части такой же, как и в интерфейсной части.
Все разделы исполнительной части, кроме раздела объявления модулей, могут идти в любой последовательности; можно создавать несколько однотипных разделов.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.