www.ua5.org > Програмування мовою Pascal > Створення та використання модулів
Створення та використання модулів11 марта 2008. |
|
Модуль — це оформлена за деякими правилами сукупність визначень типів, констант, змінних та підпрограм. Спочатку складається текст модуля, потім він компілюється і записується на диск у вигляді tpu-файла. Такий файл неможливо виконати, як самостійну програму. Його використовують, як допоміжний файл у процесі розробки головної програми. Виділяють два напрямки вживання модулів. Перший – зв’язаний з формуванням бібліотек підпрограм повністю готових до роботи. Це зручно в рамках будь-якої технології програмування. Достатньо підключити модуль до програми і можна використовувати його елементи в цій програмі. Другий напрямок - конструювання програм великого розміру. В зв'язку з сегментною організацією пам'яті персональних ЕОМ існують обмеження на розмір програми (не більше як 64К). Очевидно, що цього замало для розв'язання реальних виробничих задач. Для виконання програми на Pascal в оперативній пам'яті комп’ютера виділяється місце після пам'яті зайнятої системними програмами MS-DOS. Вся доступна пам'ять розподіляється на сегменти, в кожному з яких розміщується певна інформація. В кодовому сегменті розміщена головна програма зі своїми підпрограмами. Всі дані, описані в головній програмі, займають окремий сегмент даних. Кожен з модулів, що підключається, також займає один сегмент (незалежно від того, чи є цe модуль системної бібліотеки Turbo.tpl чи особистої бібліотеки). На етапі проектування великої програми треба розподілити всі підпрограми між головною програмою та модулями. Частіше в модуль об’єднують логічно зв'язані підпрограми, наприклад, всі додаткові процедури та функції для роботи з рядками. Структура модуля:
Unit ім'я; {заголовок модуля} Interface Інтерфейсна частина Implementation Тексти підпрограм Begin Блок ініціалізації модуля End.
Ім'я модуля вибирається довільно, але воно повинно бути унікальним. Зразу після заголовка розміщують слово Interface. В інтерфейсній частині модуля розміщують оператор Uses, оператори описування глобальних типів, констант, змінних, які будуть передані в програму при підключенні модуля. Також, записують заголовки всіх підпрограм, які входять до модулю. У розділі Implementation приводяться тексти всіх підпрограм у тій послідовності, в якій вони були описані в розділі Interface. В заголовках підпрограм можна не вказувати списки параметрів. Перед підпрограмами можуть бути описані локальні типи та змінні для свого блоку ініціалізації. В блок ініціалізації звичайно включають оператори визначення початкових значень, відкриття файлів, перевірки їх наявності тощо. Цей блок може бути пустим, у такому разі не пишуть слово Begin. Оператори з блоків ініціалізації всіх модулів виконуються на початку роботи головної програми. Приклад. Використання функції для обчислення ступеня. Модуль:
Unit Math; Interface Function Step(a:real; b:real):real; Implementation Function Step:real; Begin If a<=0 then Begin Writeln( 'перевірте дані'); Halt(0); End; If b=0 then Step:=1 else Step:=exp(b*ln(a)); End; Begin End.
Програма:
Uses Math; Var x,y,z : Real ; Begin Readln(x:y); Z:=Step(x,y)+Step(y,x); Writeln(x,y,z); End. |