Bibliothèque Math

Les fonctions suivantes permettent de calculer des logarithmes ou des puissances :

log
logarithme naturel (népérien).
log10
logarithme décimal (en base 10).
exp
exponentielle (puissance de e).
pow
puissance.
sqrt
racine carrée.

Toutes ces fonctions prennent un argument de type double et donnent un résultat de type double, à l'exception de la fonction pow, qui prend deux arguments de type double (d'abord la base, ensuite l'exposant).

double x = 1.5, y;
y = sqrt(x);
y = pow(x, 0.5);

La bibliothèque Math met aussi à notre disposition la constante M_E qui représente le nombre d'Euler sous forme de double. Cependant, cette constante ne fait pas partie du standard C89 et ne sera donc pas accessible si vous compilez avec l'option -ansi.

Les fonctions suivantes facilitent les calculs géométriques :

sin
le sinus d'un angle en radians.
cos
le cosinus d'un angle en radians.
tan
la tangente d'un angle en radians.
asin
l'arcsinus (sinus inverse).
acos
l'arccosinus (cosinus inverse).
atan
l'arctangente (tangente inverse).

La constante M_PI représente π sous forme de double. Cependant, cette constante ne fait pas non plus partie du standard C89 et ne sera donc pas accessible si vous compilez avec l'option -ansi.

Quelques fonctions supplémentaires que l'on rencontre souvent :

fabs
valeur absolue (d'un double).
round
arrondi à l'entier le plus proche.
ceil
arrondi à l'entier immédiatement supérieur.
floor
arrondi à l'entier immédiatement inférieur.
trunc
partie entière.

Malheureusement, les fonctions round et trunc ne font pas partie du standard C89 et ne seront donc pas utilisables si vous compilez avec l'option -ansi.

Remarque L'utilisation de la bibliothèque Math dans un fichier source implique de prendre deux précautions :

  • Il faut demander à cpp d'inclure l'en-tête dans la source par le biais d'une directive.
    #include <math.h>
  • Il faut demander à ld d'inclure le fichier objet dans l'exécutable à l'aide d'une option que l'on peut directement passer au compilateur.
    gcc -ansi -pedantic exo.c -o exo -lm

Il est recommendé de toujours placer l'option -lm en dernier. Cette méthode est une bonne illustration de la façon dont on exploite une bibliothèque en général (la bibliothèque standard vue jusqu'ici était une exception).

  1. Formules. Écrivez un programme qui affiche le résultat de chacune de ces formules :

  2. Distance. Écrivez un programme qui demande à l'utilisateur de fournir les coordonnées de deux points du plan, et qui affiche ensuite la distance entre ces points.

  3. Arctique. Écrivez un programme qui demande à l'utilisateur de fournir les coordonnées polaires d'un point du plan (distance à l'origine et angle par rapport à l'axe des abscisses), puis affiche ses coordonnées cartésiennes (abscisse et ordonnée).

  4. Chiffres. Écrivez un programme qui demande à l'utilisateur un réel, puis affiche le chiffre des unités et le chiffre des dixièmes uniquement.

    $ ./a.out
    Entrez un réel : 141.35
    chiffre des unités :   1
    chiffre des dixièmes : 3
    

    Remarque Pensez à la fonction trunc !

  5. Durée de vol. Écrivez un programme qui demande à l'utilisateur de lui fournir les paramètres d'un trajet aérien :

    • vitesse de l'avion en km/h,
    • vitesse du vent en km/h (positive pour un vent contraire, négative pour un vent arrière),
    • distance à parcourir en km.
    Une fois les informations obtenues, votre programme devra calculer puis afficher la durée du vol (en heures et en minutes).

retour à la page d'accueil

retour au sommet