{$APPTYPE Console} program FuncAsParams; { Um Funktionen als Parameter an andere Routinen übergeben zu können, muessen sie zunaehst als (Funktions-) Typ deklariert werden. } type tFunc = function(x : real): real; { Diese Prozedur bekommt nun eine Funktion als Parameter ... } procedure Calc(min, max, step: real; f : tFunc); var i : integer; x : real; begin i := 0; x := min; while x <= max do begin writeln(x:5:2, ' ' , f(x):5:2); { Aufruf jener Funktion} inc(i); x := min + i * step; end; end; { herkömmliche Funktion zum Übergeben } function quadr(x : real) : real; begin quadr := x * x; end; { herkömmliche Funktion zum Übergeben } function sinus(x : real) : real; begin sinus := sin(X); end; begin Calc(0, 5, 1, quadr); Calc(0, pi, 0.3, sinus); readln; end.