Математические функции.Pascal
Аргументами всех функций (кроме функции pi, не имеющей аргумента) могут быть действительные и целые числа. Значениями всех перечисленных функций являются действительные числа. Заметим, что в языке Pascal не существует операции возведения в степень. Выражение типа в общем случае может быть вычислено по формуле , используя экспоненциальную функцию и логарифм. В частных случаях, когда n =2, 3, 4, можно использовать функцию sqr(x) и операцию умножения. Подобным образом, в языке Pascal отсутствует стандартная функция , и ее следует вычислять как отношение синуса к косинусу.
Следующий фрагмент программы иллюстрирует тот факт, что сумма квадратов синуса и косинуса любого аргумента равна 1.
Стандартные математические функции Турбо Паскаля |
|||
Обращение |
Тип аргумента |
Тип результата |
Примечание |
Abs(x) | Real, integer | Тип аргумента | Модуль аргумента |
ArcTan(x) | Real, integer | Real | Арктангенс (значение в радианах) |
Cos(x) | Real, integer | Real | Косинус, угол в радианах |
Exp(x) | Real, integer | Real | Экспонента |
Frac(x) | Real | Real | Дробная часть числа |
Int(x) | Real, integer | Real | Целая часть числа |
Ln(x) | Real, integer | Real | Логарифм натуральный |
Pi | Нет | Real | 3,141592653 |
Sin(x) | Real, integer | Real | Синус, угол в радианах |
Sqr(x) | Real, integer | Тип аргумента | Квадрат аргумента |
Sqrt(x) | Real, integer | Real | Корень квадратный |
Random | Нет | Real | Псевдослучайное число в интервале [0, 1] |
Random(I) | Integer | Integer | Псевдослучайное число в интервале [0, I] |
Round(x) | Real | Integer | Округление до ближайшего целого |
Trunc(x) | Real | Integer | Отбрасывание дробной части числа |
Функции отличается от процедуры тем, что после выполнения функции на ее месте в коде ставится одно число, буква, строка и т.д. Набор встроенных функций в языке Паскаль достаточно широк. Например, для того, чтобы подсчитать квадрат числа можно воспользоваться стандартной функцией sqr(x). Как вы, наверное, уже поняли sqr(x) требует лишь один фактический параметр — число.
Пример: a:=sqr(4).
Обратите внимание! Функции необходимо присваивать! Просто написав их в тексте программы, как процедуры, вы ничего не добьётесь!
Если в программу необходимо включить новую уникальную функцию, ее надо описать также, как процедуру. Более подробно о том, как делать собственные процедуры и функции, мы поговорим через несколько уроков. Ниже вы видите таблицу основных стандартных функций и процедур в Паскаль
Функция | Функция |
Frac(x) | Дробная часть х |
Int(x) | Целое |
Ln(x) | Натуральный логарифм |
Pi | Постоянная величина π |
Abs(x) | Абсолютное значение (модуль числа) |
Arctan(x) | Арктангес х |
Cos(x) | Косинус х |
Exp(x) | е — экспанента |
Random | Случайное число от 0 до 1 |
Random(n) | Случайное число от 0 до n |
Odd(x) | True , если х – нечетное False , если х – четное |
Sin(x) | Синус х –( в радианах) |
Sqr(x) | Квадрат аргумента |
Sqrt(x) | Квадратный корень |
Trunc(x) | Ближайшее целое, не превышающие аргумент по модулю (отсекание дробной части числа x) |
Round(x) | Округление до ближайшего целого аргумента |
Порядок вычислений в выражениях следующий:
- вычисляются подвыражения, заключенные в скобки;
- затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
- возведение в степень;
- мультипликативные операции: * , / , div , mod;
- унарные операции: + , — , abs , not;
- аддитивные операции: +, -;
- операции отношения: = , <>, <, >, <=, >=;
- логические операции: and, or, not;
- операции с одинаковым приоритетом выполняются слева направо.
Хотя нет ограничений на сложность выражений, однако выражения, содержащие более 7 операндов, трудны для чтения и понимания и поэтому такие выражения не рекомендуется использовать.
Замечание (это важно!)
- в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: xy= eylnx
- в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a