Sqrt — Функция Delphi


Клуб программистов

Delphi programming

Подписаться на рассылку:

квадратный корень числа

Описание:

Функция Sqrt возвращает квадратный корень числа Number

Число должно быть вещественного типа.

Особые значения перечислены ниже:
Infinity : Бесконечность
-0 : -0
NaN (Not a Number — не число) : не число

Пример кода:

var
number, squareRoot : Extended;

begin
// The square root of 225 = 15
number := 225;
squareRoot := Sqrt(number);
ShowMessageFmt(‘Square root of %f = %f’,[number, squareRoot]);

// The square root of 3.456 = 1.859.
number := 3.456;
squareRoot := Sqrt(number);
ShowMessageFmt(‘Square root of %7.3f = %12.12f’,[number, squareRoot]);

// The square root of infinity is still infinity
number := Infinity;
number := Sqrt(number);
ShowMessageFmt(‘Square root of Infinity = %f’,[number]);
end;

Функция Sqrt в Delphi

В качестве упражнения, которые ставят себя в, я хотел создать калькулятор в Delphi. Таким образом, далеко не сумма, подлодки тракт, размножаются и делятся довольно много работает.

Единственная функция, которая у меня есть проблема с его с корнем квадратным.

Переменные вытянуты, и я очень много просто конвертировать из строки (я использую два EditBox) для поплавка

Delphi его возвращения меня

[Ошибка] calc.dpr (72): Отсутствует оператор или точка с запятой.

Проблема на самом деле не видно в вашем фрагменте кода выше. Но так как я получил психические силы, я все еще могу сказать, что здесь происходит.

У вас есть кнопка под названием sqrt вашей формы. Поэтому, когда вы пишете sqrt в коде, это относится к кнопке, а не к функции RTL.

Функция Sqrt в Delphi

December 2020

998 раз

В качестве упражнения, которые ставят себя в, я хотел создать калькулятор в Delphi. Таким образом, далеко не сумма, подлодки тракт, размножаются и делятся довольно много работает.

Единственная функция, которая у меня есть проблема с его с корнем квадратным.

Переменные вытянуты, и я очень много просто конвертировать из строки (я использую два EditBox) для поплавка

Delphi его возвращения меня

[Ошибка] calc.dpr (72): Отсутствует оператор или точка с запятой.

1 ответы

Проблема на самом деле не видно в вашем фрагменте кода выше. Но так как я получил психические силы, я все еще могу сказать, что здесь происходит.

У вас есть кнопка под названием sqrt вашей формы. Поэтому, когда вы пишете sqrt в коде, это относится к кнопке, а не к функции RTL.

Математические функции в Дельфи

Математические функции описаны в модуле Math. Этот модуль должен быть подключен к приложению оператором uses.

Таблица математических функций в Delphi:

Функция

Описание

Аргумент

Abs (X)

абсолютное значение

целое и действительное

выражение

Ceil (X)

округление донаименьшего целого

Compare

Value (A, B) сравнение двух значений

целые и действительные

выражения

DivMod (Divided,

Divisor, Result,

Remainer) целочисленное деление:Result – результат,

Remainder – остаток

EnsureRange

(AValue,

Amin,Amax) возвращает ближайшеек Avalue в диапазоне

Amin — Amax

целые и действительные

выражения

Exp(X)

экспонента

выражение

Floor (X)

округление до наиб целого,меньшего или равного

аргумента

Frac (X)

дробная часть X-Unt(X)


Frexp(X, Mantissa,

Exponent) выделяет мантиссуи показатель степени 2

Int(X)

целая часть аргумента

выражение

IntPower(X,E)

возведение Xв целую степень E: X в степени Е

Integer

IsInfinite(X)

определяет, не равенли аргумент бесконеч

выражение

IsNan (X)

определяет, не равен лиаргумент Nan – нечисловой

величине

выражение

IsZero(X, Epsilon)

определяет, не явлли аргумент от нуля

Илон Маск рекомендует:  Что такое код getprotobyname

менее чем на Epsilon

целые или действ

числа

Ldepx(X,P)

умножение X на 2 в степени Р

Integer

Ln(X)

натуральный логарифм (X)

выражение

LnXP1(X)

натуральный логарифм(X+1)

Log10(X)

десятичный логарифм от X

Log2(X)

логарифм от Xпо основанию 2

LogN (N,X)

логарифм от Xпо основанию N

Max(A,B)

максимум двух чисел

int64, Single, Double

Extended

Min(A,B)

минимум двух чисел

Pi

Poly(X,C)

вычисляет полином Xс массивом коэфф С

массив Double

Power (X, E)

Функция Sqrt в Delphi

Как упражнение, в которое я попал, я хотел спроектировать калькулятор в Delphi. Таким образом, далеко сумма, субтрассы, умножение и разделение в значительной степени работают.

Единственная функция, с которой у меня есть проблема с ее квадратным корнем.

Переменные вытянуты, и я очень много просто конвертировать из строки (я использую два EditBox) для Float

Delphi его возвращение мне

[Ошибка] calc.dpr (72): Отсутствует оператор или точка с запятой.

@Micha Wiednmann Только что сделал, и все та же ошибка. Линия 72 равна R: = Sqrt (a); – Raúl Enrique Danglade 25 июн. 13 2013-06-25 22:17:45

@MichaWiedenmann: Нет, нет никакой необходимости в запятой. Точка с запятой не используется для * завершения * операторов, а для * разделить * два утверждения. Следовательно, вам не нужна точка с запятой после последней в блоке. – Andreas Rejbrand 25 июн. 13 2013-06-25 22:19:47

@bummi: ‘SqrtClick’? – Andreas Rejbrand 25 июн. 13 2013-06-25 22:24:39

@AndreasRejbrand да, не понял :-(bummi 25 июн. 13 2013-06-25 22:28:04

Прекратите использовать глобальные переменные – David Heffernan 25 июн. 13 2013-06-25 22:37:04

1 ответ

Проблема на самом деле не видна в вашем фрагменте выше. Но так как я получил психические силы, я все еще могу сказать, что здесь происходит.

У вас есть кнопка под названием sqrt . Следовательно, когда вы пишете sqrt в коде, это относится к кнопке, а не к функции RTL.

Решение: Напишите System.Sqrt вместо Sqrt (= Self.Sqrt , кнопку) или переименуйте кнопку.

Создан 25 июн. 13 2013-06-25 22:22:38 Andreas Rejbrand

Отлично! Это сработало как шарм! – Raúl Enrique Danglade 25 июн. 13 2013-06-25 22:25:00

+1 хороший улов .. – bummi 25 июн. 13 2013-06-25 22:26:13

+1 для глаз орла: o) – Sir Rufo 25 июн. 13 2013-06-25 22:30:53

постчеловеческие силы: -D – Arioch ‘ The 26 июн. 13 2013-06-26 22:24:46

+1 для того, чтобы иметь психические силы, но вы знали, что уже или нет? – Pieter B 27 июн. 13 2013-06-27 09:47:09


@PieterB: Вы имеете в виду наличие кнопки с именем ‘sqrt’? Один намек — это имя ‘SqrtClick’ процедуры, но я действительно не видел этого, прежде чем я отправил свой ответ. Поскольку OP получил сообщение об ошибке «Отсутствующий оператор или точка с запятой» на ‘Sqrt (некоторый номер)’, очевидно, что ‘Sqrt’ не является функцией или процедурой, а остается действительным идентификатором. Следовательно, это, скорее всего, объект. И не очень надуманно, что калькулятор имеет кнопку с именем ‘sqrt’. – Andreas Rejbrand 27 июн. 13 2013-06-27 09:56:33

Иллюстрированный самоучитель по Delphi 7 для начинающих

Стандартные функции. Математические функции.

Для выполнения часто встречающихся вычислений и преобразований язык Delphi предоставляет программисту ряд стандартных функций.

Значение функции связано с ее именем. Поэтому функцию можно использовать в качестве операнда выражения, например в инструкции присваивания. Так, чтобы вычислить квадратный корень, достаточно записать k: = Sqrt(n), где Sqrt – функция вычисления квадратного корня, n – переменная, которая содержит число, квадратный корень которого надо вычислить.

Функция характеризуется типом значения и типом параметров. Тип переменной, которой присваивается значение функции, должен соответствовать типу функции. Точно так же тип фактического параметра функции, т. е. параметра, который указывается при обращении к функции, должен соответствовать типу формального параметра. Если это не так, компилятор выводит сообщение об ошибке.

Илон Маск рекомендует:  Except - Ключевое слово Delphi

Математические функции

Математические функции (табл. 1.6) позволяют выполнять различные вычисления.

Таблица 1.6. Математические функции.

Функция Значение
Аbs (n) Абсолютное значение n
Sqrt (n) Квадратный корень из n
Sqr (n) Квадрат n
Sin (n) Синус n
Cos (n) Косинус n
Arctan (n) Арктангенс n
Ехр(n) Экспонента n
Ln(n) Натуральный логарифм n
Rardom(n) Случайное целое число в диапазоне от 0 до n -1

Величина угла тригонометрических функций должна быть выражена в радианах. Для преобразования величины угла из градусов в радианы используется формула (а*3.141525б)/180, где: а– величина угла в градусах; 3.1415926 – число л. Вместо дробной константы 3.1415926 можно использовать стандартную именованную константу PI. В этом случае выражение пересчета угла из градусов в радианы будет выглядеть так: a*Pi/180.

Функция Sqrt в Delphi

Как упражнение, в которое я попал, я хотел спроектировать калькулятор в Delphi. Таким образом, далеко сумма, субтрассы, умножение и разделение в значительной степени работают.

Единственная функция, с которой у меня есть проблема с ее квадратным корнем.

Переменные вытянуты, и я очень много просто конвертировать из строки (я использую два EditBox) для Float

Delphi его возвращение мне

[Ошибка] calc.dpr (72): Отсутствует оператор или точка с запятой.

@Micha Wiednmann Только что сделал, и все та же ошибка. Линия 72 равна R: = Sqrt (a); – Raúl Enrique Danglade 25 июн. 13 2013-06-25 22:17:45

@MichaWiedenmann: Нет, нет никакой необходимости в запятой. Точка с запятой не используется для * завершения * операторов, а для * разделить * два утверждения. Следовательно, вам не нужна точка с запятой после последней в блоке. – Andreas Rejbrand 25 июн. 13 2013-06-25 22:19:47

@bummi: ‘SqrtClick’? – Andreas Rejbrand 25 июн. 13 2013-06-25 22:24:39

@AndreasRejbrand да, не понял :-(bummi 25 июн. 13 2013-06-25 22:28:04

Прекратите использовать глобальные переменные – David Heffernan 25 июн. 13 2013-06-25 22:37:04

1 ответ

Проблема на самом деле не видна в вашем фрагменте выше. Но так как я получил психические силы, я все еще могу сказать, что здесь происходит.

У вас есть кнопка под названием sqrt . Следовательно, когда вы пишете sqrt в коде, это относится к кнопке, а не к функции RTL.

Решение: Напишите System.Sqrt вместо Sqrt (= Self.Sqrt , кнопку) или переименуйте кнопку.

Создан 25 июн. 13 2013-06-25 22:22:38 Andreas Rejbrand

Отлично! Это сработало как шарм! – Raúl Enrique Danglade 25 июн. 13 2013-06-25 22:25:00

+1 хороший улов .. – bummi 25 июн. 13 2013-06-25 22:26:13

+1 для глаз орла: o) – Sir Rufo 25 июн. 13 2013-06-25 22:30:53

постчеловеческие силы: -D – Arioch ‘ The 26 июн. 13 2013-06-26 22:24:46

+1 для того, чтобы иметь психические силы, но вы знали, что уже или нет? – Pieter B 27 июн. 13 2013-06-27 09:47:09

@PieterB: Вы имеете в виду наличие кнопки с именем ‘sqrt’? Один намек — это имя ‘SqrtClick’ процедуры, но я действительно не видел этого, прежде чем я отправил свой ответ. Поскольку OP получил сообщение об ошибке «Отсутствующий оператор или точка с запятой» на ‘Sqrt (некоторый номер)’, очевидно, что ‘Sqrt’ не является функцией или процедурой, а остается действительным идентификатором. Следовательно, это, скорее всего, объект. И не очень надуманно, что калькулятор имеет кнопку с именем ‘sqrt’. – Andreas Rejbrand 27 июн. 13 2013-06-27 09:56:33

Sqrt — Функция Delphi

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

uses Math
функция Power

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

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

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


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

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

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


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

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

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


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

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


> 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 вынести в отдельную функцию, и ситуация изменится.


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

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


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

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


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

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

Математические функции в Delphi

Занимаясь программированием, невозможно обойтись без использования математических функций. Большинство алгоритмических задач, вычисления требуют умения пользоваться ими. Конечно, некоторые из этих функций можно заменить какими-то наборами операторов, но такие решения всегда будут громоздкими, содержать дополнительные условия и выглядеть как изобретенный велосипед. Гораздо проще посвятить немного времени изучению готовых функций и разобраться в их использовании.

Для работы с этими функциями, в разделе описания uses нужно указать математическую библиотеку Math:

В таблице приведены наиболее часто используемые функции.

Функция Sqrt в Delphi

В качестве упражнения, которое я поставил перед собой, я хотел создать калькулятор в Delphi. Таким образом, сумма, вычитание, умножение и деление в значительной степени работают.

Единственная функция, которая у меня есть проблема с квадратным корнем.

Переменные расширены, и я в значительной степени просто конвертирую из String (я использую два EditBox) в Float

Delphi его возвращение мне

[Ошибка] calc.dpr (72): отсутствует оператор или точка с запятой.

1 ответ

На самом деле проблема не видна в вашем фрагменте выше. Но так как у меня есть экстрасенсорные способности, я все еще могу сказать, что здесь происходит.

В вашей форме есть кнопка с именем sqrt . Следовательно, когда вы пишете sqrt в коде, это относится к кнопке, а не к функции RTL.

Илон Маск рекомендует:  transform-style в CSS
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL