Заголовок cmath: pow, sqrt, abs, round
Используйте стандартную математическую библиотеку для распространённых математических операций.
«Заголовок cmath: pow, sqrt, abs, round» — бесплатный урок C++ Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C++ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C++ Academy содержит 4 уроков всего.
Заголовочный файл <cmath>
Стандартные математические функции находятся в <cmath>. Большинство из них принимает и возвращает значение типа double; также существуют перегрузки для типов float и long double.
Возведение в степень: pow
std::pow(base, exp) возводит основание в степень, заданную параметром exp. Возвращает значение типа double.
#include <cmath>
double x = std::pow(2.0, 10); // 1024.0
double y = std::pow(9.0, 0.5); // 3.0Квадратный и кубический корни: sqrt cbrt
sqrt возвращает квадратный корень, а cbrt — кубический.
double s = std::sqrt(2.0); // 1.414...
double c = std::cbrt(27.0); // 3.0Абсолютное значение: abs
std::abs работает как с целочисленными типами, так и с типами с плавающей точкой. Для целых чисел используйте <cstdlib> или просто std::abs.
#include <cmath>
#include <cstdlib>
int i = std::abs(-5); // 5
double d = std::abs(-3.14); // 3.14Округление: floor ceil round trunc
Четыре режима округления:
floor— в сторону минус бесконечностиceil— в сторону плюс бесконечностиround— до ближайшего целого, при половинном значении от нуляtrunc— в сторону нуля
Примеры округления
Посмотрите, чем отличаются эти функции для положительных и отрицательных чисел.
std::cout << std::floor(3.7) << "\n"; // 3
std::cout << std::ceil(3.2) << "\n"; // 4
std::cout << std::round(3.5) << "\n"; // 4
std::cout << std::trunc(-3.7) << "\n"; // -3
std::cout << std::floor(-3.7) << "\n"; // -4Остаток от деления для чисел с плавающей точкой: fmod
Оператор % работает только с целыми числами. Для чисел с плавающей точкой используйте std::fmod.
double r = std::fmod(10.5, 3.0); // 1.5Логарифмы
Три варианта логарифма:
std::log— натуральный логарифм (по основанию e)std::log10— логарифм по основанию 10std::log2— логарифм по основанию 2 (C++11)
Экспонента: exp
std::exp(x) вычисляет e^x. Это обратная функция натурального логарифма.
double e = std::exp(1.0); // 2.718...
double x = std::log(e); // 1.0Тригонометрия
sin, cos, tan и обратные им функции (asin, acos, atan). Все они принимают углы в радианах.
double y = std::sin(M_PI / 2); // 1.0
// Convert degrees to radians: deg * M_PI / 180Полезные константы (C++20)
В C++20 в <numbers> появились именованные математические константы: std::numbers::pi, e, sqrt2 и другие.
#include <numbers>
std::cout << std::numbers::pi; // 3.14159...
std::cout << std::numbers::e; // 2.71828...Быстрая проверка
Какая функция округляет -3.7 до -4?
Итоги
<cmath> содержит функции для работы со степенями, корнями, абсолютными значениями, округлением, остатком от деления, логарифмами, экспонентами и тригонометрией. Тригонометрические функции работают с радианами. В C++20 появился <numbers> для именованных констант, таких как std::numbers::pi.
Изучай C++ с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 51
- Уроки
- 203
Часто задаваемые вопросы
Урок «Заголовок cmath: pow, sqrt, abs, round» бесплатный?
Да — полный текст урока «Заголовок cmath: pow, sqrt, abs, round» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C++ Academy, подпишись на CoddyKit PRO. Курс C++ Academy содержит 4 уроков всего.
Чему я научусь в уроке «Заголовок cmath: pow, sqrt, abs, round»?
Используйте стандартную математическую библиотеку для распространённых математических операций. Ты практикуешь C++ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C++ Academy?
Предыдущий опыт не требуется. C++ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Заголовок cmath: pow, sqrt, abs, round»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C++ Academy?
Да. Каждый урок C++ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Целочисленные типы и типы с плавающей точкой
- Заголовок cmath: pow, sqrt, abs, round
- Случайные числа с заголовком random
- Числовые ограничения и переполнение