Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.44 Mб
Скачать

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

Модуль (unit) складається з наступних частин:

  • назви або заголовка (наприклад, unit My_Modyl);

  • інтерфейсу або розділу оголошень (interface);

  • виконавчої частини або розділу реалізації (implementation);

  • розділу або секції ініціалізацій.

Зазначена тут послідовність розділів модуля є обов'язковою, однак блоки, з яких складаються ці розділи, можуть бути частково або повністю відсутніми.

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

Заголовок модуля складається із зарезервованого слова unit і унікального ідентифікатора (не повинен повторюватися усередині модуля), що може мати, як і будь-який ідентифікатор, до 64 символів.

1.2 Інтерфейс модуля

interface {Всі об'єкти цього розділу, крім uses, розташовані у

сегменті даних}

[uses... {Перераховуються імена модулів, які використовуються

даним модулем}]

[const... {Описуються константи, які повинні бути доступними

програмі або іншим модулям, що підключили цей модуль}]

[var... {Описуються змінні, які розрізняє програма або інші

модулі, в яких оголошений цей модуль}]

[procedure... {Надається повний заголовок процедури з описом

формальних параметрів}]

[function... {Надається повний заголовок функції з описом

формальних параметрів}

... {Описуються повні заголовки всіх інших процедур і

функцій модуля, доступних програмі або іншим

модулям, що підключили даний модуль}

1.3 Виконавча частина модуля

implementation {Всі об'єкти, крім const і uses, розташовані в

сегменті стека}

[uses... {Перераховуються імена модулів, використаних в

даній виконавчій частині й не зазначених в

інтерфейсі}]

[label... {Перераховуються імена міток, використані в

підпрограмах даного розділу модуля}]

[const... {Описуються константи, використані в

підпрограмах даного розділу модуля й не

оголошені в інтерфейсі}]

[var... {Описуються змінні, використані в підпрограмах

даного розділу модуля й не оголошені в

інтерфейсі}]

[procedure... {Надається скорочений або повний заголовок

процедури, оголошеної в interface}]

{Тіло процедури}

[function... {Надається скорочений або повний заголовок

функції, оголошеної в interface}]

{Тіло функції}

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

Недоступні для програми також модулі, мітки, константи, типи й змінні, оголошені в цьому розділі. Всі ці об'єкти, крім const, розташовуються в сегменті стека. Значення констант містяться у сегменті даних, однак, у програмі вони все-таки невидимі.

1.4 Розділ ініціалізації.

Цей розділ дозволяє встановити зв'язок з тими або іншими файлами за допомогою процедури assign, ініціювати деякі змінні (наприклад, S:=0; Р:=1), константи-змінні (типізовані константи), виконати якісь інші одноразові дії, які завжди будуть виконуватися на початку програми, наприклад, друк повідомлення на екрані за допомогою процедури writeln('Привіт!');.

Розділ починається словом begin, після якого можуть стояти виконавчі оператори, а закінчується словом end. (з крапкою).

begin

assign(F1,'My_File.dat');

S:=0; P:=1

writeln('Привіт!');

end.

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

Якщо в програмі і її модулі описуються змінні з тим самим ім'ям, то така змінна модуля в програмі є невидимою. Її доступність у програмі можна забезпечити лише за допомогою кваліфікатора, що ставиться перед такою змінною й відділяється від неї крапкою. У якості кваліфікатора виступає ім'я модуля. Наприклад, у тілі програми з модулем My_Modyl можливі такі оператори:

х:=5; {х – глобальна змінна програми}

My_Modyl.x:=4; {х – описана в інтерфейсі модуля My_Modyl}

х:=х+My_Modyl.х; {в комірці х буде зберігатися число 9}

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]