При решении различных задач с помощью компьютера бывает необходимо вычислить логарифм или модуль числа, синус угла и т.д.
Вычисления часто употребляемых функций осуществляются посредством подпрограмм, называемых стандартными функциями, которые заранее запрограммированы и встроены в транслятор языка.
Название и математическое обозначение функции |
Указатель функции |
|
|
Абсолютная величина (модуль) |
| х | |
abs(x) |
|
Корень квадратный |
|
sqrt(x) |
|
Натуральный логарифм |
ln x |
ln(x) |
|
Десятичный логарифм |
lg x |
lg(x) |
|
Экспонента (степень числа е " 2.72) |
ex |
exp(x) |
|
Знак числа x (-1,если х<0; 0,если x=0; 1,если x>0) |
sign x |
sign(x) |
|
Целая часть х (т.е. максимальное целое число, не превосходящее х) |
|
int(x) |
|
Минимум из чисел х и y |
|
min(x,y) |
|
Максимум из чисел х и y |
|
max(x,y) |
|
Частное от деления целого х на целое y |
|
div(x,y) |
|
Остаток от деления целого х на целое y |
|
mod(x,y) |
|
Случайное число в диапазоне от 0 до х-1 |
|
rnd(x) |
|
Синус (угол в радианах) |
sin x |
sin(x) |
|
Косинус (угол в радианах) |
cos x |
cos(x) |
|
Тангенс (угол в радианах) |
tg x |
tg(x) |
|
Котангенс (угол в радианах) |
ctg x |
ctg(x) |
|
Арксинус (главное значение в радианах) |
arcsin x |
arcsin(x) |
|
Арккосинус (главное значение в радианах) |
arccos x |
arccos(x) |
|
Арктангенс (главное значение в радианах) |
arctg x |
arctg(x) |
|
Арккотангенс (главное значение в радианах) |
arcctg x |
arcctg(x) |
|
В качестве аргументов функций можно использовать константы, переменные и выражения. Например:
sin(3.05) min(a, 5) |
sin(x) min(a, b) |
sin(2*y+t/2) in(a+b, a*b) |
sin((exp(x)+1)**2) min(min(a,b),min(c,d)) |
Каждый язык программирования имеет свой набор стандартных функций.
Возведение в степень (кроме возведения в квадрат и возведения в степень числа e) отсутствует. Для возведения в произвольную степень можно воспользоваться очевидным равенством: xy=ey ln x. Для возведения числа в натуральную степень можно написать собственную функцию. Например,
{Функция возведения числа X в натуральную степень N}
Function Stepen(X : Real; N : Integer) : Real;
Var I : Integer; St : Real;
Begin
St := 1;
For I := 1 To N Do St := St * X;
Stepen := St;
End;
Другой способ получить натуральное значение z=xy, где x, y — натуральные, это сделать так: Z := Round(Exp(Y * Ln(X))).
Примечание. Интересной является задача получения степени любого целого числа (за исключением нуля), если основание степени — неотрицательное целое, без использования развилки. Одно из возможных решений : (–1)*Ord(Odd(Y)) * Exp(Y * Ln(X)) + Ord(Odd(Y+1)) * Exp(Y * Ln(X)). Здесь Ord(K) — функция, возвращающая порядковый номер величины K в том или ином порядковом типе (в примере использовано свойство, что порядковый номер False равен 0, а порядковый номер True — 1).
Примеры записи математических выражений:
Математическая запись |
Запись на Pascal |
1. x2 – 7x + 6 |
Sqr(x) - 7 * x + 6 |
2. |
(Abs(x) - Abs(y)) / (1 + Abs(x * y)) |
3. |
Ln(Abs((y - Sqrt(Abs(x))) * (x - y / (z + Sqr(x) / 4)))) |
Запишите арифметические выражения, значениями которых являются:
а) площадь треугольника со сторонами a, b, c (a, b, c>0) и полупериметром p;
б) среднее арифметическое и среднее геометрическое чисел a, b, c, d;
в) расстояние от точки с координатами (x,y) до точки (0,0);
г) синус от x градусов;
д) площадь поверхности куба (длина ребра равна а);
е) радиус описанной сферы куба (длина ребра равна а);
ж) координаты точки пересечения двух прямых, заданных уравнениями a1x+b1y+c1=0 и a2x+b2y+c2=0 (прямые не параллельны).
з)Запишите алгебраические выражения, соответствующие следующим записям на языке Pascal:
Abs (a + b) / Abs (c); a + b / sin (c);
sqrt (a) / b / Sqr c; a / ctg (b * c);
sin (a + b) / (d + c); a + b / Sqr (d + c);
Abs (а + b / d + c) * (a + b) / d + ctg (c).