Всі формальні структуровані параметри повинні бути описані як параметри-змінні.
Передачу в підпрограму структурованих типів даних можна здійснити декількома способами:
1. Опис свого типу даних.
В основній програмі в розділі опису типів описується структурований тип. Змінні в основній програмі і відповідний формальний параметр в заголовку підпрограми повинні бути змінними цього типу.
Type
тm = array [1....10] оf real;
var
mas: тм;
prоcedure prоc (var mass: тm); {заголовок п/п}
:
:
end;
begin
:
Prоc (mas); {Виклик п/п}
:
end.
2. Використання безтипових змінних.
В заголовку підпрограми не вказується тип параметру-змінної. В підпрограмі в розділі опису типів описується відповідний тип до якого буде приведено безтиповий параметр. Цей тип повинен бути сумісним з типом відповідного переданого параметру.
Var
b1: array [1. .100] оf byte;
b2: array [‘a’. .’z’] оf byte;
prоcedure pr (var b);
type
Tb = array [1....32500] оf byte;
:
:
{Звернення до масиву b в п/п: ТВ(b)[I]}
Tb(b)[i]:=34;
End;
Begin
:
pr(b1);
:
end.
3. Масиви і рядки невизначеної довжини.
В заголовку підпрограми при описі параметру вказується його тип але не вказується його розмір. При використанні масивів значення розміру масиву можна отримати за допомогою функції High(<Ім’я масиву>). Нумерація елементів в масиві буде починатись з 0 (нуля) і закінчуватись значенням функції High(<Ім’я масиву>)-1
Function Sum(var X: array of Real): Real;
Var
I: Word;
S: Real;
Begin
S := 0;
For I := 0 to High(X)-1 do
S := S + X[I];
Sum := S;
End;