Материал: Лабораторная работа №8 Модули

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Лабораторная работа №8 Модули

Введение

В данной лабораторной работе рассмотрены модули Object Pascal, назначение каждой секции модуля, приведен пример модуля. Также рассмотрены некоторые стандартные модули Object Pascal.

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

Структура модуля

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

unit <имя_модуля>; interface

<раздел интерфейса>

implementation

<раздел реализации>

initialization

<раздел инициализации>

finalization

<раздел деинициализации>

end.

Рассмотрим подробнее назначение каждого элемента модуля.

<имя_модуля>

– правильный идентификатор Object Pascal, заголовок модуля;

interface

– зарезервированное слово, начинает раздел интерфейса модуля;

implementation

– зарезервированное слово, начинает раздел реализации модуля;

initialization

– зарезервированное слово, начинает раздел инициализации модуля;

finalization

– зарезервированное слово, начинает раздел деинициализации

 

модуля;

end

– зарезервированное слово, признак конца модуля.

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

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

Заголовок модуля состоит из зарезервированного слова unit и следующего за ним имени модуля. Имя модуля – правильный идентификатор Object Pascal, совпадающий с

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

именем файла модуля. Например если модуль имеет имя Unit1, то имя файла модуля

Unit1.pas.

Подключение модулей

Для подключения модуля к основной программе или к другому модулю необходимо использовать следующую конструкцию

uses <имя_модуля>, < имя_модуля >, …;

где uses – зарезервированное слово.

Объявление uses может следовать за зарезервированными словами interface, implementation в модулях и после имени программы в основной программе, например

Листинг 1 – Подключение модуля к другому модулю

unit MyUnit; interface

uses Windows, MySecondUnit;

<раздел интерфейса>

implementation

<раздел реализации> end.

Листинг 2 – Подключение модуля к основной программе

program TestPrg;

uses Windows, MySecondUnit;

begin

end.

Рассмотрим еще один важный вопрос: «Где компилятор ищет файлы модулей?». Порядок поиска файлов модулей следующий:

1.осуществляется поиск в каталоге основной программы;

2.далее просматриваются каталоги для поиска указанные в настройках среды;

3.далее просматривается каталог Delphi7\Lib.

Для установки списка каталогов для поиска модуля необходимо вызвать диалоговое

окно

из меню Project. На вкладке Directories/Conditionals необходимо нажать

кнопку

на против строки Search path, появится окно ввода списка каталогов для поиска

в которое необходимо ввести список каталогов для поиска модулей (рисунок 1).

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Рисунок 1 – Окно настроек проекта (раздел каталоги)

Рисунок 2 – Окно ввода списка каталогов

Создание модулей

Для создания нового модуля необходимо в выполнить команду File>New>Unit (рисунок 3)

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Рисунок 3 – Создание нового модуля

Появится окно с заготовкой модуля (рисунок 4).

Рисунок 4 – Новый модуль

В редакторе может быть открыто сразу несколько модулей, например

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Рисунок 5 – В редакторе кода открыты несколько модулей

Для переключения между модулями достаточно выбрать соответствующую закладку. Чтобы сохранить только редактируемый модуль необходимо нажать кнопку Save на панели инструментов или Ctrl+S на клавиатуре. Чтобы сохранить все открытые модули необходимо нажать кнопку SaveAll на панели инструментов или Shift+Ctrl+S на клавиатуре.

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

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

Раздел интерфейса

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

unit Tables;

interface

type TStudent=record

name :string[12]; //имя familia:string[16]; //фамилия gruppa :Integer; //группа

end;

//выводит меню, возвращает результат выбора