Аргументы

Описание

Процедурный тип данных

Открытые строки

Поскольку строки - это массивы символов, то они тоже могут стать открытыми параметрами. Описывается это следующим образом:

var <имя_параметра>: string

Например:

function func6 (var s: string): byte;

Длина такого параметра будет автоматически скорректирована в соответствии с длиной строки-аргумента.

Имена подпрограмм могут выступать в роли аргументов для других подпрограмм.

В разделе type процедурный тип данных задается одним из следующих способов:

<имя_типа> = function[(<список_параметров>)]:<тип_результата>;

или

<имя_типа> = procedure[(<список_параметров>)];

Например:

type func = function(a,b:integer):integer;

Аргументами, которые можно передать в параметр процедурного типа, могут быть только подпрограммы первого уровня вложенности, чье объявление полностью соответствует этому типу. Кроме того, объявления подпрограмм, которые могут стать аргументами, необходимо снабдить ключевым словом far, означающим, что программа будет использовать не только основной сегмент данных.

Например, для параметра, имеющего описанный выше тип func, аргументами могут послужить такие функции:

function min(a,b: integer): integer; far; begin if a>b then min:= b else min:= a end;

и

function max(a,b: integer): integer; far; begin if a<b then max:= b else max:= a end;