C++ Academy · Урок

Заголовок cmath: pow, sqrt, abs, round

Используйте стандартную математическую библиотеку для распространённых математических операций.

Урок 2 из 413 шагов

«Заголовок 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 — логарифм по основанию 10
  • std::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 — локальная установка не требуется.

Все уроки этого курса

  1. Целочисленные типы и типы с плавающей точкой
  2. Заголовок cmath: pow, sqrt, abs, round
  3. Случайные числа с заголовком random
  4. Числовые ограничения и переполнение
← Назад к C++ Academy