Rechercher
 

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 :

Fonctions sqrt, sqrtf et sqrtl

Entête à inclure

#include <math.h>  // <cmath> en C++

Fonctions sqrt, sqrtf, sqrtl

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é 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.

Paramètres

Valeur de retour

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.

Exemple de code

 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;
}
Exemple d'utilisation de la fonction sqrt.

Il est a 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]
$> 

Sujets connexes

errno

Les fonctions cbrt, cbrtf et cbrtl
Les fonctions pow, powf et powl