Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Вниз

Как возвести в 0,25 степень   Найти похожие ветки 

 
Гаврилов В.А.   (2005-07-02 13:01) [0]

Уважаемые мастера!

Подскажите пожалуйста как программно возвести число в 0,25 степень. В квадрат знаю, а как в 0,25 степень не знаю.

С уважением Гаврилов В.А.


 
P.N.P. ©   (2005-07-02 13:12) [1]

uses Math;
function Power()


 
A№t0№   (2005-07-02 13:50) [2]

c := exp(a*ln(b));
a - число возводимое в степень b


 
VMcL ©   (2005-07-02 13:55) [3]

или Sqrt(Sqrt(x))


 
uny ©   (2005-07-02 14:46) [4]

если показатель степени представлен в виде дроби = 1/4, 0.25 или 25/100,
1. то числитель этой дроби = "в какую степень нужно возвести основание"
2. знаменатель = "корень какой степени нужно извлечь из полученного в п.1 числа"

т.е. a^0.25 = a^(1/4) = корень 4-й степени из (а^1)


 
isasa ©   (2005-07-02 20:26) [5]

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;


 
isasa ©   (2005-07-02 20:30) [6]

или
for j:=1 to abs(i) do y:=y*x;  => y:=x*x_y(x, i-1);


 
isasa ©   (2005-07-02 20:32) [7]

пардон
y:=x*x_y(x, abs(i)-1);


 
Гаврилов В.А.   (2005-07-02 21:32) [8]

Спасибо всем но я сделал так (это пример)
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;


 
ferr ©   (2005-07-02 22:09) [9]

Попрубуйте 5^(0.5) и (-1)^3.
Изпользуйте Power.


 
begin...end ©   (2005-07-02 22:11) [10]

"Дети Ивана Кулибина" (с)


 
ferr ©   (2005-07-02 22:12) [11]

нагадил в прошлом посте 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;


 
isasa ©   (2005-07-02 22:26) [12]

begin...end ©   (02.07.05 22:11) [10]
"Дети Ивана Кулибина" (с)

ну-ка, ну-ка.
А в стандарте Паскаля возведение в степень есть?


 
begin...end ©   (2005-07-02 22:29) [13]

> isasa ©   (02.07.05 22:26) [12]
> А в стандарте Паскаля возведение в степень есть?

А тут форум по стандарту Паскаля?


 
isasa ©   (2005-07-02 22:42) [14]

ну-ка, ну-ка.
А в Delphi возведение в степень есть?(как оператор)


 
begin...end ©   (2005-07-02 22:45) [15]

> isasa ©   (02.07.05 22:42) [14]

Ну-ка, ну-ка. Где в исходном вопросе требование возвести число в степень 0,25 оператором?


 
isasa ©   (2005-07-02 23:11) [16]

ну-ка, ну-ка.
Спросили - как
Ответили -
function Power()
function x_y

в у Кулибина как?  :)))))))))))))))


 
uny ©   (2005-07-02 23:32) [17]

begin...end
зачем ворчать, лучше приходить раньше ;)


 
begin...end ©   (2005-07-03 09:16) [18]

> isasa ©   (02.07.05 23:11) [16]

> Спросили - как

Да, спросили: как возвести число в степень 0,25.

> Ответили - ...

А ответили вот что. Вначале посоветовали Power -- стандартное и давно проверенное решение. Затем -- двойной Sqrt -- оригинальное решение, которое, кстати, работать будет быстрее Power. Вот на этом вполне можно было бы и закончить.

Вместо того, чтобы советовать:
а) использовать свойства логарифмов (а именно это свойство уже используется в стандартной и давно проверенной Power), приведя НЕПРАВИЛЬНУЮ формулу [2];
б) функцию возведения числа в ЦЕЛУЮ степень [5];
в) функцию возведения числа в вещественную степень без проверки на границы применимости свойства логарифмов, напр. когда показатель степени равен вещественному нулю [5];
г) использовать якобы существующий оператор ^ [9]
и т.д.


 
ferr ©   (2005-07-03 10:06) [19]

г) Я хотел привести примеры при каких обстоятельствах приведённый автором код не будет работать(ошибся), показав тем самым что надо использовать Power.



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

Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.04 c
5-1090223809
Hooch
2004-07-19 11:56
2005.07.18
шрифт редактора кода


1-1119622960
Игорь Степанов
2005-06-24 18:22
2005.07.18
Зависимость между обычными пикселами канвы и логическими пикселам


8-1111421913
FlyingHero
2005-03-21 19:18
2005.07.18
Уменьшение размеров JPEG картинки


1-1120149189
Бу
2005-06-30 20:33
2005.07.18
Графика


11-1103210800
boodilnik
2004-12-16 18:26
2005.07.18
иконки в Delphi7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский