Вот старый алгоритм
uses crt;
function Power(x,y:real):real;
begin
if x=0 then Power:=0
else if x>0 then Power:=exp(ln(x)*y)
else Power:=-exp(ln(abs(x))*y);
end;
var x,y:real;
begin
clrscr;
write('x=');readln(x);
write('y=');readln(y);
write('x^y=',Power(x,y):0:3);
readln
end.
Он не хотел работать вместе с моей программой из-за объявленной функции.
Вот новый:
var
num, deg: real; res: real; i: byte;
begin
writeln ('Введите основание и показатель степени:');
readln (num,deg);
res := 1;
i := 0;
while i < abs(deg) do begin
res := res * num;
i := i + 1
end;
if deg < 0 then
res := 1 / res;
writeln (res:0:5);
end.