о використовують цей модуль. Будь-яка програма, яка використовує цей модуль, має доступ до цих видимим елементам. В інтерфейсі модуля можна оголосити константи, типи даних, змінні, процедури і функції.
Процедури і функції, доступні для програми, що використовує цей модуль описуються в розділі інтерфейсу. А їх дійсні тіла - оператори, реалізують їх, - у розділі реалізації. Оголошення forward забороняється.
Тіла всіх звичайних процедур і функцій знаходяться в розділі реалізації після розділу інтерфейсу, в якому перераховані їхні імена та заголовки. uses може з'явитися і в розділі implementation. Якщо в розділі реалізації має місце uses, то це слово слід відразу ж за словом implementation.
Розділ реалізації.
Розділ реалізації - закрита, недоступна частина - починається зі слова IMPLEMENTATION. Все, що оголошено в частині інтерфейсу мабуть для розділу реалізації: константи, типи, змінні, процедури і функції. Крім того, в розділі реалізації можуть бути свої власні додаткові оголошення, недоступні програмами, що використовують цей модуль. Програми не можуть звертатися і посилатися на них. Однак ці недоступні елементи можуть використовуватися (і, як правило, це робиться) видимими процедурами і функціями, заголовки яких з'являються в розділі інтерфейсу.
Пропозиція uses може з'являтися в розділі implementation. У цьому випадку uses слід безпосередньо за ключовим словом implementation.
Якщо процедури були оголошені як зовнішні, то в початковому файлі повинна бути директива {$ L ім'я файлу} в будь-якому місці до кінця модуля.
Звичайні процедури і функції, оголошені в розділі інтерфейсу - які не є вбудованими - повинні з'являтися в розділі реалізації. Тема procedure (function) у розділі реалізації повинен бути такий же, як і в розділі інтерфейсу, або ж мати коротку форму. У короткій формі за ключовим словом (procedure або function) слід ім'я процедури або функції. Підпрограма містить свої власні локальні оголошення (мітки, константи, типи, змінні, процедури і функції). За ними слід тіло головної програми. Підпрограми розділу реалізації (неописані в секції інтерфейсу), повинні мати повний заголовок procedure / funсtion.
Розділ ініціалізації.
Розділ реалізації модуля укладений між словами implementation і end. Але якщо присутнє слово begin перед end, і оператори між цими словами, то вийшов складений оператор, схожий на тіло головної програми, стає розділом ініціалізації модуля.
У розділі ініціалізації инициализируются структури даних (змінних), що використовуються модулем або доступні програмам, які використовують цей модуль. Ви можете використовувати цей розділ для відкриття файлів. Наприклад, стандартний модуль Printer використовує цей розділ для відкриття на висновок текстового файлу Lst. Файл Lst згодом можна використовувати в програмах, в операторах Write або Writeln.
При виконанні програми, використовує певний модуль, розділ ініціалізації викликається перед виконанням тіла головної програми. Якщо в програмі використовується декілька модулів, розділ ініціалізації кожного модуля викликається (у порядку, зазначеному в операторі uses програми) до виконання тіла головної програми.
Розглянемо найпростіший ...