|
UNIT <ім'я модуля>;
На відмінну від програм, заголовок модуля є обов’язковим. Ім'я модуля повинно співпадати з іменем відповідного *.pas-файлу, що містить текст модуля (8 букв).
Інтерфейс на частина.
ІNTERFACE
TYPE
compl=record
re,im:real
END;
PROCEDURE SUMA (a,b:compl; var d:compl);
PROCEDURE RIZNUTSYA (a,b:compl; var d:compl);
PROCEDURE DOBYTOK (a,b:compl; var d:compl);
PROCEDURE CHASTKA (a,b:compl; var d:compl);
FUNCTION MODYL (a:compl):real;
FUNCTION ARGYMENT (a:compl):real;
В розділі інтерфейс оголошуються всі компоненти модуля, структура яких і самі вони мають бути „видимими” зовнішнім програмам, що використовують цей модуль.
В інтерфейсі можуть оголошуватися: uses- специфікація всіх модулів, що використовуються даним модулем; константи; типи; мітки; змінні; заголовки підпрограм. Всі перелічені компоненти будуть доступними, тобто „видимими” іншим програмам.
Підпрограми зовні модуля будуть видимі лише своїм інтерфейсом, причому описується, що це за підпрограма: процедура чи функція; ім'я, повний список формальних параметрів та тип результату для функції.
Такий спосіб оголошення підпрограм приховує внутрішню реалізацію відповідних підпрограм, а залишає доступним лише перелік параметрів та ім'я.
3. Розділ реалізації. В реалізації описуються всі компоненти мови, які мають бути невидимі зовні.
Тут можуть бути оголошення констант, типів змінних, підпрограм для внутрішнього використання, а також використовуються реалізації всіх підпрограм, заголовки яких містяться в інтерфейсі.
При описі реалізації підпрограм в цьому розділі може задаватися лише скорочений заголовок без списку формальних параметрів.
Implementation
PROCEDURE SUMA;
BEGIN
d.Re:=a.Re+b.Re;
d.Im:=a.Im+b.Im;
END;
PROCEDURE RIZNUTSYA;
BEGIN
d.Re:=a.Re-b.Re;
d.Im:=a.Im-b.Im;
END;
4. Розділ ініціалізації початкових значень змінних. Цей розділ є необов’язковим і містить оператори присвоєння змінним із розділу інтерфейс, якщо вони є деяких початкових значень, якщо вони відмінні від значень по-замовчуванню.
Якщо в інтерфейсі не оголошувалася жодна змінна або їй не потрібно надавати певного значення відмінного від замовчування, то розділ ініціалізації може бути пустим.
Розділ ініціалізації обмежується операторними дужками. Якщо модуль не містить жодної ініціалізації змінних, то слово begin може бути відсутнім.
Тема: Компіляція модулів.
Після того, як модуль повністю заповнений відповідними оголошеннями, його ще не можна використовувати іншими програмами, адже програми користуються не текстовим описанням, а вже відкомпільованими компонентами.
Компіляція модуля повинна здійснюватися не у пам'яті, а на диск у вигляді *.TPU-файла. Це можна здійснити, вибравши відповідний пункт меню інтегрованої оболонки та підпункт Destination disk (по замовчуваннюBest nation memory). Після цього компіляція буде здійснюватися на диск у вигляді типового файла.
Компільований модуль може бути підключений до будь-якої програми, при цьому він має бути в тому самому каталозі звідки запускається інтегрована оболонка turbo.exe, або в підпункті directories.
В підпункті directories має бути вказаний шлях до каталогу, де знаходиться цей модуль.
Тема: Видимість ідентифікаторів у модулях.
Часто виникає ситуація, коли деякий модуль А використовується в програмі Р, в свою чергу модуль А використовує ресурси іншого модуля В, а той в свою чергу користується модулем С, крім цього кожен з модулів С, В, А і сама програма Р можуть містити оголошення деяких навіть різних компонентів, але з одним іменем. Якщо має місце таке вкладене використання модулів, то як правильно оголосити uses- специфікацію в кожному модулі і програмі, а також як отримати доступ до однойменних об’єктів різних рівнів. Для цього потрібно користуватись такими правилами:
1. Якщо програма явно користується ресурсами модуля А (не явно, тобто через ресурси модуля А) ресурсами модуля В. Модуль А явно використовує модуль В і неявно (тобто через модуль В) використовує модуль С і т. д. То в uses- специфікації потрібно вказувати всі модулі, які використовуються явно або неявно, причому у порядку, який є зворотним до порядку вкладення модулів. Таким чином матимемо оголошення:
Дата добавления: 2015-09-11; просмотров: 72 | Поможем написать вашу работу | Нарушение авторских прав |