Функции Sqrt и Sqr
Функция Sqrt в Паскале вычисляет квадратный корень числа. Синтаксис функции следующий:
function Sqrt(Х : ValReal) : ValReal;
Эта функция возвращает квадратный корень числа, переданного через параметр Х. Число Х должно быть положительным, иначе произойдёт ошибка во время выполнения программы (так написано в документации, но в моей версии компилятора ошибки не происходит, а функция в случае отрицательного параметра возвращает значение NaN).
Функция Sqr в Паскале вычисляет квадрат числа. Синтаксис функции для разных типов приведён ниже:
Эта функция возвращает результат вычисления квадрата числа, переданного через параметр. То есть Sqr = х * х.
О типе ValReal я рассказывал здесь.
Квадрат числа
Здесь всё крайне просто. Квадрат числа Х равен произведению Х на Х. То есть функция Sqr на первый взгляд кажется бесполезной. Потому что во многих случаях проще написать так:
Единственный случай, когда использование функции Sqr является обоснованным с точки зрения упрощения кода, это когда в качестве параметра передаётся вещественное число (константа) с большим количеством знаков после запятой, или очень большое целое число, или сложное выражение. Например:
будет написать проще, чем
Х := 5.3456753322 * 5.3456753322
Также возведение в квадрат числа в Паскале сложного выражения тоже будет проще, если использовать функцию Sqr:
X := Sqr(Y + 100 * Z / X)
Вычисление квадратного корня
Когда мы изучали функции вычисления экспоненты и натурального логарифма, то мы узнали, что с их помощью можно возвести число в любую степень. То есть вычислить, в том числе, и корень любой степени.
Однако использование этих функций всё-таки немного сложновато. Поэтому для вычисления квадратного корня в Паскале имеется специальная функция (потому что квадратный корень приходится вычислять намного чаще, чем, например, корень n-й степени).
Эту функцию вы уже знаете — это функция Sqrt.
А здесь я напомню что такое квадратный корень для тех, кто подзабыл математику.
Итак, квадратный корень из числа А (корень 2-й степени) — это решение уравнения:
То есть квадратный корень из числа А, это число Х, которое при возведении в квадрат даёт число А.
ВАЖНО!
Число А может быть только положительным числом. Извлечение корня из отрицательного числа тоже возможно, но это уже будут комплексные числа.
Вычисление квадратного корня в Pascal. Операторы квадрата, корня и модуля
Квадратный корень числа в Pascal вычисляет функция Sqrt. Приведем ее синтаксис:
function Sqrt(Х : ValReal) : ValReal;
Данная функция возвращает квадратный корень числа, которое передается через параметр Х. При этом число должно быть положительным, в противном случае во время выполнения программы произойдет ошибка.
Синтаксис функции Sqrt для различных типов:
functionSqr(Х : LongInt) : LongInt;
functionSqr(Х : QWord) : QWord;
functionSqr(Х : ValReal) : ValReal;
Данная функция возвращает результат вычисления квадрата числа, который переданный через параметр. Другими словами, Sqr = х * х.
Примеры выполнения операторов квадрата, корны и модуля
Оператор квадрата
var a, c:integer;
begin
writeln (‘Введите число’);
readln (a);
c:=sqr(a);
writeln (‘Квадрат равен ‘,c);
end.
Оператор корня
Данный оператор находит корень из числа или переменной. Обозначается, как»sqrt» (не в кавычках). В приложении указывается какsqrt(a), где a – число или любая другая переменная.
var a, c:real;
begin
writeln (‘Введите число’);
readln (a);
c:=sqrt(a);
writeln (‘Кореньравен ‘,c);
end.
Оператор модуля
Этот оператор переводит число из обычного в число по модулю, а именно меняет его знак на положительный. Обозначается как «abs» (не в кавычках), а в программе, как abs(a), где a – число или другая переменная.
var a, c:real;
beginwriteln (‘Введите число’);
readln (a);
c:=abs(a);
writeln (‘Модуль равен ‘,c);
end.
Возникли ли у вас какие-то проблемы с вычислением квадратного корня в Паскаль? Напишите в комментариях.
Как найти квадратный корень в паскале
Пользовательские процедуры и функции. При написании программ со сложными математическими вычислениями становится очевидным, что математических функций встроенных в Turbo Pascal, явно недостаточно. Нет, например такой функции, как y = x n . В процессе вычислений можно конечно задействовать такую формулу возведения в степень: y := exp(n*(ln(x)); но при частом использовании такой формулы в программе легко запутаться, особенно если нужно использовать разные аргументы.
Turbo Pascal предусматривает создание пользовательских процедур и функций. Рассмотрим создание функции возведения числа х в произвольную степень n (n >=0). Функция на паскале должна быть объявлена до начала программы, то есть до оператора begin.
Функция описывается следующим образом:
function имя функции (аргумент : тип аргумента) : возвращаемый тип данных;
var
раздел локальных переменных (если нужен);
begin
тело функции;
end;
В нашем случае с вычислением степеней, функция будет выглядеть так:
function stepen(x,n: real): real;
begin
stepen:= exp(n*ln(x));
end;
Теперь, напишем программу с использованием нашей функции.
uses crt;
function stepen(x,n: real): real;
begin
stepen:= exp(n*ln(x));
end;
var <раздел глобальных переменных>
rez,osn, pok: real;
begin
clrscr;
write(‘Wwedi osnowanie’);
readln(osn);
write(‘Wwedi pokazatel’);
readln(pok);
rez:= stepen(osn,pok);
writeln(‘rezultat= ‘,rez:0:2);
readln;
end.
Результат работы программы:
Используя уже написанные пользовательские функции можно создавать другие функции. Например, в нашем случае, мы можем написать функцию извлечения корня с произвольным показателем k (k <> 0) из любого числа q.
Известно, что q 1/k =
q Исходя из этих соображений напишем функцию извлечения корня:
function koren(q,k: real): real;
var
kr: real;
begin
kr:= 1 / k;
koren:= stepen(q,kr);
end;
Так как, функция koren, использует функцию stepen, то в тексте программы, функция koren должна быть описана после описания функции stepen. Дополним и изменим нашу программу, с учётом вычисления не степени, а корня:
uses crt;
function stepen(x,n: real): real;
begin
stepen:= exp(n*ln(x));
end;
function koren(q, k: real): real;
var
kr: real;
begin
kr:= 1 / k;
koren:= stepen(q,kr);
end;
var
rez,osn, pok: real;
begin
clrscr;
write(‘Wwedi osnowanie: ‘);
readln(osn);
write(‘Wwedi pokazatel: ‘);
readln(pok);
rez:= koren(osn,pok);
writeln(‘rezultat= ‘,rez:0:2);
readln;
end.
Извлечём, например, корень 8-й степени из 256:

Процедуры в паскале, то-же, что и функции, но процедуры не возвращают никаких значений. Описываются процедуры так же, как и функции, в начале программы:
Функции Sqr, Abs, Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi в Pascal.
Мы уже знаем, какие существуют функции для целых переменных. Это – нахождение модуля числа (Функция Abc), а также возведение числа в квадрат (Функция Sqr). В этом уроке мы рассмотрим функции, применяемые к дробным числам. Это функции Sqr — квадрат числа, Abs — модуль числа, Sqrt — корень числа, а также известные всем математические функции Sin, Cos, Arctan, Ln, Exp, Pi.
В строке №7 записывается функция Sqr. Это функция возведения числа в квадрат.
В строке №9 записывается операция нахождения модуля числа.
Функции Sqr и Abs мы разбирали в уроке Abs, Sqr в Pascal.
В строке №11 записывается функция Sqrt. Данная функция подсчитывает корень числа, стоящего в скобках после слова Sqrt. В нашем случае функция Sqrt будет считать корень из числа «2».
В строке №13 записываем функцию Sin. Данная функция будет подсчитывать синус числа, стоящего в скобках после записи функции.
Строка №15. Функция Cos подсчитывает косинус числа, стоящего в скобках после функции.
Строка №17. Функция Arctan вычисляет арктангенс числа, стоящего в скобках после записи функции.
Строка №19. Функция Ln подсчитывает логарифм числа, стоящего в скобках после записи функции.
Строка №21. Функция Exp возводит число «e» (экспонента — 2.72. ) в степень, значение которой указывается в скобках после слова Exp. Т.е. в нашем случае число «e» будет возведено в степень «2».