Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.04.29;
Скачать: CL | DM;

Вниз

Возведение в квадрат и извлечение квадратного корня   Найти похожие ветки 

 
Каныбек   (2012-01-01 21:12) [0]

С новым годом! Вопрос такой-как возвести в квадрат и извлечь квадратную корень в Делфи. Помогите плиз.


 
Германн ©   (2012-01-01 21:39) [1]

uses Math
функция Power


 
Jeer ©   (2012-01-01 21:46) [2]

Подружить квадрат и квадратную - это две половинки одного яблока :)


 
Jeer ©   (2012-01-01 21:49) [3]

Квадрат:
y := x*x;
Корень:
z := sqrt(y);


 
RWolf ©   (2012-01-01 23:43) [4]


> Jeer ©   (01.01.12 21:49) [3]
> Квадрат:

y:=sqr(x);


 
Каныбек   (2012-01-02 06:14) [5]

Спасибо ребята, работает. Удачи в новом году.


 
Jeer ©   (2012-01-02 22:25) [6]


> RWolf ©   (01.01.12 23:43) [4]


Ой, вот не надо штампов, ага ?
Я-то привел варианты разных подходов ради понимания их наличия, всего-то.


 
Германн ©   (2012-01-03 02:15) [7]


> Jeer ©   (02.01.12 22:25) [6]
>
>
> > RWolf ©   (01.01.12 23:43) [4]
>
>
> Ой, вот не надо штампов, ага ?
> Я-то привел варианты разных подходов ради понимания их наличия,
>  всего-то.
>

А я привел универсальный вариант.  Нужны ли при этом "прочие разные"?
:)


 
Германн ©   (2012-01-03 02:18) [8]

Кроме того, мой ответ может кого-то заставить понять/вспомнить, что "возведение в степень" частным случаем включает в себя и "извлечение корня".
:)


 
Jeer ©   (2012-01-03 16:36) [9]

Есс-но, нужны :)


 
asail ©   (2012-01-03 17:40) [10]


> Германн ©   (03.01.12 02:15) [7]

> А я привел универсальный вариант.  Нужны ли при этом "прочие
> разные"?

Однозначно нужны!
При возведении, например, в квадрат Power не самое лучшее решение...
x*x, как минимум, на порядок быстрее Power(x, 2).
Да даже, возведение в пятую степень через Power будет медленнее, чем х*х*х*х*х.
Так что, если в алгоритме вычислений такого рода много, то функцией Power надо пользоваться осмотрительно.
Другое дело, если, скажем, надо возвести число в степень 14.35... :)


 
RWolf ©   (2012-01-03 19:36) [11]


> x*x, как минимум, на порядок быстрее Power(x, 2).

именно так, а sqr(x) ещё быстрее.


 
asail ©   (2012-01-03 20:13) [12]


> RWolf ©   (03.01.12 19:36) [11]

> а sqr(x) ещё быстрее

Не всегда. Вот в этом примере * быстрее, чем sqr (Д6, ХР32):

const COUNT = 2000000000;

procedure TForm1.Button1Click(Sender: TObject);
var
 c, i: Cardinal;
 d, x: Double;
begin
 x := 2;
 c := GetTickCount;
 for i := 1 to COUNT do
   d := Sqr(x);
 ShowMessage(IntToStr((GetTickCount - c) div 1000));
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 c, i: Cardinal;
 d, x: Double;
begin
 x := 2;
 c := GetTickCount;
 for i := 1 to COUNT do
   d := x * x;
 ShowMessage(IntToStr((GetTickCount - c) div 1000));
end;


В первом случае 5 сек, во втором - 4...
Хотя, стоит сменить Double на Extended или x * x вынести в отдельную функцию, и ситуация изменится...


 
Германн ©   (2012-01-04 02:26) [13]


> asail ©   (03.01.12 17:40) [10]
>
>
> > Германн ©   (03.01.12 02:15) [7]
>
> > А я привел универсальный вариант.  Нужны ли при этом "прочие
> > разные"?
>
> Однозначно нужны!

Я вообще-то шутил. И мой тёзка понял меня. :)


 
asail ©   (2012-01-04 02:46) [14]


> Германн ©   (04.01.12 02:26) [13]

Да я не сомневаюсь, что ты в курсе всего вышеописанного. Просто, новички этого могут и не знать...


 
Германн ©   (2012-01-04 02:59) [15]


> asail ©   (04.01.12 02:46) [14]
>
>
> > Германн ©   (04.01.12 02:26) [13]
>
> Да я не сомневаюсь, что ты в курсе всего вышеописанного.
>  Просто, новички этого могут и не знать...

Они и не знают. Но универсальная функция им точно поможет! :)
Но и вспомни Германн ©   (03.01.12 02:18) [8]
Если хоть какой-то из новичков это вспомнит/осознает - это уже плюс!



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

Текущий архив: 2012.04.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.009 c
15-1324845002
Юрий
2011-12-26 00:30
2012.04.29
С днем рождения ! 26 декабря 2011 понедельник


15-1324499402
Юрий
2011-12-22 00:30
2012.04.29
С днем рождения ! 22 декабря 2011 четверг


15-1324455263
OW
2011-12-21 12:14
2012.04.29
Посоветуйте. Нужна утилитка COM <-> TCP


2-1325448187
Cobalt
2012-01-02 00:03
2012.04.29
Windows.GetScrollInfo


2-1325371999
Gu
2012-01-01 02:53
2012.04.29
строки Xe2