Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как возвести число в степень? [D6, D7, WinXP]


Interesting ©   (2009-08-24 09:19:00) 

Всем доброе время суток.

Вопрос возник по математическим функциям и их реализации в Delphi.

Меня интересует наиболее простой и максимально стандартный способ возведения числа в степень (можно только целого).
Интересны также математические библиотеки и инфа по расчету: косинуса, синуса, тангенса и всего прочего.....

PS
Ест пример расчета степени при помощи Asm, но хотелось бы что-то иное


Thrashead   (2009-08-24 14:45:00) [1]

Dennis, в данный момент не могу, т.к. на работе. Появится возможность - посмотрю.

TIF, спасибо.


TIF   (2009-08-24 14:09:00) [2]

> 2) Power может вычислить (-2)^(0.5) ?

Нет
http://infodelphi.ru/Help/RADStudio/en/Math.Power.html

For fractional exponents or exponents greater than MaxInt, Base must be greater than 0.


Dennis I. Komarov   (2009-08-24 14:00:00) [3]


> Thrashead   (24.08.09 13:57) [11]
>

А исхдники посмотреть?


Thrashead   (2009-08-24 13:57:00) [4]

HeadTrash & Dennis Komarov:
Формула предложена как вариант возведения в степень.
А так согласен с вами.
+ 1) Интересно только, почему "медленно работает"?
+ 2) Power может вычислить (-2)^(0.5) ?


Dennis I. Komarov   (2009-08-24 12:58:00) [5]


> Thrashead   (24.08.09 12:23) [8]
>

И чем оно удобней Power?


HeadTrash   (2009-08-24 12:56:00) [6]

> Thrashead   (24.08.09 12:23) [8]
> удобно, т.к. это общая формула для любых чисел.

Неудобно, т.к. годится только для a>0 и медленно работает.


Thrashead   (2009-08-24 12:23:00) [7]

Доказательство:
exp(b*ln(a)) = (e^ln(a))^b = a^b

PS: e^ln(a) = a;
PS/2: удобно, т.к. это общая формула для любых чисел.


Thrashead   (2009-08-24 12:09:00) [8]

a^b = exp(b*ln(a))


Anatoly Podgoretsky   (2009-08-24 11:40:00) [9]


> Interesting   (24.08.09 11:27) [3]

Ох зря мы переместили в Начинающие.


Сергей М.   (2009-08-24 11:31:00) [10]

[Simple]Round[To]
Trunc
Floor


Dennis I. Komarov   (2009-08-24 11:30:00) [11]

Trunck подойдет?


Interesting   (2009-08-24 11:27:00) [12]

Кто подскажет как Extended в Integer преобразовать?

Очень надо?


Interesting   (2009-08-24 09:36:00) [13]

> Сергей М. ©   (24.08.09 09:27) [1]

Спасибо большое, а то что-то заклинило и Asm посчитал единственным удачным вариантом.... :)


Сергей М.   (2009-08-24 09:27:00) [14]


> наиболее простой и максимально стандартный способ возведения
> числа в степень


Math.Power()


> косинуса, синуса


System


> тангенса и всего прочего


Math


Наверх

Титульная страница Поиск, карта сайта Написать письмо