Автор: BDS 4.05.2003 12:25
Помогите пожалуйста!
Мне нужно вычислить ср. геометрическое на Паскале!
Но я не знаю каким образом можно возвести в степень 1/n или вычислить корень n-ной степени! ???
Если кто знает, помогите пожалуйста!
Автор: Паук 4.05.2003 12:39
Код
(* Функция вычисления степени a^b *)
function power(a,b:real):real;
function relerror(observed,actual:real):real;
begin
if actual=0.0 then relerror:=abs(observed)
else relerror:=abs(observed/actual-1);
end;
var
i:byte;
res:real;
begin
if (trunc(B)=B) and (b>0) then
begin
res:=1;
for i:=1 to trunc(B) do
res:=res*a;
power:=res;
exit;
end;
if a=0 then
if b=0 then power:=1 else if b<0 then else power:=0
else if a<0 then if abs(B)< 1e-10 then power:=1
else if relerror(b,round(B))< 1e-8 then
power:=(1-2*ord(odd(round(B))))*exp(b*ln(abs(a)))
else if (relerror(1/b,round(1/B))< 1e-8) and odd(round(1/B)) then
power:=-exp(b*ln(abs(a)))
else else power:=exp(b*ln(a))
end;
Автор: BDS 4.05.2003 12:46
Большое спасибо Пауку за эту функцию !!!
Если кому понадобится эта прога - пришлю (вычисление ср. геометрического)
Автор: Паук 4.05.2003 12:52
Присылай конечно эту прогу, другим тоже может понадобиться
А прелесть этой функции как раз в том, что она работает с любыми числами, не обязательно целыми
Автор: Clane 4.05.2003 14:14
Пришли мне эту программу на clane@inbox.ru, расположу на сайте.