Математическая библиотека math.h

Математическая библиотека языков C и C++

В стандартную математическую библиотеку языка Си (а, значит, и 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 будет целочисленным, независимо от того, чему будет присвоен результат.