деякий значення, тому функцію можна використовувати у виразах поряд зі змінними і константами.
Процедури і функції являють собою засіб, за допомогою якого програма може бути розбита на ряд відносно-незалежних одна від одної частин. Це дозволяє заощадити пам'ять, тому що код підпрограми існує в єдиному екземплярі, а звертатися до них можна з різних точок програми. p align="justify"> У кожної підпрограми існує набір параметрів, який дозволяє модифікувати реалізований їй алгоритм. При виклику, параметри вказуються в дужках, після виклику підпрограми. br/>
Локалізація імен
Всі підпрограми, що викликаються в модулі, повинні бути попередньо оголошені:
В· Або згадкою заголовка в интерфейсном розділі;
В· Або повним описом у розділі реалізації свого модуля.
Кожна підпрограма має структуру, схожу зі структурою основної програми, модуля та проекту:
Procedure/Function ім'я [(параметри)] [<тип, результати та інші функції>]
Type
<оголошення типів>;
Const
<оголошення констант>;
Var
<оголошення змінної>;
Label
<оголошення міток>;
Begin
<тіло підпрограми>;
End;
Процедура виконує тільки тіло підпрограми, а функція повертає ще й значення результату.
Підпрограма будь-якого рівня має, як правило, багато констант змінних, типів і вкладених в неї підпрограм нижчого рівня. Вважаючи, що всі імена, описані усередині підпрограми, локалізуються в ній, тобто вони не видимі зовні, таким чином, з боку операторів використовують звернення до підпрограми вона трактується як чорний ящик, в якому реалізований той чи інший алгоритм; всі деталі реалізації цього алгоритму приховані для вищого модуля або підпрограми. При вході в підпрограму нижчого рівня стають доступними не тільки оголошені в ній імена, але і зберігається доступ до всіх імен верхнього рівня. p align="justify"> Приклад:
Primer;
.
. V1 ...;
.
. AV2;;; B; V3
Procedure B1;
Var V4; B2;
Var V5;
Begin;
.
.;
.
.;
Begin
.
.
End;
End;
End.
Із процедури (B2) доступні змінні (V1, V3, V4, V5).
З процедури (V1) доступні змінні (V1, V3, V4).
З процедури (B) доступні змінні (V1, V3).
З процедури (A) доступні змінні (V1, V2).
На рівні модуля доступна змінна (V1).
У разі якщо локальний ідентифікатор збігається з глобальним, то локальне оголошення перекриває глобальне.
Приклад:
A;;: string; B;: string;
s: bbb! ;
Label1; Caption: = всередині процедури B s = + s;;: aaa ;; Caption: = до вибору у процедурі B s = + s;;
Label0 [ до входу ... ааа ]
Label1 [ всередині процедури ... bbb! ]
Label2 [після процедури ... ааа]
З внутрішньої процедури можна звернутися до однакового ідентифікатором зовнішньої, за допомогою специфікатора:
pascal ідентифікатор константа масив
<ім'я процедури. Ім'я ідентифікатора.> A.S.
.
.
s: bbb!
label1. Caption: всередині процедури B s = + s + а всередині процедури A s = span> + AS;
.