інтерфейсна частина

Тема 9. Модулі. Структура модулів. Тема модуля і зв'язок модулів один з одним. Інтерфейсна частина. Частина, що. Ініціює частина. Компіляція модулів. Доступ до оголошених в модулі об'єктів. Приклади використання модулів.

Модулі - це автономно компилируемая програмна одиниця, що включає в себе різні компоненти розділу описів (типи, константи, змінні, процедури і функції) а, можливо, деякі виконувані оператори яка ініціює частини.

Модуль має наступну структуру:

Тут UNIT- зарезервоване слово (одиниця); починає заголовок модуля; <имя> - ім'я модуля;

INTERFACE - зарезервоване слово (інтерфейс); починає інтерфейсну частину модуля;

IMPLEMENTATION - зарезервоване слово (виконання); починає виконувану частину;

BEGIN - зарезервоване слово; починає инициирующую частина модуля; конструкція BEGIN <инициирующая часть> необов'язкова;

END - зарезервоване слово - ознака кінця модуля.

Таким чином, модуль складається з заголовка і трьох складових частин, кожна з яких зможе бути порожньою;

У інтерфейсної частини сконцентровані описи глобальних типів, констант і змінних, а також наводяться заголовки глобальних процедур і функцій. Поява об'єктів в інтерфейсній частини робить їх доступними для інших модулів і основної програми. Тіла процедур і функцій розташовуються в виконуваної частини модуля, яка може бути прихована від користувача.

Модулі являють собою прекрасний інструмент для розробки бібліотек прикладних програм і потужний засіб модульного програмування. Важлива особливість модулів полягає в тому, що компілятор Турбо Паскаля розміщує їх програмний код в окремому сегменті пам'яті. Максимальна довжина сегмента не може перевищувати 64 байта, проте кількість одночасно використовуваних модулів обмежується лише доступною пам'яттю, що дає можливість створити досить великі програми.

Тема модуля і зв'язок модулів один з одним

Тема модуля складається з зарезервованого слова UNIT і наступного за ним імені модуля:

UNIT <имя модуля>;

Ім'я модуля повинно співпадати з ім'ям дискового файлу, в якому розміщується вихідний текст модуля. наприклад:

UNIT METOD; Оригінальний текст відповідного модуля повинен розміщуватися в дисковому файлі METOD.PAS. Ім'я модуля служить для його зв'язки з іншими модулями і основний програмою. Цей зв'язок встановлюється спеціальною пропозицією:

USES <сп. модулей>

Тут USES - зарезервоване слово (використовується);

<сп. модулей> - список модулів, якими встановлюється зв'язок; елементами списку є імена модулів, відокремлюються один від одного комами, наприклад:

Uses CRT, GRAPH, METOD;

Procedure AddC (x, y. Complex; VAR Z. complex);

Procedure MulC (x, y. Complex; VAR Z. complex);

Якщо тепер в основній програмі написати пропозицію

то в програмі стануть доступними тип Complex і дві процедури AddC і MulC з модуля Cmplx.

Слід врахувати, що всі константи і змінні, оголошені в інтерфейсній частині модуля, так само як і глобальні константи і змінні основної програми, поміщаються компілятором в загальний сегмент даних.

частина, що

Частина, що починається словом IMPLEMENTATION і містить опису підпрограм, оголошених в інтерфейсній частини. У ній можуть оголошуватися локальні для модуля об'єкти - допоміжні типи, константи, змінні і блоки, а також мітки, якщо вони використовуються в ініціації частини.

Type complex = record re, im. real end;

Procedure AddC (x, y. Complex; VAR Z. complex);

z. re: = x. re + y. re;

z. im: = x. im + y. im

Локальні змінні і константи, а також всі програмні коди, породжені при компіляції модуля, поміщаються в загальний сегмент пам'яті.

ініціює частина

В ініціації частини розміщуються виконувані оператори, які містять певну частину програми. Ці оператори виконуються до передачі управління основній програмі і звичайно використовуються для підготовки її роботи. Наприклад, в них можуть ініціюватися змінні, відкриватися потрібні файли, встановлюватися зв'язки з іншими ПК по комунікаційних каналах і т.п .:

PROCEDNRE PRINT (s. String);

name = 'output. txt ';