При написанні програм часто приходиться зіштовхуватися із ситуаціями, коли однаковий набір операторів потрібно повторити кілька разів. У таких випадках раціонально використовувати підпрограми.
Підпрограма– це іменована логічно закінчена група операторів, яку можна викликати за ім’ям в різних місцях програми будь-яке число раз.
У Pascal-і підпрограми реалізовані у виді процедур і функцій.
Процедура– це іменована логічно незалежна частина програми, призначена для виконання визначених дій після однократного опису.
Для виконання дій, передбачених процедурою, її викликають по імені. Ім'я процедури використовується тільки для її виклику і його не можна використовувати як операнд у вираженнях.
Функціяаналогічна процедурі, але відрізняється від неї тим, що з ім'ям функції пов'язується її значення, що передається в точку виклику. Ім'я функції можна використовувати у вираженнях як операнд.
Виділяють дві групи процедур і функцій:
1. Убудовані (стандартні), що є частиною мови і мають строго фіксовані імена. Зберігаються вони в бібліотечних модулях, що підключаються до програми Uses.
2. Процедури і функції обумовлені користувачем. Ті дії, що потрібно виконувати в різних місцях програми, можна описати у вигляді процедури чи функції, а потім звертатися до них по імені.
Опис процедур і функцій розташовується в розділі описів і має ту ж структуру, що і програма.
Опис процедури:
procedureім'я (список формальних параметрів);
розділи описів;
розділ операторів;
end;
Опис функції:
functionім'я (список формальних параметрів) : тип результату;
Розділ опису;
Розділ операторів;
end;
Локалізація імен.Імена змінних не повинні збігатися з ім'ям процедури й усередині локального блоку повинні бути унікальні. Змінні усередині блоку називаються локальними. Змінні в глобальному блоці називаються глобальними.
Імена локальних і глобальних змінних можуть збігатися. У цьому випадку ім'я локальної змінної закриває відповідну глобальною змінну.
Параметри процедур і функцій.У списку формальних параметрів вказуються імена параметрів і їхній тип. Перед іменами змінних може бути var. Приклади.
procedure demo (x,y : real; var z : real);
function power (var i,j : integer; real; var c: char) : boolean;
Список формальних параметрів може бути відсутній, тобто припустимі процедури і функції без параметрів. Формальні параметри використовуються в тілі процедури без їхнього попереднього опису в розділі опису процедури.
При звертанні до процедури чи функції формальні параметри заміняються фактичними.
Приклад.
Обчислити ab (вираження ab заміняємо вираженням exp(b ln(a))):
Приклад використання процедури:
vara,b,c : real; {фактичні параметри}
proceduredemo (var x,y,z : real);