ABS |
Valeur absolue |
---|---|
TCL |
Syntaxe
abs(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 TCL 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 :
- #! /usr/bin/tclsh
- puts "Abs(9*(-7))=[expr {abs(9*(-7))}]"
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» :
- #! /usr/bin/tclsh
- proc sgn {valeur} {
- if { $valeur < 0 } {
- return -1
- }
- if { $valeur == 0 } {
- return 0
- }
- return 1
- }
-
- puts "abs(1)=[expr {abs(1)}], sgn(1)=[sgn 1]"
- puts "abs(-1)=[expr {abs(-1)}], sgn(-1)=[sgn -1]"
- puts "abs(0)=[expr {abs(0)}], sgn(0)=[sgn 0]"
- puts "abs(5)=[expr {abs(5)}], sgn(5)=[sgn 5]"
- puts "abs(10)=[expr {abs(10)}], sgn(10)=[sgn 10]"
- puts "abs(-17)=[expr {abs(-17)}], sgn(-17)=[sgn -17]"
- puts "abs(27.4)=[expr {abs(27.4)}], sgn(27.4)=[sgn 27.4]"
- puts "abs(-12.13)=[expr {abs(-12.13)}], sgn(-12.13)=[sgn -12.13]"
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 :
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 :
- #! /usr/bin/tclsh
-
- for {set I 7} {$I >= 0} {incr I -1} {
- for {set J 0} {$J < 7-abs($I)} {incr J} { puts -nonewline " " }
- puts -nonewline "*"
- for {set J [expr {-abs($I)}]} {$J <= abs($I)} {incr J} {
- puts -nonewline [expr {$J==0 ?"|":" "}]
- }
- puts "*"
- }
- for {set I -8} {$I <= 8} {incr I} {
- puts -nonewline [expr {$I==0?"+":"-"}]
- }
- puts ""
- for {set J 0} {$J >= -7} {incr J -1} {
- for {set I -8} {$I <= 8} {incr I} {
- puts -nonewline [expr {$I==0?"|":" "}]
- }
- puts ""
- }
on obtiendra le résultat suivant :
* | *
* | *
* | *
* | *
* | *
* | *
*|*
--------+--------
|
|
|
|
|
|
|
|
Voici un exemple montrant comment faire le graphique de la valeur absolue et la valeur entière :
- #! /usr/bin/tclsh
-
- for {set I 7} {$I >= 0} {incr I -1} {
- for {set J 0} {$J < 7-abs($I)} {incr J} { puts -nonewline " " }
- puts -nonewline "+"
- for {set J [expr {-abs($I)}]} {$J <= abs($I)} {incr J} { puts -nonewline [expr {$J==0?"|":" "}]}
- puts "±"
- }
- for {set I -8} {$I <= 8} {incr I} {
- puts -nonewline [expr {$I == 0?"+":"-"}]
- }
- puts ""
- for {set J 0} {$J >= -7} {incr J -1} {
- for {set I -8} {$I <= 8} {incr I} {
- if {($I + 1 == $J) && ($J <= 0)} {
- puts -nonewline "-"
- } else {
- puts -nonewline [expr {$I == 0?"|":" "}]
- }
- }
- puts ""
- }
- puts "Legende :"
- puts "+ Valeur absolue"
- puts "- Valeur entiere"
on obtiendra le résultat suivant :
+ | ±
+ | ±
+ | ±
+ | ±
+ | ±
+ | ±
+|±
--------+--------
-|
- |
- |
- |
- |
- |
- |
- |
Legende :
+ Valeur absolue
- Valeur entiere