Помощь - Поиск - Пользователи - Календарь
Полная версия: Вычисление среднего геометрического
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
BDS
Помогите пожалуйста!
Мне нужно вычислить ср. геометрическое на Паскале!
Но я не знаю каким образом можно возвести в степень 1/n или вычислить корень n-ной степени! ???

Если кто знает, помогите пожалуйста!
Паук
Код

(* Функция вычисления степени 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
Большое спасибо Пауку за эту функцию !!!

Если кому понадобится эта прога - пришлю (вычисление ср. геометрического)
Паук
Присылай конечно эту прогу, другим тоже может понадобиться smile.gif
А прелесть  этой функции как раз в том, что она работает с любыми числами, не обязательно целыми
Clane
Пришли мне эту программу на clane@inbox.ru, расположу на сайте.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.