Napisałem prostą funkcję potęgowania dla wykładników całkowitych i z jakiegoś powodu nie chce działać. Kompilator nie znalazł żadnych błędów po prostu program się zamyka. Byłbym wdzięczny za wskazanie błędu.
function a_k(a: Real; k:integer) : Real;
var
i: Integer;
begin
if k>=0 then begin
i:=0;
if k>i then begin a_k:=a_k(a, k) * a; i:=i+1; end
else if a_k(a,k)=0 then a_k:=1
else a_k:=a_k(a, k);
end;
if k<0 then begin
if k<i then begin a_k:=1/(a_k(a, k) * a); i:=i+1; end
else begin a_k:=a_k(a, k); end;
end;
end;
var
k : integer;
a: Real;
begin
readln(a);
readln(k);
writeln(a_k(a,k));
readln;
end.