Pers.narod.ru. Алгоритмы. Перегрузка функций на Паскале с помощью type |
Оператор type, не слишком удобный при передаче векторных или матричных параметров подпрограммам, неплохо подходит для описания типа данных "функция". Этот тип позволит затем передавать функции или процедуры в качестве параметров другим подпрограммам.
Пример ниже показывает, как после описания типа данных func оператором
type func= function (x,y:integer) :integer;
мы можем передавать процедуре DoTable различные функции, подходящие по прототипу под это описание.
type func= function (x,y:integer) :integer; function add (x,y:integer) :integer; {Функция сложения 2 чисел} begin add:=x+y; end; function multiply (x,y: integer) :integer; {Функция умножения 2 чисел} begin multiply:=x*y; end; procedure DoTable (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):5); writeln; end; writeln; end; begin Writeln ('Таблица сложения чисел от 1 до 10:'); DoTable (10,10,Add); Writeln ('Таблица умножения чисел от 1 до 10:'); DoTable (10,10,Multiply); Write ('Нажмите Enter для выхода...'); Readln; end.
гостевая; E-mail |