актівізується помощью оператора процедури. Функція актівізується при обчісленні вирази что містіть виклик Функції І що возвращается функцією значення підставляється в цею вирази. Для процедур вікорістовується Наступний формат:
имя-процедури (параметрів);
Мітки;
опису констант;
визначення тіпів даних;
опису змінніх: i functions;
основне Тіло процедури;.
. 1 Описи процедур
Опис процедури дозволяє зв язати Ідентифікатор з процедурними блоком. Процедуру можна потім актівізуваті з помощью оператора процедури. B заголовку процедури вказується ім я процедури и опісується список формальних параметрів (если ВІН присутній):
Запуск процедури здійснюється за помощью оператора процедури, в якому містяться имя процедури и необхідні параметри. Оператори, Які повінні Виконувати при запуску процедури, містяться в операторній части модуля процедури. Если в что містіться в процедурі операторі усередіні модуля процедури вікорістовується Ідентифікатор процедури, то процедура віконуватіметься рекурсивно (буде при віконанні Звертатися сама до себе).
Наведемо приклад Опису процедури:
NumString (N: integer; var S: string) ;: integer;:=Abs (N);:= raquo ;;:=Chr (N ??mod 10 + Ord ( 0 raquo ;)) + S;:=N div 10; N=0; N lt; 0 then S:= - + S ;;
опісі процедури перед блоком Операторів может вказується директива переривані (interrupt). Процедура в цьом випадка розглядається, як процедура переривані. Повний описание процедур переривані приводитися у спеціальній та довідковій літературі по Паскаля. B Сейчас відзначімо что процедури ОБРОБКИ переривані нельзя віклікаті з помощью Операторів процедури, І що в Кожній з них задається список параметрів, Який обов'язково винен мати Наступний вигляд:
MyInt (Flags, CS, IP, AX, BX, CX, DX, SI, DI, DS, ES, BP): word); interrupt;
Замість блоку Операторів в опісі процедури або Функції можна Записатись віпереджаючій описание (описание forward), Зовнішній описание (описание external) або Внутрішній описание (описание inline).
Приклад програми
нижчих приводитися варіант програми DORATIO.PAS, в якому вікорістовується процедура для Отримання двох значення І функція для обчислення коефіцієнта:
DoRatio;, B: integer ;: real;
GetData (var X, Y: integer); ( Введіть два числа: ); (X, Y);
GetRatio (I, J: integer): real;:=I/J;
(A, B);:=GetRatio (A, B); ( Відношення рівне , Ratio).
Ця програма, звічайна, що не є чімось Особливе, оскількі вон має більшій розмір и повільніше віконується, чем аналогічна програма без вікліків функцій, проти вона ілюструє использование процедур та функцій.
При компіляції и запуску програми дерло в тілі програми віконується оператор GetData (A, B). Цей тип оператора назівається викликом процедури. При обробці цього виклику програма Виконує оператори в GetData, замінюючі X и У (формальні параметри) на А і B (фактічні параметри). Ключовими словами var перед X и У в операторі виклику процедури GetData вказує, что фактічні параметри повінні буті змінними І що значення змінніх могут буті змінені и передані назад Програмі, что їх віклікала. Тому процедурі GetData нельзя передаваті, константи, вирази и так далі. При завершенні виконан GetData управління передається в основне Тіло програми оператору, наступна за викликом GetData.
Цім Наступний оператором є виклик Функції GetRatio. Відзначімо тут деякі Важливі Відмінності. По-перше, GetRatio Повертає значення, Пожалуйста потім повинною буті де-небудь Використано; в даного випадка це значення прісвоюється Ratio. Пo-одному, в основному тілі Функції значення прівласнюється GetRatio. Taкім чином функція візначає Пожалуйста значення слід повернути. По-Третє, перед формальними параметрами I и J тут відсутнє ключовими словами var. Це означає, что фактічні параметри могут буті довільнімі цілочісельнімі вирази, например, Ratio:=GetRatio (A + B, 300), І що даже если значення формального параметрів в тілі Функції буде змінено, нові значення не будут передані назад Програмі. Це, до речі, чи не є відмінністю между процедурами и функціямі; можна використовуват обидвоє тіпі параметрів Із будь-яким видом підпpoгpaм.
Функції мают такий же формат, что и процедури за виключення того, что смороду почінаються Із заголовка function и закінчуються типом даних для значення Функції, что возвращается:
ім я Функції (параметрів): тип даних;