I took _Atex_'s function routine and reformatted it.
function power ( base : double; exponent : integer ) : double;
begin
if exponent < 0 then
power := 1.0 / power( base, -exponent )
else
if exponent = 0 then
power := 1
else
power := base * power( base, pred( exponent ) )
end;
But then I realized to be sure that it works correctly, that I need to write a program to check it out; so I did.
{ power check for checking the base and exponent in a recursive routine
by Carl W. Skipworth Rev Date 2013-Mar-3
}
program powercheck;
uses
Crt;
var
base : double;
exp : integer;
value : double;
{$include power.pas}
begin
writeln( 'Power number check for 2' );
base := 2.0;
for exp := -5 to 20 do begin
value := power( base, exp );
writeln( 'exp is', exp:4, ' value is', value:15:6 )
end;
end.