Теоретичний матеріал за
темами:
1.
Загальні вказівки
2.
Програмування лінійних структур, обчислення арифметичних виразів
3.
Програмування розгалужених обчислюваньних процесів
4.
Програмування циклічних обчислювальних процесів
5.
Обробка текстових даних
6.
Використання типу Record
7. Використання підпрограм
8. Організація модулів
9. Робота з файлами
10. Використання динамічних змінних
return_links();
?>
Copyright © Евгений Литвиненко, 2007
Использование без разрешения автора запрещено |
Організація модулів
Модуль — це оформлена за деякими правилами сукупність визначень типів, констант, змінних та підпрограм. Спочатку складається текст модуля, потім він компілюється і записується на диск у вигляді 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. |