Q:> 2.3.1 Как возводить в степень (в т. ч. и дробную)
A:> В Паскале нет функций возведения в степень. Есть только функции
SQR и SQRT - возведение в квадрат и извлечение корня. Тем не менее
знания математики на уровне средней школы достаточно для написания
подобной функции:
function Power(Base,Exponent: Real): Real;
var
Tmp: Real;
begin
Power:=0;
if Int(Exponent/2)=Exponent/2 then Base:=Abs(Base);
if Exponent=0 then begin
Power:=1;
Exit
end;
if Base=0 then begin
power:=0;
exit
end;
if Base>0 then begin
Tmp:=Exp((Abs(Exponent))*Ln(Base));
if Exponent>0 then begin
power:=Tmp;
exit
end;
if Exponent<0 then begin
power:=1/Tmp;
exit
end;
end;
if Base<0 then begin
Tmp :=Exp((Abs(Exponent))*Ln(Abs(Base)));
if Exponent>0 then begin
power:=-Tmp;
exit
end;
if Exponent<0 then begin
power:=-1/Tmp;
exit
end;
end;
end;