Процедурні типи в turbo pascal 7

В Turbo Pascal процедури і функції можна розглядати як деякі параметри і можна використовувати змінні, що приймають значення процедури або функції. З цією метою вводяться процедурні типи, які вказують, який вид підпрограми (процедуру або функцію) можна використовувати в якості параметра і з якими параметрами повинні бути ці підпрограми.

Далі можна ввести змінні цих типів:

var
Р1. Proc1;
Р2. Proc2;
F1. Func1;

Після цього процедурних змінним можна присвоювати значення конкретних процедур і функцій. Як і у всіх інших випадках, процедурна змінна і підпрограма повинні бути сумісні для присвоювання (т. Е. Повинні мати однакове число формальних параметрів, які збігаються за типами; функції, крім того, повинні мати ідентичний тип). |


procedure Swap (var A, B: Byte);
var
Temp: Byte;
begin
Temp: = A; A: = B; В: = Temp
end;
function Tan (Angle: Real): Real;
begin
Tan: = Sin (Angle) / Cos (Angle)
0, здійснюється в основній програмі>
end;

В цьому випадку процедурних змінним, введеним раніше, можна привласнити значення:

Р2: = Swap;
Fl: = Tan;

а виклики P2 (I, J) і F1 (X) еквівалентні відповідно Swap (I, J) і Таn (Х).

Процедурні змінні можна використовувати так само, як і змінні інших типів: у виразах (якщо ця змінна - функція), у вигляді оператора (якщо ця змінна - процедура), як компонента іншої більш складної змінної, як передається в підпрограму параметр. Ідея єдності даних і підпрограм отримала подальший розвиток в об'єктно-орієнтованому програмуванні - див. П. 14.

Схожі статті