Великі за об'ємом програми для зручності відладки розділяють на окремі відносно незалежні фрагменти. Такий спосіб програмування називається Структурним програмуванням. Інструментом створення таких програм в Pascal є Функції і Процедури.
Структурно написана програма має наступний вигляд:
PROGRAM
CONST
VAR
PROC1 Опис процедур і функцій
PROC2
PROC3
...
PROCN
ФУНКЦІЯ
BEGIN
Pr1
Pr2 Звернення до процедур і функцій в основній програмі
...
PrN
END.
1. Процедура – особливим чином оформлений фрагмент програми, що має власне ім'я.
Згадка імені процедури в основній програмі приводить до активізації процедури (виклик процедури). Після активізації процедури починають виконуватися її оператори, після чого управління передається в основну програму, і виконуються оператори, що стоять за оператором виклику процедури.
Для обміну інформацією між Основною програмою і Процедурою використовуються параметри:
- фактичні (передавальні значення змінних з основної програми);
- формальні (що приймають значення з програми і використовувані для їх обробки в процедурі).
Словом VAR позначаються ті параметри, значення яких повинні бути змінені процедурою, після чого переміщені назад в основну програму. Імена параметрів, фактичних і формальних, не пов'язані один з одним (зміни значення змінної параметра в процедурі не изменяетзначения однойменної змінної в основній програмі). Вони можуть мати неспівпадаючі імена.
Наприклад: roots(x, у, z z1, z2, до) – активізація процедури в Основній програмі;
Процедура може мати змінні для внутрішнього вживання – ЛОКАЛЬНІ і передавані в основну програму після обробки – НЕЛОКАЛЬНІ.
2. Функція відрізняється від Процедури тим, що результат її обробки повертається в Основну програму не у вигляді модифікованої змінної, а у вигляді значення цієї функції.
Виклик Функції може проводитися у виразах звичайних операторів.
Оформлення функції відрізняється від оформлення Процедури:
FUNCTION sgu (x: REAL): INTEGER
Ім'я Список передаваних Тип вовращаемого
Функції з програми параметрів значення
і їх тип
У Pascal ми вже мали справу з Процедурами (READ, READLN, WRITE, WRITELN) і Функціями (ORD, SQR, SQRT, ABS). Вони називаються Стандартними, тому що входивши в Стандартну бібліотеку SYSTEM, що створену одночасно з мовою Pascal і входить в його середовище. Проте, якщо необхідної Процедури або Функції в бібліотеці немає, то користувач повинен розробити свою – Нестандартну Функцію або Процедуру.