что делает функция sqr x
Функции 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-й степени).
А здесь я напомню что такое квадратный корень для тех, кто подзабыл математику.
То есть квадратный корень из числа А, это число Х, которое при возведении в квадрат даёт число А.
ВАЖНО!
Число А может быть только положительным числом. Извлечение корня из отрицательного числа тоже возможно, но это уже будут комплексные числа.
Что делает функция sqr x
Функция ACS принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение арккосинуса от значения аргумента. Тип значения, разумеется, всегда FLOAT. Если значение аргумента превышает по модулю единицу, выдается сообщение, а результат устанавливается равным атому ERRSTATE Примеры:
В последнем примере производится попытка вычислить арккосинус от 3. Это приводит к ошибке. Возникший в качестве промежуточного результата атом ERRSTATE «поглощает» результаты всех предыдущих вычислений. Конечный результат равен ERRSTATE.
ASN |
Функция ASN принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение арксинуса от значения аргумента. Тип значения, разумеется, всегда FLOAT. Если значение аргумента превышает по модулю единицу, выдается сообщение, а результат устанавливается равным атому ERRSTATE Примеры:
В последнем примере производится попытка вычислить арксинус от 6. Это приводит к ошибке. Возникший в качестве промежуточного результата атом ERRSTATE «поглощает» результаты всех предыдущих вычислений. Конечный результат равен ERRSTATE.
ATN |
Функция ATN принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение арктангенса от значения аргумента. Тип значения, разумеется, всегда FLOAT. Примеры:
Функция CH принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение гиперболического косинуса от значения аргумента. Тип значения, разумеется, всегда FLOAT. Используется прямое выражение гиперболического косинуса через экспоненту:
Если значение аргумента превышает 300, возникает переполнение. Примеры:
В приведенном выше примере хорошо видно, что гиперболический косинус (как и его тригонометрический брат) явлется четной функцией.
COS |
Функция COS принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение косинуса от значения аргумента. Тип значения, разумеется, всегда FLOAT. Аргумент должен выражаться в радианах. Примеры:
Функция EXP принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение экспоненты от значения аргумента. Тип значения, разумеется, всегда FLOAT. Аргумент не должен превышать 300. Примеры:
Следует обратить внимание на то, что в числе встроенных функций HomeLisp имеется функция EXPT, позволяющая вычислить X y (при разумных значениях X и y). В принципе можно вычислить e x с использованием EXPT, введя (EXPT _E x). Функция EXP сделает это же действие быстрее.
Функция LOG принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение натурального логарифма от значения аргумента. Тип значения, разумеется, всегда FLOAT. Аргумент должен быть положительным числом. Примеры:
При необходимости вычислить логарифм по основанию, отличному от e, можно воспользоваться формулой:
В частности, для вычисления десятичного логарифма подойдет функция lg, определение которой вместе с примерами вызова приводится ниже.
Функция SH принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение гиперболического синуса от значения аргумента. Тип значения, разумеется, всегда FLOAT. Используется прямое выражение гиперболического синуса через экспоненту:
Если значение аргумента превышает 300, возникает переполнение. Примеры:
В приведенном выше примере хорошо видно, что гиперболический синус (как и его тригонометрический брат) явлется нечетной функцией.
SIGN |
Функция SIN принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение косинуса от значения аргумента. Тип значения, разумеется, всегда FLOAT. Аргумент должен выражаться в радианах. Примеры:
Функция SQR принимает единственный аргумент числового типа (FIXED или FLOAT). Она вычисляет значение квадратного корня от значения аргумента. Тип значения, разумеется, всегда FLOAT. Примеры:
Следует обратить внимание на то, что в числе встроенных функций HomeLisp имеется функция EXPT, позволяющая вычислить X y (при разумных значениях X и y). В принципе можно вычислить квадратный корень от x с использованием EXPT, введя (EXPT x 0.5). Функция SQR сделает это же действие быстрее.
Урок 5. Математические операции, функции и процедуры в Pascal (Часть первая)
Так как в воскресенье на сайте открывается новая рубрика — решение задач, мы с вами должны по-быстрому изучить основную часть математических операций, функций и процедур.
Давайте разберемся, что такое функция и процедура. Это подпрограмма — часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. В чем же разница между процедурой и функцией?
Процедуры — мини-программы.
Процедуры используются в случаях, когда в подпрограмме необходимо получить несколько результатов. Из картинки, расположенной ниже вы видите, как работает процедура. Входных данных может не быть вовсе, а может быть сто.
Например, программист хочет в своем суперкоде между блоками выходящих значений прописывать 20 амперсандов. Чтобы облегчить себе задачу, он напишет простую подпрограмму.
Функции в Паскале — мега переменные.
Функции отличается от процедуры тем, что после выполнения функции на ее месте в коде ставится одно число, буква, строка и т.д. Набор встроенных функций в языке Паскаль достаточно широк. Например, для того, чтобы подсчитать квадрат числа можно воспользоваться стандартной функцией sqr(x). Как вы, наверное, уже поняли sqr(x) требует лишь один фактический параметр — число.
Обратите внимание! Функции необходимо присваивать! Просто написав их в тексте программы, как процедуры, вы ничего не добьетесь!
Структура функции представлена на картинке ниже.
Если в программу необходимо включить новую уникальную функцию, ее надо описать также, как процедуру. Более подробно о том, как делать собственные процедуры и функции, мы поговорим через 10 уроков. Ниже вы видите таблицу основных стандартных функций и процедур в Паскаль.
Очень странная ошибка.
Операции div и mod.
Иногда нам требуется найти частное либо же остаток от деления. В такие моменты на помощь нам приходят такие операции, как div и mod. Заметим, что эти операции выполняются только над целыми числами.
Для того, чтобы найти частное от деления, мы используем операцию div.
Для того, чтобы найти остаток от деления, мы используем операцию mod.
Чтобы окончательно понять, с чем мы имеем дело, решим следующую задачу:
Задача 1. Найти сумму цифр двухзначного числа.
Так как эта задача очень простая, мы с вами обойдемся блок-схемой и программой.
Задача 2. Найти сумму цифр трехзначного числа.
Чуть усложненная версия предыдущей задачи. Самая большая сложность — вторая цифра.
Что делает функция sqr x
Рассмотрим подробно арифметические выражения, т.к. именно с их помощью выполняются все вычисления в программе.
Результатом арифметического выражения является целое или вещественное значение. Выражение задает порядок действий над элементами данных и состоит из:
Арифметические операции
Операции определяют действия, которые надо выполнить над операндами. В отличие от традиционной математической записи обязательно указывать все знаки операций.
Например, в выражении (х+у) *5-10 операндами являются переменные х и у, а также константы 5 и 10; а +, * — знаки арифметических операций сложения и умножения соответственно. Символ операции умножения — * (звездочка) должен присутствовать в явном виде. Если все объекты, входящие в выражение, определены в момент их использования (в нашем примере — это переменные х и у), то значение выражения считается определенным.
В простейшем случае выражение может состоять из одной переменной или константы. Круглые скобки ставятся так же, как и в обычных математических выражениях для управления порядком выполнения операций.
Операции DIV и MOD
Целочисленное деление div (от division, деление) отличается от обычной операции деления тем, что возвращает целую часть частного, а дробная часть отбрасывается — 13 div 3 = 4, а не 4,(3). Результат div всегда равен нулю, если делимое меньше делителя.
Взятие остатка от деления mod (от modulus, мера) вычисляет остаток, полученный при выполнении целочисленного деления.
Аргументы операций div и mod — целые числа. Взаимосвязь между операциями div и mod проста. Для а>0 и b>0 справедливо:
a mod b = a – (a div b)*b
(a div b)*b + (a mod b) = a
Обратите внимание — операцию mod можно использовать, чтобы узнать, кратно ли целое а целому b. А именно, а кратно b тогда и только тогда, когда а mod b = 0.
Приоритет операций
Обратите внимание — операции с равным приоритетом выполняются слева направо. Выражение, заключенное в скобки, перед выполнением вычисляется как отдельный операнд. При наличии вложенных скобок вычисления выполняются, начиная с самых внутренних. В тексте программы необходимо проверять парность расстановки скобок: число открывающих скобок должно быть равно числу закрывающих скобок.
Арифметические процедуры и функции
Стандартная функция | Выполняемое действие | Тип | |
аргумента | результата | ||
abs (x) | |x| | real | real |
integer | integer | ||
sqr (x) | x 2 | real | real |
integer | integer | ||
sqrt (x) | x 1/2 | real | real |
integer | real | ||
exp (x) | e x | real | real |
integer | real | ||
ln (x) | ln (x) | real | real |
integer | real | ||
sin (x) | sin (x) | real | real |
integer | real | ||
cos (x) | cos (x) | real | real |
integer | real | ||
arctan (x) | arctg (x) | real | real |
integer | real | ||
pi | число Π | — | real |
Вызов стандартной функции осуществляется путем указания в нужном месте программы имени функции (аbs, ln, ехр и др.) и ее аргумента, заключенного в круглые скобки. После вычисления значения функции ее вызов заменяется результатом, и расчет содержащего ее выражения продолжается дальше.