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

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

Степень


Системщик ©   (2006-04-12 23:25:00) 

Как в делфи, соответственно в паскале возвети в степень? К примеру: у в 4 степени. Если можно дайте ресурс на эту тему.


elfebet   (2006-04-13 11:59:00) [1]


> А поподробнее как это сделать.....

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, XPMan, Math;
......


grisme   (2006-04-13 11:55:00) [2]

ой, извиняюсь там дяденьки уже ответили так же...)))


grisme   (2006-04-13 11:54:00) [3]

имеем следущее:
· x^y=z
прологорифмируем...
· ln(x^y)=ln(z)
степень y за логарифм...
· y*ln(x)=ln(z)
дабы избавиться от ln При z
сделаем так:
exp(y*ln(x))=z
z-это результат...;)


Системщик   (2006-04-13 11:24:00) [4]

"elfebet ©   (13.04.06 09:34) [8]

> по-твоему не получилось Power(y,4)

все получается, просто надо добавить в Unit библиотеку Math"

А поподробнее как это сделать.....


elfebet   (2006-04-13 09:34:00) [5]


> по-твоему не получилось Power(y,4)

все получается, просто надо добавить в Unit библиотеку Math


Rial   (2006-04-13 03:43:00) [6]

Да никакой разницы нет. Второе число сразу имеет дробный тип и мы делаем жизнь компилятора проще.

А вот в случае с константами может быть все хуже.

Например, компилятор быдет грязно ругаться на такой код

Const A=100;
***
Var E:Extended;
begin
E:=A*A*A*A*A;
end;

А если написать сразу
Const A=100.0;
то все будет ok.

0.00 и 0.000 - это уже изврат.


Германн   (2006-04-13 02:33:00) [7]


> Джо ©   (13.04.06 01:23) [5]


Дело было вечером, делать было нечего...
Посмотрел реализацию функции Power в D6.
function Power(const Base, Exponent: Extended): Extended;
begin
 if Exponent = 0.0 then
   Result := 1.0               { n**0 = 1 }
...


Может кто объяснить строчку if Exponent = 0.0?
Почему 0.0 а не 0?
Не я понимаю, что 0 - это целое число, а 0.0 - вещественное. Но почему именно 0.0, а не 0.00, 0.000, и т.д. и т.п.


Джо   (2006-04-13 01:23:00) [8]

> [4] системщик ©   (13.04.06 01:21)
> to Джо
> по-твоему не получилось Power(y,4)

Не расстраивайся, не всем дано.


системщик   (2006-04-13 01:21:00) [9]

to Джо
по-твоему не получилось Power(y,4)

а вот так a^b:=exp(b*ln(a)) получилось


STK   (2006-04-12 23:40:00) [10]

А можно некрасиво:
result:=1;
for i:=1 to степень do
result := число*result;
но это если степень положителная и целая. Если отрицательная то result:=1/(число*result);
Но это повторяю очень некрасиво.
Два верхних очень красивые.


Джо   (2006-04-12 23:34:00) [11]

> К примеру: у в 4 степени.

Power(y,4)


> Если можно дайте ресурс на эту тему.

Math.pas


mlm68   (2006-04-12 23:29:00) [12]

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


Наверх

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