LABS |
Absolue pour long |
---|---|
Langage C++ | cstdlib (stdlib.h) |
Syntaxe
long labs(long n) |
Paramètres
Nom | Description |
---|---|
n | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Description
Cette fonction retourne la valeur absolue d'un entier de type «long».
Algorithme
MODULE LABS(valeur) SI valeur < 0 ALORS RETOURNE - valeur SINON RETOURNE valeur FIN SI |
Remarques
- La fonction labs() renvoie la valeur absolue de n avec un type de données long soit, en quelque sorte, une version long de la fonction abs.
- La fonction labs fait partie de la bibliothèque <cstdlib> en C++ et permet de calculer la valeur absolue d'un nombre entier de type long int. Cela signifie qu'elle retourne la valeur positive d'un nombre donné, quelle que soit sa valeur d'origine (qu'elle soit positive ou négative). Elle est principalement utilisée dans des calculs où les valeurs absolues sont nécessaires, comme dans des algorithmes de distance, de comparaison, ou d'optimisation.
- Comparaison avec abs : Bien que labs et abs effectuent une fonction similaire, il existe une différence importante :
- abs est utilisé pour les entiers de type int.
- labs est spécifiquement conçu pour les entiers de type long int.
- Si vous travaillez avec des valeurs dépassant les limites de int mais pouvant être entreposées dans un long int, vous devez utiliser labs pour éviter les problèmes de débordement. Par exemple, pour des nombres excédant la taille d'un int, labs est plus adapté.
- Comportement avec les bornes de long int : Comme toute fonction manipulant des nombres entiers, labs a des limites. Si la valeur absolue d'un nombre dépasse la plage de valeurs possibles pour un long int, cela peut entraîner un dépassement d'entier (overflow). Par exemple, la valeur absolue de LONG_MIN (le plus petit nombre possible pour un long int) ne peut pas être représentée comme un nombre positif dans l'intervalle de long int. Ce cas particulier peut provoquer un comportement indéfini.
- Utilisation dans les calculs de distance : La fonction labs est souvent utilisée dans des algorithmes de calcul de distance, comme dans le cas où l'on doit calculer la distance entre deux points (sur un axe numérique, par exemple). Par exemple, pour calculer la différence entre deux positions numériques, vous pouvez utiliser labs pour garantir que la différence est toujours positive :
- Comportement avec des nombres déjà positifs : Si la valeur passée à labs est déjà positive ou nulle, la fonction retourne la même valeur sans effectuer de transformation. Par exemple :
- Comportement dans les expressions mathématiques : labs peut être utilisée dans des expressions mathématiques plus complexes pour obtenir des résultats toujours positifs, indépendamment des valeurs d'entrée. Par exemple, dans des calculs impliquant des soustractions ou des divisions où des valeurs négatives peuvent apparaître, labs garantit que les résultats intermédiaires restent positifs :
Cela peut être utile dans les situations où les valeurs d'entrée sont déjà garanties d'être positives, mais que vous souhaitez toujours utiliser labs pour la clarté du code ou la cohérence avec d'autres parties de l'algorithme.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
- #include <iostream>
- #include <cmath>
-
- int main()
- {
-
- std::cout << "Abs(-1048576)=" << labs(-1048576) << std::endl;
- std::cout << "Abs(65536)=" << labs(65536) << std::endl;
- std::cout << "Abs(1)=" << labs(1) << std::endl;
- std::cout << "Abs(-1)=" << labs(-1) << std::endl;
- std::cout << "Abs(30.2)=" << labs(30.2) << std::endl;
- std::cout << "Abs(-35.4)=" << labs(-35.4) << std::endl;
- return 0;
- }
on obtiendra le résultat suivant :
Abs(-1048576)=1048576Abs(65536)=65536
Abs(1)=1
Abs(-1)=1
Abs(30.2)=30
Abs(-35.4)=35
Voici un exemple d'utilisation de labs pour calculer la valeur absolue d'un nombre entier long :
Ce programme affichera "La valeur absolue de -12345 est 12345", car labs retourne la valeur positive du nombre.
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - abs
Langage de programmation - C++ - Référence de procédures et fonctions - fabs
Langage de programmation - C - Référence de procédures et fonctions - labs
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 732.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 156.