{$f+}
Program P102;
 { Parametru formal funcţie }
type TF=function(x : real) : real;
var v : TF;

function F1(x : real) : real;
begin
 F1:=x
end; { F1 }

function F2(x : real) : real;
begin
 F2:=3*x+2
end; { F2 }

function F3(x : real) : real;
begin
 F3:=sqr(x)+2*x+1
end; { F3 }


procedure Tabel(F : TF; x1, x2, dx : real);
 { Tabelarea funcýiei F(x) }
var a, b : real;
begin
 a:=x1;
 while a<=x2 do
    begin
      b:=F(a);
      writeln(a:15:5, b:15:5);
      a:=a+dx;
    end;
end; { Tabel }

begin

 writeln('Tabelul funcýiei F1');
 Tabel(F1, 0, 2, 0.5);

 writeln('Tabelul funcýiei F2');
 Tabel(F2, 0, 2, 0.5);

 writeln('Tabelul funciei F3');
 v:=F3;
 Tabel(v, 0, 2, 0.5);

 readln;
end.