pow , powf , powl
Вычисляет значение x , возведенное в степень y .
Синтаксис
double pow( double x, double y ); float powf( float x, float y ); long double powl( long double x, long double y ); define pow(X, Y) // Requires C11 or higher double pow( double x, int y ); // C++ only float pow( float x, float y ); // C++ only float pow( float x, int y ); // C++ only long double pow( long double x, long double y ); // C++ only long double pow( long double x, int y ); // C++ only
Параметры
Возвращаемое значение
Возвращает значение x y . Сообщение об ошибке не выводится в случае переполнения или потери значимости.
| x Значения и y | Возвращаемое значение pow |
|---|---|
| x != 0.0 и y == 0.0 | 1 |
| x == 0.0 и y == 0.0 | 1 |
| x == 0.0 и y < 0 | INF |
Замечания
pow не распознает целочисленные значения с плавающей запятой больше 2 64 (например, 1.0E100).
Функция pow содержит реализацию, которая использует Streaming SIMD Extensions 2 (SSE2). Сведения и ограничения по использованию реализации SSE2 см. в разделе _set_SSE2_enable .
Так как C++ допускает перегрузку, можно вызывать любые перегрузки pow . В программе C, если макрос не используется для вызова этой функции, pow всегда принимает два double значения и возвращает double значение.
Если вы используете pow макрос из , тип аргумента определяет, какая версия функции выбрана. Дополнительные сведения см . в разделе «Математика с универсальным типом».
Перегрузка pow(int, int) более не доступна. При использовании этой перегрузки компилятор может выдавать C2668. Чтобы избежать этой проблемы, необходимо привести параметр к типу double , float или long double .
pow(T, int) Первоначально перегрузки откатили pow вызов в последовательность встроенных операций умножения. Хотя это было быстрее, это было также гораздо менее точно. Эта реализация была удалена в Visual Studio 2015 с обновлением 1. Дополнительные сведения см. в разделе «Улучшения соответствия» в Visual Studio 2015 с обновлением 1.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью «Глобальное состояние» в CRT.
Требования
| Маршрут | Обязательный заголовок (C) | Обязательный заголовок (C++) |
|---|---|---|
| pow , powf , powl | или | |
| pow Макрос |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_pow.c #include #include int main( void )
2.0 to the power of 3.0 is 8.0
Функция pow
В C++, эта функция перегружена в заголовочных файлах и (смотреть pow комплексных чисел и pow в библиотеке массивов числовых значений).
В Си, определена только версия функции с типами данных её параметров, — double . Другие перегруженные версии этой функции есть только в C++.
Параметры:
- basis
Значение с плавающей точкой — основание. - exponent
Значение с плавающей точкой — степень.
Возвращаемое значение
Возведение значения basis в степень exponent .
Если величина результата настолько велика, что она не может быть представлена в объекте возвращаемого типа, возникает ошибка области допустимых значений, и функция возвращает значение HUGE_VAL с соответствующим ему знаком и устанавливает значение макроса ERRNO в ERANGE значение.
Если basis отрицательное и exponent не целое значение, или если basis равна нулю, а exponent — отрицательное, возникает ошибка области допустимых значений, и выполняется установка глобальной переменной ERRNO в значение EDOM .
Пример: исходный код программы
// пример использования функции pow #include // для оператора cout #include // для функции pow int main()
Pow c что это
Минимальная программа на С++ состоит из одной функции main, именно с нее начинается работа программы. Однако, мы можно (и нужно) пользоваться другими функциями. В языке С++ существует большое количество функций стандартной библиотеки STL ( глава 2), а также можно определять свои собственные функции.
1.9.1 Использование функций библиотеки STL (пример 11)
Стандартная библиотека C++ предлагает широкий набор функций для выполнения математических вычислений, операций со строками и символами, ввода-вывода, обработки ошибок и многих других полезных операций. Это облегчает работу программистов, поскольку эти функции реализуют многое из того, что им обычно требуется. Прототипы функций размещаются в заголовочных файлах, так что они могут использоваться любыми программами, включающими соответствующий заголовочный файл.
Например, в языке С++ не существует оператора возведения в степень, но зато есть функция возведения в степень, которой можно воспользоваться. Для этого нужно подключить заголовочный файл и в обратиться к функции pow() в теле программы.
///////////////////////////////////////////////////////////////////////////// // Прикладное программирование // Пример 11. Обращение к фукнции возведения числа в степень // // Кафедра Прикладной и компьютерной оптики, http://aco.ifmo.ru // Университет ИТМО ///////////////////////////////////////////////////////////////////////////// // подключение библиотеки ввода-вывода #include // подключение математической библиотеки #include // подключение стандартного пространства имен для использования библиотек using namespace std; ///////////////////////////////////////////////////////////////////////////// // функция main начинает исполнение программы void main() < double pi=3.14; // возведение числа в степень // обращение к функции - пример 1 double power = pow(3.14, 2); // обращение к функции - пример 1 power = pow(pi, 2); // обращение к функции - пример 3 cout </////////////////////////////////////////////////////////////////////////////
Функция pow() возводит число 3.14 в квадрат и присваивает полученный результат переменной power, где pow — имя функции; числа 3.14 и 2 — аргументы функции. В качестве аргументов функции может быть число или переменная соответствующего типа.
Аргументы перечисляются в скобках после имени функции, если аргументов несколько, то они отделяются друг от друга запятыми.
1.9.2 Определение новых функций
Определение (реализация) функции
Определение функции осуществляется следующим образом:
в общем виде
пример
тип имя(список аргументов с типами) < инструкции return возвращ.знач.; >
double plus(double x, double y) < return x+y; >
Тип возвращаемого значения может быть целым, вещественным, и т.д., кроме того, функция может не возвращать никакого значения, тогда при ее определении (и описании) указывают тип void.
void print_value(double res) < cout"result is: "
Во время выполнения какой-либо функции управление возвращается в вызывающую программу, когда программа достигает закрывающей фигурной скобки или при исполнении оператора return. Если функция не возвращает никакого значения, оператор return должен быть «пустым», а если возвращает – после оператора return указывается возвращаемое значение. Для функции, не возвращающей никакого значения, наличие оператора return не является обязательным.
Описание функции (прототип)
Обычно функции снабжаются прототипами, которые помещаются в отдельный заголовочный (header) файл или в начале файла. Прототипом называется объявление функции:
в общем виде
пример
возвращ.тип имя (список аргументов с типами);
double plus(double x, double y)
Компилятор сверяется с прототипом функции, чтобы проверить, содержат ли вызовы функции правильное число аргументов нужных типов и перечислены ли типы аргументов в правильном порядке. Кроме того, прототип функции необходим компилятору для того, чтобы убедиться, что возвращаемое функцией значение корректно используется в вызвавшем функцию выражении (например, вызов функции, возвращающий void, не может входить в правую часть оператора присваивания). Каждый аргумент должен быть совместим с типом соответствующего параметра. Например, параметр типа double может принимать значения 7.35, 22 или -0.03456, но не строку вроде «hello». Если передаваемые функции аргументы не совпадают по типу с параметрами, указанными в прототипе функции, компилятор пытается преобразовать аргументы к соответствующему типу.
Обращение к функции (вызов функции)
Каждому параметру в определении функции (формальный параметр функции) должен соответствовать один аргумент в вызове функции. В данном примере, когда функция вызывается, параметр функции х инициализируется значением аргумента b, параметр у инициализируется значением аргумента c, а возвращаемое значение присваивается переменной a.
имя (список аргументов);
double a, b, c; a=plus(b, c);
1.9.3 Пример функции (пример 12)
В примере используются две функции – функция сложения двух чисел и функция печати числа на экран. Значение функции plus можно присвоить какой-то переменной, или использовать прямо при вызове другой функции или при использовании оператора cout.
///////////////////////////////////////////////////////////////////////////// // Прикладное программирование // Пример 12. Функция сложения двух чисел // // Кафедра Прикладной и компьютерной оптики, http://aco.ifmo.ru // Университет ИТМО ///////////////////////////////////////////////////////////////////////////// // подключение библиотеки ввода-вывода #include // подключение стандартного пространства имен для использования библиотек using namespace std; // объявление функции (прототип функции) // функция складывает два числа double plus(double x, double y); // функция печати результата void print_value(double res); ///////////////////////////////////////////////////////////////////////////// // функция main начинает исполнение программы void main() < // объявление и инициализация двух переменных double x1=1, x2=2; // обращение к функции - пример 1 double res = plus(x1, x2); // обращение к функции - пример 2 res = plus(55.5, res); print_value(res); // обращение к функции - пример 3 cout<// обращение к функции - пример 4 print_value(plus(res, x2)); > ///////////////////////////////////////////////////////////////////////////// // Определение (реализация) функции сложения двух чисел double plus(double x, double y) < return x+y; > ///////////////////////////////////////////////////////////////////////////// // Определение (реализация) функции печати результата void print_value(double res) < cout"result is: " /////////////////////////////////////////////////////////////////////////////
Math.pow()
Метод Math.pow() возвращает основание , возведённое в степень показатель , то есть, значение выражения: основание показатель .
Синтаксис
Math.pow(base, exponent)
Параметры
Показатель степени, в которую возводится основание base .
Описание
Поскольку метод pow() является статическим методом объекта Math , вы всегда должны использовать его как Math.pow() , а не пытаться вызывать метод на созданном экземпляре объекта Math (поскольку объект Math не является конструктором).
Примеры
Пример: использование метода Math.pow()
.pow(7, 2); // 49