ABS |
Valeur absolue |
---|---|
MinGW pour C ou 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 retourne la valeur absolue d'un nombre. 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.
|
Exemples
Voici un exemple montrant une utilisation de la valeur absolue avec des parenthèses :
on obtiendra le résultat suivant :
Abs(9*(-7))=63Voici un exemple montrant une utilisation plus classique de la valeur absolue :
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» :
- #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 :
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 :
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 :
- #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 :
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 :
- #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 :
- #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 - MinGW C/C++ - Référence procédures et fonctions - fabs
Langage de programmation - MinGW C/C++ - Référence procédures et fonctions - labs