Параметры-процедуры и параметры-функции.

Параметр процедурного типа может быть передаваемым параметром. Этот параметр является параметром-значением, т.е. записывается без Var.

В качестве фактического параметра используется процедура или функция, имеющая необходимое количество параметров требуемых типов.

ПП должна компилироваться с ключом { $F+ }.

Например, программа, печатающая таблицы сложения и умножения двух целых чисел в разном диапазоне.

Program Primer;

Type

Func = function (x, y : integer) : integer;

{ $F+ }

Function Add (x, y : integer) : integer;

begin

Add := x + y;

end;

Function Multiply ( x, y : integer) : integer;

begin

Multiply := x * y;

end;

{ F$- }

Procedure PrintTable (a, b : integer; operation : Func);

Var

I, j : integer;

begin

for i:=1 to a do

begin

for j :=1 to b do

write(operation(i, j));

writeln;

end;

writeln;

end;

Begin

PrintTable (10, 10, Add);

PrintTable (10, 10, Multiply);

End.

Компилятор Турбо Паскаля автоматически выбирает адресацию к ПП. Если ПП находится в одном файле с основной программой, то она компилируется с «ближним» адресом входа и возврата, состоящем только из смещения в текущем сегменте.

Если ПП используется для переменных процедурного типа, то она компилируется с получением «дальнего» адреса. В этом случае компилятору нужно указать ключ { F$+ }.

 








Дата добавления: 2015-01-13; просмотров: 632;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.