![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Степень
Системщик © (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))