В стандартную математическую библиотеку языка Си (а, значит, и C++) входит множество специальных математических функций, которые нужно знать и уметь использовать. Для того, чтобы использовать эти функции в своей программе, необходимо подключить заголовочный файл, содержащий описания этих функций, что делается строчкой в начале программы:
#include <math.h>
В языке C++ нужно указывать название заголовочного файла так:
#include <cmath>
Функция от одного аргумента вызывается, например, так: sin(x)
. Вместо числа x
может быть любое число, переменная или выражение. Функция возвращает значение, которое можно вывести на экран, присвоить другой переменной или использовать в выражении:
y = sin(x);
printf("%lf", sqrt(2));
Функция | Описание |
---|---|
Округление | |
round |
Округляет число по правилам арифметики, то есть round(1.5) == 2 , round(-1.5) == -2 |
floor |
Округляет число вниз (“пол”), при этом floor(1.5) == 1 , floor(-1.5) == -2 |
ceil |
Округляет число вверх (“потолок”), при этом ceil(1.5) == 2 , ceil(-1.5) == -1 |
trunc |
Округление в сторону нуля (отбрасывание дробной части), при этом trunc(1.5) == 1 , trunc(-1.5) == -1 |
fabs |
Модуль (абсолютная величина) |
Корни, степени, логарифмы | |
sqrt |
Квадратный корень. Использование: sqrt(x) |
cbrt |
Кубический корень. Использование: cbrt(x) |
pow |
Возведение в степень, возвращает ab. Использование: pow(a,b) |
exp |
Экспонента, возвращает ex. Использование: exp(x) |
log |
Натуральный логарифм |
log10 |
Десятичный логарифм |
Тригонометрия | |
sin |
Синус угла, задаваемого в радианах |
cos |
Косинус угла, задаваемого в радианах |
tan |
Тангенс угла, задаваемого в радианах |
asin |
Арксинус, возвращает значение в радианах |
acos |
Арккосинус, возвращает значение в радианах |
atan |
Арктангенс, возвращает значение в радианах |
Также в файле cmath
есть набор полезных числовых констант, например, константа M_PI
хранит значение числа \(\pi\).
В компиляторе Visual C++ для использования этих констант необходимо объявить директиву препроцессора _USE_MATH_DEFINES
перед подключения заголовочного файла cmath
.
#define _USE_MATH_DEFINES #include <cmath>
Для действительных чисел определены операции сложения, вычитания, умножения и деления.
При этом операция деления выполняется по-разному для переменных и констант целочисленного типа и для переменных и констант действительных типов. В первом случае деление производится нацело с отбрасыванием дробной части, во втором случае — деление производится точно и результатом является действительное число. Более точно, если делимое и делитель одновременно являются целочисленными константами или переменными целочисленных типов, то деление будет целочисленным, а если хотя бы одно из них действительное, то деление будет действительным. Например:
printf("%lf\n", 10 / 3);
printf("%lf\n", 10. / 3);
printf("%lf\n", 10 / 3.);
printf("%lf\n", 10. / 3.);
выведет 3 в первой строке и 3.33333 в остальных строках.
Результат выполнения деления не зависит от того, какой переменной будет присвоен результат. Если написать double a = 10 / 3;
, то переменная a
будет равна 3, так как деление 10/3 будет целочисленным, независимо от того, чему будет присвоен результат.