Section courante

A propos

Section administrative du site

Valeur absolue et le C

Bien qu'en C, il existe une fonction «abs» dans l'entête stdlib.h permettant de calculer la valeur absolue de nombre entier, et des fonctions labs et fabs dans l'entête math.h permettent de calculer respectivement la valeur absolue d'un entier long et d'un nombre réel.

int abs(int n); Entier
long labs(long n); Entier long
double fabs(double n); Nombre réel
double cabs(complex double z) Nombre complexe (supporté seulement par quelques compilateurs comme GNU C : cabs, cabsf,...)

Étant donné que le langage de programmation C est étroitement relié à ses types de données pour retourner un résultat, le langage de programmation C offre différentes fonctions pour retourner la valeur absolue. Il faut utiliser la fonction la plus approprié si on veut obtenir un résultat valide. Toutefois, il y a 2 nombreuses variations des fonctions disponibles d'un compilateur de langage de programmation C à un autre.

Comportement

Tout d'abord, on doit savoir que la valeur absolue peut s'appliquer aussi bien a un nombre entier qu'un nombre réel. Il n'est pas possible d'effectuer un nombre irréel ou d'une chaîne de caractères. De plus, il est impossible d'avoir un nombre négatif avec une valeur absolue, car la valeur absolue retire en quelque sorte le signe négatif. Ainsi, le nombre traiter par une valeur absolue conservera uniquement le nombre et éliminera le signe et comme lorsqu'il n'y a pas de signe, le nombre est positif, le nombre retourner sera donc supérieur ou égale à zéro.

Remarque

Exemple pratique

Bien qu'il existe de nombreuses fonctions de valeurs absolues en langage de programmation C, il peut quand même être amusant d'effectuer se genre de calcul nous-mêmes. Pour remédier à ce problème de la valeur absolue, il suffit de créer une fonction ressemblant à ceci :

Essayer maintenant !
  1. #include <stdio.h>
  2.  
  3. double abs(double a) {
  4.     if(a < 0) a=-a;
  5.     return a;
  6. }
  7.  
  8. int main()
  9. {
  10.     printf("Abs(1)=%.0f\n",abs(1));
  11.     printf("Abs(-1)=%.0f\n",abs(-1));
  12.     printf("Abs(30.2)=%.1f\n",abs(30.2));
  13.     printf("Abs(-35.4)=%.1f\n",abs(-35.4));
  14.     return 0;
  15. }

on obtiendra le résultat suivant :

Abs(1)=1
Abs(-1)=1
Abs(30.2)=30.2
Abs(-35.4)=35.4

Voir également

Langage de programmation - AWK - Mathématique - abs

Dernière mise à jour : Mardi, le 28 juillet 2015