ABS |
Valeur absolue |
---|---|
Langage C | stdlib.h |
Syntaxe
int abs(int n); |
Paramètres
Nom | Description |
---|---|
n | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Retour
Valeur | Description |
---|---|
0 ou supérieur | Ces valeurs sont les seules pouvant être retourné. La valeur absolue d'un nombre est toujours positive. |
Description
Cette fonction mathématique retourne la valeur absolue d'un nombre de type de données entier, soit l'abstraction des signes d'un nombre entier. Ainsi, le signe (négatif), s'il existe, est retiré de façon à conserver uniquement les chiffres du nombre sans toutefois changer sa valeur. Voici un graphique de représentation de la distribution de cette valeur :
Algorithme
MODULE ABS(valeur) SI valeur < 0 ALORS RETOURNE - valeur SINON RETOURNE valeur FIN SI |
Remarques
- La valeur absolue qu'utilise le langage de programmation de C utilise les mêmes règles que celle de la fonction mathématique absolue «|x|».
- Les mathématiciens expriment cette fonction de la façon suivante : f(x) = | x |, laquelle correspond au trois définitions suivantes :
- SI x > 0 ALORS | x | = x,
- SI x < 0 ALORS | x | = - x,
- SI x = 0 ALORS | x | = 0.
- La valeur absolue, par définition, enlève le signe. Donc, on ne peut pas recevoir un nombre négatif comme résultat.
- Le langage de programmation C utilise plus d'une fonction pour effectuer la valeur absolue d'un nombre. Ainsi, pour la valeur absolue d'un nombre entier court, on utilisera abs, pour un entier long, on utilisera labs, tandis que pour la valeur absolue d'un nombre réel, on utilisera fabs.
|
Exemples
Voici un exemple montrant une utilisation de la valeur absolue avec des parenthèses :
Essayer maintenant !
on obtiendra le résultat suivant :
Abs(9*(-7))=63Voici un exemple montrant une utilisation plus classique de la valeur absolue :
Essayer maintenant !
on obtiendra le résultat suivant :
Abs(1)=1Abs(-1)=1
Abs(30.2)=30
Abs(-35.4)=35
Voici un exemple montrant la différence de résultats avec la fonction «SGN» :
Essayer maintenant !
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
-
- int sgn(double valeur) {
- if(valeur < 0) return -1;
- if(valeur == 0) return 0;
- return 1;
- }
-
- int main() {
- printf("abs(1)=%i, sgn(1)=%i\n",abs(1),sgn(1));
- printf("abs(-1)=%i, sgn(-1)=%i\n",abs(-1),sgn(-1));
- printf("abs(0)=%i, sgn(0)=%i\n",abs(0),sgn(0));
- printf("abs(5)=%i, sgn(5)=%i\n",abs(5),sgn(5));
- printf("abs(10)=%i, sgn(10)=%i\n",abs(10),sgn(10));
- printf("abs(-17)=%i, sgn(-17)=%i\n",abs(-17),sgn(-17));
- printf("abs(27.4)=%.1f, sgn(27.4)=%i\n",fabs(27.4),sgn(27.4));
- printf("abs(-12.13)=%.2f, sgn(-12.13)=%i\n",fabs(-12.13),sgn(-12.13));
- return 0;
- }
on obtiendra le résultat suivant :
abs(1)= 1, sgn(1)= 1abs(-1)= 1, sgn(-1)=-1
abs(0)= 0, sgn(0)= 0
abs(5)= 5, sgn(5)= 1
abs(10)= 10, sgn(10)= 1
abs(-17)= 17, sgn(-17)=-1
abs(27.4)= 27.4, sgn(27.4)= 1
abs(-12.13)= 12.13, sgn(-12.13)=-1
Voici un exemple montrant comment effectuer une comparaison avec Abs :
Essayer maintenant !
on obtiendra le résultat suivant :
|a| > |b|Voici un exemple montrant comment calculer la distance entre deux nombres à l'aide de la fonction Abs :
Essayer maintenant !
on obtiendra le résultat suivant :
La distance entre -8 et 10 = 18La distance entre 4 et 8 = 4
La distance entre 0 et 5 = 5
La distance entre -100 et 100 = 200
Voici un exemple montrant comment effectuer l'utilisation de la valeur absolue négatif (N_Abs) à l'aide de la fonction Abs :
Essayer maintenant !
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
-
- int N_Abs(int X) {
- return - abs(X);
- }
-
- double N_FAbs(double X) {
- return - fabs(X);
- }
-
- int main() {
- printf("N_Abs(0)=%i\n",N_Abs(0));
- printf("N_Abs(1)=%i\n",N_Abs(1));
- printf("N_Abs(2)=%i\n",N_Abs(2));
- printf("N_Abs(-1)=%i\n",N_Abs(-1));
- printf("N_Abs(-2)=%i\n",N_Abs(-2));
- printf("N_Abs(30.2)=%.1f\n",N_FAbs(30.2));
- printf("N_Abs(-35.4)=%.1f\n",N_FAbs(-35.4));
- return 0;
- }
on obtiendra le résultat suivant :
N_Abs(0)=0N_Abs(1)=-1
N_Abs(2)=-2
N_Abs(-1)=-1
N_Abs(-2)=-2
N_Abs(30.2)=-30.2
N_Abs(-35.4)=-35.4
Voici un exemple montrant comment on peut revenir au point de départ en partant des négatif vers les positifs :
Essayer maintenant !
on obtiendra le résultat suivant :
5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5Voici un exemple montrant comment faire le graphique de la valeur absolue :
Essayer maintenant !
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int I, J;
- for(I = 7;I >= 0;I--) {
- for(J = 0; J < 7-abs(I); J++) putchar(' ');
- putchar('*');
- for(J = -abs(I); J <= abs(I); J++) putchar(J==0?'|':' ');
- puts("*");
- }
- for(I = -8;I <= 8;I++) {
- putchar(I == 0?'+':'-');
- }
- puts("");
- for(J = 0; J >= -7; J--) {
- for(I = -8;I <= 8;I++) {
- putchar(I == 0?'|':' ');
- }
- puts("");
- }
- return 0;
- }
on obtiendra le résultat suivant :
* | *
* | *
* | *
* | *
* | *
* | *
*|*
--------+--------
|
|
|
|
|
|
|
|
Voici un exemple montrant comment faire le graphique de la valeur absolue et la valeur entière :
Essayer maintenant !
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int I, J;
- for(I = 7;I >= 0;I--) {
- for(J = 0; J < 7-abs(I); J++) putchar(' ');
- putchar('+');
- for(J = -abs(I); J <= abs(I); J++) putchar(J==0?'|':' ');
- puts("±");
- }
- for(I = -8;I <= 8;I++) {
- putchar(I == 0?'+':'-');
- }
- puts("");
- for(J = 0; J >= -7; J--) {
- for(I = -8;I <= 8;I++) {
- if((I + 1 == J) && (J <= 0)) putchar('-');
- else putchar(I == 0?'|':' ');
- }
- puts("");
- }
- puts("Legende :");
- puts("+ Valeur absolue");
- puts("- Valeur entiere");
- return 0;
- }
on obtiendra le résultat suivant :
+ | ±
+ | ±
+ | ±
+ | ±
+ | ±
+ | ±
+|±
--------+--------
-|
- |
- |
- |
- |
- |
- |
- |
Legende :
+ Valeur absolue
- Valeur entiere
Voir également
Langage de programmation - C - Référence procédures et fonctions - fabs
Langage de programmation - C - Référence procédures et fonctions - labs
Langage de programmation - C++ - Référence procédures et fonctions - abs
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 730.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 27.