POW |
Puissance |
---|---|
Langage C++ | cmath (math.h) |
Syntaxe
float pow(float x, float y); |
float pow(float x, int y); |
double pow(double x,double y) |
double pow(double x, int y); |
long double pow(long double x, long double y); |
long double pow(long double x, int y); |
Paramètres
Nom | Description |
---|---|
x | Ce paramètre permet d'indiquer la base de la puissance |
y | Ce paramètre permet d'indiquer la puissance |
Description
Cette fonction retourne le calcul de x à la puissance y.
Remarques
- La fonction pow() renvoie la base x élevée à la puissance y (xy). Une erreur de domaine peut se produire si la base x est zéro et y est inférieur ou égal à zéro. Cette situation se produira également si la base x est négative et y n'est pas un entier. Un débordement produit une erreur d'intervalle.
- Définition et utilité : La fonction pow est définie dans la bibliothèque <cmath> et permet de calculer la puissance d'un nombre. Elle prend deux paramètres : un nombre de base et un exposant, et retourne la base élevée à la puissance de l'exposant. C'est une fonction essentielle pour réaliser des calculs impliquant des puissances, étant courants dans de nombreux domaines comme les mathématiques, la physique, et l'ingénierie.
- Calcul de puissances négatives et fractionnaires : La fonction pow gère non seulement les exposants positifs, mais aussi les exposants négatifs et fractionnaires. Par exemple, pow(2, -3) renverra 0.125 (équivalent à 1/(2^3)), et pow(4, 0.5) renverra 2.0, qui est la racine carrée de 4. Cela rend la fonction extrêmement flexible pour une grande variété de calculs.
- Comportement avec des bases négatives : Lorsqu'on passe une base négative et un exposant non entier à pow, le résultat peut être complexe, car une base négative élevée à une puissance fractionnaire ou décimale ne renvoie pas un nombre réel. Par exemple, pow(-2, 0.5) (la racine carrée de -2) renverra une valeur indéfinie en mathématiques réelles, mais pourrait conduire à un comportement non défini ou à des erreurs dans le programme. Il est donc essentiel de vérifier que les entrées sont valides pour éviter des comportements imprévus.
- Comportement avec des exposants égaux à zéro : Si l'exposant est égal à zéro, pow(base, 0) renverra toujours 1, quel que soit la base (tant que la base n'est pas zéro). En mathématiques, cela correspond à la règle selon laquelle toute valeur (à l'exception de zéro) élevée à la puissance zéro donne 1. Par exemple, pow(10, 0) retournera 1.0.
- Comportement avec des bases égales à zéro : Si la base est zéro et que l'exposant est positif, pow(0, x) retournera zéro. En revanche, si la base est zéro et que l'exposant est négatif, comme dans pow(0, -1), cela conduira à une erreur, souvent avec une valeur infinie ou une erreur de domaine, car cela implique une division par zéro.
- Précision et erreurs d'arrondi : Comme toutes les fonctions de calcul flottant en C++, pow peut être affectée par des erreurs d'arrondi, particulièrement pour des valeurs très grandes ou très petites. En raison de la représentation finie des nombres flottants, certains résultats peuvent ne pas être exactement ceux attendus. Par exemple, des puissances de très grands nombres peuvent entraîner des dépassements de capacité ou des arrondis inattendus, ce qui peut affecter la précision des résultats dans des calculs scientifiques ou financiers.
- Performances et alternatives : Bien que pow soit largement utilisée pour effectuer des calculs de puissances, elle peut être plus lente que des alternatives simples comme l'utilisation de l'opérateur * pour les exposants entiers. Par exemple, x^2 peut être simplement écrit comme x * x pour les puissances entières simples. Cependant, pour des exposants non entiers ou négatifs, pow est nécessaire, car d'autres moyens manuels d'exponentiation sont moins pratiques et peuvent être plus sujets à des erreurs.
Algorithme
MODULE POW(a,b) p ← 1 BOUCLE POUR i ← 1 JUSQU'A b p ← p x a FIN BOUCLE POUR RETOURNE p |
Exemple
Voici des exemples permettant d'afficher des fonctions de puissance :

- #include <iostream>
- #include <cmath>
-
- int main()
- {
- std::cout << "POW(0,1)=" << pow(0,1) << std::endl;
- std::cout << "POW(1,1)=" << pow(1,1) << std::endl;
- std::cout << "POW(-1,0)=" << pow(-1,0) << std::endl;
- std::cout << "POW(-1,1)=" << pow(-1,1) << std::endl;
- std::cout << "POW(2,2)=" << pow(2,2) << std::endl;
- std::cout << "POW(2,8)=" << pow(2,8) << std::endl;
- std::cout << "POW(30,2)=" << pow(30,2) << std::endl;
- std::cout << "POW(-35,4)=" << pow(-35,4) << std::endl;
- return 0;
- }
on obtiendra le résultat suivant :
POW(0,1)=0POW(1,1)=1
POW(-1,0)=1
POW(-1,1)=-1
POW(2,2)=4
POW(2,8)=256
POW(30,2)=900
POW(-35,4)=1500625
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - exp
Langage de programmation - C++ - Référence de procédures et fonctions - sqrt
Langage de programmation - C - Référence de procédures et fonctions - pow
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 733.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 193.
Dernière mise à jour : Lundi, le 3 août 2015