RosettaCodeData/Task/Jensens-Device/Pascal/jensens-device.pas

33 lines
452 B
ObjectPascal

program Jensens_Device;
{$IFDEF FPC}
{$MODE objFPC}
{$ENDIF}
type
tTerm = function(i: integer): real;
function term(i: integer): real;
begin
term := 1 / i;
end;
function sum(var i: LongInt; lo, hi: integer; term: tTerm): real;
begin
result := 0;
i := lo;
while i <= hi do
begin
result := result + term(i);
inc(i);
end;
end;
var
i: LongInt;
begin
writeln(sum(i, 1, 100, @term));
{$IFNDEF UNIX} readln; {$ENDIF}
end.