Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
ВнизСтепень Найти похожие ветки
← →
Системщик © (2006-04-12 23:25) [0]Как в делфи, соответственно в паскале возвети в степень? К примеру: у в 4 степени. Если можно дайте ресурс на эту тему.
← →
mlm68 © (2006-04-12 23:29) [1]a^b:=exp(b*ln(a))
← →
Джо © (2006-04-12 23:34) [2]> К примеру: у в 4 степени.
Power(y,4)
> Если можно дайте ресурс на эту тему.
Math.pas
← →
STK © (2006-04-12 23:40) [3]А можно некрасиво:
result:=1;
for i:=1 to степень do
result := число*result;
но это если степень положителная и целая. Если отрицательная то result:=1/(число*result);
Но это повторяю очень некрасиво.
Два верхних очень красивые.
← →
системщик © (2006-04-13 01:21) [4]to Джо
по-твоему не получилось Power(y,4)
а вот так a^b:=exp(b*ln(a)) получилось
← →
Джо © (2006-04-13 01:23) [5]> [4] системщик © (13.04.06 01:21)
> to Джо
> по-твоему не получилось Power(y,4)
Не расстраивайся, не всем дано.
← →
Германн © (2006-04-13 02:33) [6]
> Джо © (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, и т.д. и т.п.
← →
Rial © (2006-04-13 03:43) [7]Да никакой разницы нет. Второе число сразу имеет дробный тип и мы делаем жизнь компилятора проще.
А вот в случае с константами может быть все хуже.
Например, компилятор быдет грязно ругаться на такой код
Const A=100;
***
Var E:Extended;
begin
E:=A*A*A*A*A;
end;
А если написать сразу
Const A=100.0;
то все будет ok.
0.00 и 0.000 - это уже изврат.
← →
elfebet © (2006-04-13 09:34) [8]
> по-твоему не получилось Power(y,4)
все получается, просто надо добавить в Unit библиотеку Math
← →
Системщик © (2006-04-13 11:24) [9]"elfebet © (13.04.06 09:34) [8]
> по-твоему не получилось Power(y,4)
все получается, просто надо добавить в Unit библиотеку Math"
А поподробнее как это сделать.....
← →
grisme © (2006-04-13 11:54) [10]имеем следущее:
· x^y=z
прологорифмируем...
· ln(x^y)=ln(z)
степень y за логарифм...
· y*ln(x)=ln(z)
дабы избавиться от ln При z
сделаем так:
exp(y*ln(x))=z
z-это результат...;)
← →
grisme © (2006-04-13 11:55) [11]ой, извиняюсь там дяденьки уже ответили так же...)))
← →
elfebet © (2006-04-13 11:59) [12]
> А поподробнее как это сделать.....
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, Math;
......
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.015 c