![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как возвести в 0,25 степень [D5, Win95/98, WinXP]
Гаврилов В.А. © (2005-07-02 13:01:00)Уважаемые мастера!
Подскажите пожалуйста как программно возвести число в 0,25 степень. В квадрат знаю, а как в 0,25 степень не знаю.
С уважением Гаврилов В.А.
ferr (2005-07-03 10:06:00) [1]г) Я хотел привести примеры при каких обстоятельствах приведённый автором код не будет работать(ошибся), показав тем самым что надо использовать Power.
begin...end (2005-07-03 09:16:00) [2]> isasa © (02.07.05 23:11) [16]
> Спросили - как
Да, спросили: как возвести число в степень 0,25.
> Ответили - ...
А ответили вот что. Вначале посоветовали Power -- стандартное и давно проверенное решение. Затем -- двойной Sqrt -- оригинальное решение, которое, кстати, работать будет быстрее Power. Вот на этом вполне можно было бы и закончить.
Вместо того, чтобы советовать:
а) использовать свойства логарифмов (а именно это свойство уже используется в стандартной и давно проверенной Power), приведя НЕПРАВИЛЬНУЮ формулу [2];
б) функцию возведения числа в ЦЕЛУЮ степень [5];
в) функцию возведения числа в вещественную степень без проверки на границы применимости свойства логарифмов, напр. когда показатель степени равен вещественному нулю [5];
г) использовать якобы существующий оператор ^ [9]
и т.д.
uny (2005-07-02 23:32:00) [3]begin...end
зачем ворчать, лучше приходить раньше ;)
isasa (2005-07-02 23:11:00) [4]ну-ка, ну-ка.
Спросили - как
Ответили -
function Power()
function x_y
в у Кулибина как? :)))))))))))))))
begin...end (2005-07-02 22:45:00) [5]> isasa © (02.07.05 22:42) [14]
Ну-ка, ну-ка. Где в исходном вопросе требование возвести число в степень 0,25 оператором?
isasa (2005-07-02 22:42:00) [6]ну-ка, ну-ка.
А в Delphi возведение в степень есть?(как оператор)
begin...end (2005-07-02 22:29:00) [7]> isasa © (02.07.05 22:26) [12]
> А в стандарте Паскаля возведение в степень есть?
А тут форум по стандарту Паскаля?
isasa (2005-07-02 22:26:00) [8]begin...end © (02.07.05 22:11) [10]
"Дети Ивана Кулибина" (с)
ну-ка, ну-ка.
А в стандарте Паскаля возведение в степень есть?
ferr (2005-07-02 22:12:00) [9]нагадил в прошлом посте c примерами(спать пора).... используйте Power...
function Power(const Base, Exponent: Extended): Extended;
begin
if Exponent = 0.0 then
Result := 1.0 { n**0 = 1 }
else if (Base = 0.0) and (Exponent > 0.0) then
Result := 0.0 { 0**n = 0, n > 0 }
else if (Frac(Exponent) = 0.0) and (Abs(Exponent) <= MaxInt) then
Result := IntPower(Base, Integer(Trunc(Exponent)))
else
Result := Exp(Exponent * Ln(Base))
end;
begin...end (2005-07-02 22:11:00) [10]"Дети Ивана Кулибина" (с)
ferr (2005-07-02 22:09:00) [11]Попрубуйте 5^(0.5) и (-1)^3.
Изпользуйте Power.
Гаврилов В.А. (2005-07-02 21:32:00) [12]Спасибо всем но я сделал так (это пример)
procedure TForm1.Button1Click(Sender: TObject);
var c,c2,c3: real;
begin
c:=StrToFloat(Vvod100.text);
c2:=StrToFloat(Edit2.text);
c3:= exp(c*ln(c2));//с2 - число возводимое в степень с
RzLineEdit1.Text:= FloatToStrF(c3,ffGeneral,10,5);
end;
isasa (2005-07-02 20:32:00) [13]пардон
y:=x*x_y(x, abs(i)-1);
isasa (2005-07-02 20:30:00) [14]или
for j:=1 to abs(i) do y:=y*x; => y:=x*x_y(x, i-1);
isasa (2005-07-02 20:26:00) [15]
function x_y(x : extended; i : integer) : extended; overload;
var j : integer;
y : extended;
begin
if i=0 then Result:=1
else begin
y:=1;
for j:=1 to abs(i) do y:=y*x;
if i<0 then Result:=1/y
else Result:=y;
end;
end;
function x_y(x : extended; i : extended) : extended; overload;
begin
Result:=exp(i*ln(x));
end;
uny (2005-07-02 14:46:00) [16]если показатель степени представлен в виде дроби = 1/4, 0.25 или 25/100,
1. то числитель этой дроби = "в какую степень нужно возвести основание"
2. знаменатель = "корень какой степени нужно извлечь из полученного в п.1 числа"
т.е. a^0.25 = a^(1/4) = корень 4-й степени из (а^1)
VMcL (2005-07-02 13:55:00) [17]или
Sqrt(Sqrt(x))
A№t0№ (2005-07-02 13:50:00) [18]c := exp(a*ln(b));
a - число возводимое в степень b
P.N.P. (2005-07-02 13:12:00) [19]uses Math;
function Power()