gn="justify">.
При взаємодія підпрограм одного і того ж рівня ієрархії вступає в дію наступне правило:
Будь підпрограма перед її використанням повинна бути оголошена.
Приклад:
PrimerC; [або A, B] A; B; A;
.
.; B
. [A];
.; C;
. [A, B];
.;.
Зауваження: 1). Якщо процедури були оголошені в интерфейсном розділі модуля (одним рядком), то їх можна викликати будь-яку з будь-якої і у будь-якому порядку. p align="justify">). Якщо процедури оголошені в интерфейсном розділі, то в розділі реалізації вони можуть розташовуватися в довільному порядку і викликати будь-яку з будь-якою. p align="justify"> Формальні і фактичні параметри
Параметри, зазначені в опис заголовка програми називаються формальними, а параметри, зазначені при виклику підпрограми, називаються фактичними.
Приклад:
A;, b: real; Add (x, y: real ;): real; (x, y - формальні параметри): = x + y;;
a: = 3
b: = Add (a, 11); [14] (Add - фактичний параметр)
End;
Синтаксис запису процедур і функцій
Procedure <ім'я> [([var] <ім'я>: <тип>; [[var] <імя1, імя2 ...>: <тип1 ...>])] ;
Function <ім'я> [([var] <імя1>: <тип1>, [var] <імя2, імя3 ...>: <Тип3>)]: <тип результату>
Функція на відміну від процедури обов'язково повертає значення зазначеного типу і може використовуватися тільки у вираз. p align="justify"> У тілі функції (Begin ... End ;) обов'язково повинна бути наступна рядок:
ім'я функции: = ...;
Ця змінна зберігає результат, що повертається функцією, і може бути використана лише один раз.
Так само всередині кожної функції існує оголошена, за замовчуванням, змінна з ім'ям Result. Ця змінна так само зберігає значення функції, але може використовуватися скільки завгодно. br/>
Function Sum (n: integer): integer;, s: integer;: = 0; i = 1 to n do s: = s + i;: = s;; Sum (n: integer ): integer;: integer;: = 0; i = +1 to n do result: = result + i;;
Способи передачі параметрів підпрограми:
В· Передача за посиланням (в підпрограму передається посилання (адреса фактичного параметра));
В· Передача за значенням (як параметр передається копія значення фактичного параметра);
В· Передача за назвою (підпрограмі передається ім'я тієї змінної, яка є фактичною змінної (в сучасних мовах програмування цей спосіб не застосовується)).
Перші два способи застосовуються в OPascal, яким способом передавати параметри, приймає рішення програміст. Слід враховувати, що параметри, передані за посиланням, можуть повертати значення при виході з процедури або функції, тобто можуть бути змінені всередині підпрограми.
Параметри, передані за значенням, усередині підпрограми змінити не можна.
Для передачі параметра за посиланням необхідно вказати в заголовку підпрограми ключове слово Var, перед ім'ям необхідного параметра. За умовчанням параметри передаються за значенням. p align="justify"> Приклад:
Procedure ABC;
Var
x, y: integer;
Procedure Test (p1: integer; var p2: integer);: = p1 + 1, p2: = p2 + 1;. Caption: = p1 = + IntToStr (p1); [p1 = 2]. Caption: = p2 = + IntToStr (p2); [p2 = 6];: = 1, y: = 5; (x, y);. Caption: = x = + IntToStr (x); [x = 1]. Caption: = y = + IntToStr (y); [y = 6];
Коментар до підпрограми: У даному прикладі в процедуру Test передається два параметри (p1, p2): (p1 - за значенням, p2 - за посиланням), відповідні їм фактичні параметри x і y, після виходу з процедури Test, приймають такі значення: (x = 1, тобто залишаєтьс...