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

Вниз

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

 
Каныбек   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.003 c
15-1324626136
Gu
2011-12-23 11:42
2012.04.29
Пылесос


8-1219132442
young
2008-08-19 11:54
2012.04.29
Как увеличить картинку bmp без потери качества


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


2-1325325464
Gu
2011-12-31 13:57
2012.04.29
simplesharemem


15-1324586003
Германн
2011-12-23 00:33
2012.04.29
Как очистить пространство имен СОМ-портов?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский