Персональная страничка
| ||
Предыдущий раздел:
Следующий раздел:
Кроме арифметических операторов в выражениях могут участвовать функции. У функций есть аргументы и говорят, что функция возвращает значение. Аргументы пишутся в скобках вслед за именем функции, например, sin(y) – возвращает синус от значения переменной y. Возвращаемые значения можно присваивать переменным или использовать в выражениях:
z:=sin(y); y:=(1+2*sin(y))/2;
Для каждой функции необходимо знать допустимый тип ее аргументов. Например, аргументом синуса должно быть выражение либо целого, либо вещественного типа. Невозможно взять синус от строки или символа. С другой стороны, например функция length(s), определяющая длину строки может быть взята только от строковой переменной.
Кроме того, возвращаемое функцией значение тоже имеет определенный тип. Функция sin возвращает вещественное значение и его нельзя присвоить целочисленной переменой, а скажем, функция length(s) возвращает целочисленное значение.
Перечислим несколько наиболее распространенных стандартных функций:
round(y) — округление числа. Аргумент целое или вещественное число. Возвращаемое значение целого типа.
trunc(y) – отбрасывание дробной части. Возвращаемое значение целого типа.
sin(y), cos(y) – синус и косинус.
ln(y) – натуральный логарифм.
exp(y) – экспонента.
sqr(y) – возведение в квадрат. Тип возвращаемого значения зависит от типа аргумента. Если аргумент был целым, то результат будет целым. Иначе результат будет вещественным.
sqrt(y) – квадратный корень. Возвращаемое значение вещественного типа.
abs(y) – модуль. Тип возвращаемого значения зависит от типа аргумента. Если аргумент был целым, то результат будет целым. Иначе результат будет вещественным.
arctan(y) – арктангенс.
У функций может быть более чем один аргумент. С примерами таких функций мы познакомимся позднее. Есть функции вообще без аргументов, например:
random – возвращает случайное число в диапазоне от 0 до 1.
pi – возвращает число π.
Аргументом функции может быть не только одна переменная, но произвольное выражение, в том числе содержащее другие функции. Например:
x:=2+round(sin(2*pi*y)+2);
Следующий раздел:
Предыдущий раздел:
A чем отличается trunc от rounda?
Все, затормозил, извиняюсь.
Объясните, пожалуйста, почему функция sin возвращает вещественное значение и его нельзя присвоить целочисленной переменой? Или здесь целые переменные берутся как подвид вещественных?
Аналогично, почему у квадратного корня возвращаемое значение только вещественного типа? Спасибо
В памяти компьютера целые и вещественные числа хранятся по-разному. То есть если у тебя есть две переменные, равные вроде бы одному и тому же числу:
в соответствующих областях памяти будут храниться разные наборы нулей и единиц. Так что когда говориться, что sin возвращает вещественное значение, это значит, что даже если это целое число (в математическом смысле), то соответствующее двоичное представление будет соответствовать типу real.
В общем случае число типа real нельзя превратить в число типа integer без потерь информации, поэтому присваивания
запрещены. Собственно, в некоторых языках (например в C++) такое разрешено, и если присваивается нецелое число, то от него просто берется целая часть. Но Паскаль рассчитан на новичков и чтобы уберечь вас от трудноуловимых ошибок, это запретили. Если хочешь взять целую часть или превратить число типа real в число типа integer, это надо делать явно:
Ну, или то же самое с round’ом.
Все понятно и очень интересно, спасибо
Если я понял round(y) — округление числа это больше 0,5 присваиветчя к целому числу на 1 больше, а trunc(y) – отбрасывание дробной части это для банка выкидывать после запятой даже 0,9, а sin(y), cos(y) – синус и косинус.
ln(y) – натуральный логарифм exp(y) – экспонента и sqrt(y) – квадратный корень всегда есть вероятность дробей и потому возвращаемые значения вещественного типа, а abs(y) – модуль это положительное число, т. е отбрасывается знак что ли.
Для начинаюших кто знает синус и косинус!
Описание функции Random немного оно верно. Оно не возвращает число в диапазоне от 0 до 1. Оно может возвращать любое число. Если написать Random(200) То он может вернуть любое число в диапазоне от 0 до 200.
Что означает термин «возвращает»? Что возвращает? Куда? Кому?
Функция «возвращает» свое значение. sin(x) — возвращает значение синуса.
Вызов функции это запуск некоторой подпрограммы (например, подпрограммы для вычисления синуса) и под возвращением имеется в виду возвращение в вашу основную программу.