Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Функция возведения в степень   Найти похожие ветки 

 
ilnarab   (2004-05-27 13:28) [0]

Подскажите пожалуйста функцию возводящую число А в степень В. Пробовал Ехр(В * Ln(A)) - не понравилось.


 
Prohodil Mimo ©   (2004-05-27 13:33) [1]

A "Power" chem ne ustraivajet?


 
Ega23 ©   (2004-05-27 13:33) [2]

uses Math

function Power.

Только чем тебе Ехр(В * Ln(A)) - не понравилось?


 
MBo ©   (2004-05-27 13:34) [3]

>Пробовал Ехр(В * Ln(A)) - не понравилось
Ну тогда тебе не понравятся и наши четверги ;) (© анекдот )

Power


 
ilnarab   (2004-05-27 13:34) [4]

А что за функция "Power"?


 
Ega23 ©   (2004-05-27 13:35) [5]

Ну тогда тебе не понравятся и наши четверги ;) (© анекдот )

Что за анекдот?


 
Prohodil Mimo ©   (2004-05-27 13:35) [6]

Eto takaja knopka na sistemnom bloke... nazhal i uzhe v stepeni :o)


 
ilnarab   (2004-05-27 13:38) [7]

А если серьёзно?


 
Vlad ©   (2004-05-27 13:39) [8]


> ilnarab   (27.05.04 13:38) [7]

Raises Base to any power.

Unit

Math

Category

Arithmetic routines

function Power(Base, Exponent: Extended): Extended;

Description

Power raises Base to any power. For fractional exponents or exponents greater than MaxInt, Base must be greater than 0.


 
Ega23 ©   (2004-05-27 13:39) [9]

А если серьёзно?

Если серьёзно, то Power + F1.


 
Prohodil Mimo ©   (2004-05-27 13:41) [10]

ti [2] vnimatel"no prochital?
Jesli etogo malo to Power+F1, nu a jesli i etogo malo to [6] stol"ko raz, v kakuju stepen" vozvesti nado :o)


 
MBo ©   (2004-05-27 13:48) [11]

>Ega23 ©   (27.05.04 13:35) [5]
google по этой фразе


 
Ega23 ©   (2004-05-27 13:58) [12]

google по этой фразе
:о)


 
Глеб ©   (2004-05-27 13:58) [13]

Можно использовать функцию POWER из unit math.
Exp(ln(a)*b) тем плохо, что отрицатеьлные числа нельзя возводить в степень.

Предлагаю хороший алгоритм возведения в степень:

function Pow(a, b: extended): extended;
 var
   k1, k2: extended;
   l: longint;
 begin
   if a > 0 then
     Pow := Exp(b * Ln(a))
   else
   begin
     if b > 0 then
     begin
       l := trunc(b);
       k1 := 1;
       k2 := a;
       while l > 1 do
       begin
         if l mod 2 <> 0 then
         begin
           dec(l);
           k1 := k2 * k1;
         end;
         l := l div 2;
         k2 := k2*k2;
       end;
       Pow := k1*k2;
     end
     else if b = 0 then Pow := 1
     else
     begin
       b := -b;
       l := trunc(b);
       k1 := 1;
       k2 := a;
       while l > 1 do
       begin
         if l mod 2 <> 0 then
         begin
           dec(l);
           k1 := k2 * k1;
         end;
         l := l div 2;
         k2 := k2*k2;
       end;
       Pow := 1/(k1*k2);
     end;
   end;
 end;


Желаю удачи.



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
3-1084513992
Вопрошающий
2004-05-14 09:53
2004.06.06
Копирование данных


4-1079597658
UNIVERSAL
2004-03-18 11:14
2004.06.06
Хочу получить версию файла, но(+)


3-1084456381
Korefey
2004-05-13 17:53
2004.06.06
Передача данных в dbf файл


14-1084638465
Art_Z
2004-05-15 20:27
2004.06.06
Чем заняться?


1-1085674813
Sergey
2004-05-27 20:20
2004.06.06
Удаленный файл