Ответы на экзаменационные вопросы № 1-34 по дисциплине "Программирование" (Средства модульного программирования в системе Турбо-Паскаль. ООП. Объекты в динамической памяти)

Страницы работы

Содержание работы

1.Средства модульного программирования в системе Турбо-Паскаль: структура модуля, подключение модуля к программе, особенности компиляции.

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

Все модули можно разбить на две группы:

-  стандартные модули - заранее созданные разработчиками языка Turbo-Pascal 7.0 (эти модули поставляются в скомпилированном виде, и их без каких-либо доработок можно использовать в программах);

-  модули пользователя - которые создает сам программист (он должен написать модуль, скомпилировать его, отладить и только после этого использовать в своей программе; естественно, что в такие модули программист при необходимости может вносить изменения).

Модуль состоит из следующих частей:

-  заголовок модуля;

-  интерфейс модуля;

-  исполнительная часть модуля;

-  секция инициализации.

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

Заголовок модуля.

Заголовок модуля состоит из зарезервированного слова UNIT и идентификатора (имя модуля). Идентификатор модуля должен быть уникальным. Пример заголовка:

UNIT MyModule;

Модуль должен быть помещен в файл, имя которого совпадает с именем модуля, а его расширение должно быть .pas.

Интерфейс модуля.

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

Интерфейсная часть модуля начинается словом interface и может содержать следующие разделы:

-  раздел объявления используемых модулей;

-  раздел объявления констант;

-  раздел объявления типов;

-  раздел объявления переменных;

-  раздел объявления процедур и функций.

Завершается интерфейсная часть началом исполнительной части.

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

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

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

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

Исполнительная часть модуля.

Исполнительная часть включает все подпрограммы модуля. Она может также включать локальные метки, константы, типы и переменные, недоступные для других программных единиц (естественно, и для интерфейса самого модуля).

Начинается интерфейсная часть словом implementation, а завершается либо началом секции инициализации, если она есть, либо словом  end. (с точкой).

Исполнительная часть - "внутренняя кухня" модуля, где протекают процессы, о которых не недо "знать" другим программным единицам. Она может содержать следующие разделы:

-  раздел объявлений используемых модулей;

-  раздел объявления констант;

-  раздел объявления типов;

-  раздел объявления переменных;

-  раздел процедур и функций.

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

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

Похожие материалы

Информация о работе