Fonctions de la bibliothèque C -pow()
Bibliothèque standard C - <math.h>
Description
Fonctions de la bibliothèque Cdouble pow(double x, double y)renvoie la valeurxde laypuissance, c.-à-d., xy。
pow()est la bibliothèque standard C<math.h>Une fonction utilisée pour calculer la puissance d'un nombre. Plus précisément, elle renvoie le premier argument élevé à la puissance du second argument, c.-à-d.x^y。
Déclaration
Ce qui suit est la déclaration de la fonction pow().
#include <math.h> double pow(double x, double y); float powf(float x, float y); long double powl(long double x, long double y);
Paramètre
xBase, un nombre à virgule flottante.yExposant, un nombre à virgule flottante.
Valeur de retour
- return
xdeypuissance, c.-à-d.x^y。 - Si le calcul produit une erreur mathématique, telle qu'une puissance non entière d'un nombre négatif, NaN sera renvoyé, et
errno。
Gestion des erreurs
- if
xest négative etyn'est pas un entier, le résultat est NaN,errnoDéfini àEDOM。 - si le résultat est trop grand et provoque un débordement, renvoie
HUGE_VAL,errnoDéfini àERANGE。 - si le résultat est trop petit et provoque un sous-dépassement, renvoie
0.0,errnoDéfini àERANGE。
Exemple
L'exemple suivant démontre l'utilisation de la fonction pow().
Exemple
#include <math.h>
int main ()
{
printf("Valeur 8.0 ^ 3 = %lf\n", pow(8.0, 3));
printf("valeur 3.05 ^ 1.98 = %lf", pow(3.05, 1.98));
return(0);
}
Compilons et exécutons le programme ci-dessus, ce qui produira le résultat suivant :
值 8.0 ^ 3 = 512.000000 值 3.05 ^ 1.98 = 9.097324
gérer plusieurs calculs de puissance
L'exemple suivant montre comment gérer des calculs de puissance avec plusieurs bases et exposants :
Exemple
#include <math.h>
#include <errno.h>
int main() {
double bases[] = {2.0, -2.0, 0.0, 2.0};
double exponents[] = {3.0, 3.0, 0.0, -2.0};
int num_values = sizeof(bases) / sizeof(bases[0]);
for (int i = 0; i < num_values; i++) {
double x = bases[i];
double y = exponents[i];
errno = 0; // Réinitialiser errno
double result = pow(x, y);
if (errno == EDOM) {
printf("Erreur de domaine : pow(%f, %f) n'est pas défini\n", x, y);
} else if (errno == ERANGE) {
if (result == HUGE_VAL || result == -HUGE_VAL) {
printf("Erreur de plage : pow(%f, %f) provoque un dépassement de capacité\n", x, y);
} else {
printf("Erreur de plage : pow(%f, %f) provoque un sous-dépassement\n", x, y);
}
} else {
printf("pow(%f, %f) = %f\n", x, y, result);
}
}
return 0;
}
Compilons et exécutons le programme ci-dessus, ce qui produira le résultat suivant :
pow(2.000000, 3.000000) = 8.000000 pow(-2.000000, 3.000000) = -8.000000 pow(0.000000, 0.000000) = 1.000000 pow(2.000000, -2.000000) = 0.250000
Explication du code
- définir deux tableaux
basesetexponents, qui contiennent respectivement plusieurs bases et exposants. - Utilisation
forParcourir chaque paire de base et d'exposant, appelerpow(x, y)effectuer les calculs de puissance. - réinitialiser
errnoà 0 et vérifiez les erreurs éventuelles. - afficher le résultat ou le message d'erreur de chaque calcul.
Cas d'utilisation
pow()La fonction a un large éventail d'usages dans de nombreuses applications, y compris, mais sans s'y limiter :
- Calculer les opérations de puissance dans les formules scientifiques.
- Résoudre des problèmes mathématiques impliquant des équations de puissance.
- Calculer les intérêts composés en finance.
- Effectuer divers calculs physiques en ingénierie.
Résumé
pow()La fonction est utilisée pour calculer la puissance de nombres à virgule flottante et est un outil important pour gérer les opérations de puissance. Grâce à l'utilisation raisonnable depow(), les opérations de puissance peuvent être mises en œuvre dans le calcul scientifique, les applications d'ingénierie et l'analyse financière, tout en garantissant que les conditions d'erreur possibles sont correctement gérées.