#include <math.h> // <cmath> en C++
double sqrt( double value );
float sqrtf( float value ); // C99
long double sqrtl( long double value ); // C99
Ces trois fonctions permettent de calculer la racine carré d'une valeur passée en paramètre. La racine carrée d'un nombre réel positif x est le nombre positif qui, lorsqu'il est multiplié par lui-même (le carré de ce nombre), donne x.
La différence entre ces trois fonctions réside dans le type de données utilisé pour le paramètre et la valeur de retour (double, float ou long double).
Les fonctions sqrtf
et sqrtl
ont été ajoutées dans C99.
Si le paramètre passé est bien une valeur positive, la fonction renvoie sa racine carrée.
Si la paramètre passé est une valeur négative, il est alors hors du domaine de validité de la fonction et la variable
errno
est alors fixée à la valeur EDOM
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <math.h> #include <stdio.h> #include <stdlib.h> int main() { double deltaX; double deltaY; printf( "Veuillez saisir la première composante d'un vecteur : " ); scanf( "%lf", &deltaX ); printf( "Veuillez saisir la seconde composante d'un vecteur : " ); scanf( "%lf", &deltaY ); double divisor = sqrt( pow( deltaX, 2 ) + pow( deltaY, 2 ) ); deltaX /= divisor; deltaY /= divisor; printf( "Le vecteur normalisé est [%5.2lf,%5.2lf]\n", deltaX, deltaY ); return EXIT_SUCCESS; } |
Il est à noter que la librairie mathématique doit être ajoutée durant l'étape de "link" (édition des liens) de votre exécutable.
Cela se réalise en ajoutant l'option -lm
à votre compilateur gcc. En cas d'utilisation d'un autre compilateur, je vous renvoie vers la documentation de ce dernier.
$> gcc -o sample sample.c -lm $> ./sample Veuillez saisir la première composante d'un vecteur : 1 Veuillez saisir la seconde composante d'un vecteur : 2 Le vecteur normalisé est [ 0.45, 0.89] $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :