Section courante

A propos

Section administrative du site

ABS

Absolue
PL/1

Syntaxe

Y=ABS(expression);

Paramètres

Nom Description
expression Ce paramètre permet d'indiquer l'expression contenant un 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.

Algorithme

MODULE ABS(valeur)
   SI valeur < 0 ALORS
      RETOURNE - valeur
   SINON
      RETOURNE valeur
   FIN SI

Exemples

Voici un exemple montrant une utilisation de la valeur absolue avec des parenthèses :

  1.  Corps: PROC options(main);  
  2.     display('Abs(9*(-7))=' || abs(9*(-7))); 
  3.  END Corps;

on obtiendra le résultat suivant :

Abs(9*(-7))=63

Voici un exemple montrant une utilisation plus classique de la valeur absolue :

  1.  Corps: PROC options(main);  
  2.      display('Abs(1)=' || abs(1)); 
  3.     display('Abs(-1)=' || abs(-1)); 
  4.     display('Abs(30.2)=' || abs(30.2)); 
  5.     display('Abs(-35.4)=' || abs(-35.4)); 
  6.  END Corps;

on obtiendra le résultat suivant :

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

Voici un exemple montrant la différence de résultats avec la fonction «SGN» du Basic :

  1.  Corps: PROC options(main);  
  2.      display('abs(1)=' || abs(1) || 
  3.              ', sgn(1)=' || sign(1));
  4.      display('abs(-1)=' || abs(-1) || 
  5.              ', sgn(-1)=' || sign(-1));
  6.      display('abs(0)=' || abs(0) || 
  7.              ', sgn(0)=' || sign(0));
  8.      display('abs(5)=' || abs(5) || 
  9.              ', sgn(5)=' || sign(5));
  10.      display('abs(10)=' || abs(10) || 
  11.              ', sgn(10)=' || sign(10));
  12.      display('abs(-17)=' || abs(-17) || 
  13.              ', sgn(-17)=' || sign(-17));
  14.      display('abs(27.4)=' || abs(27.4) || 
  15.              ', sgn(27.4)=' || sign(27.4));
  16.      display('abs(-12.13)=' || abs(-12.13) || 
  17.              ', sgn(-12.13)=' || sign(-12.13));
  18.  END Corps;

on obtiendra le résultat suivant :

abs(1)=1, sgn(1)=1
abs(-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 :

  1.  Corps: PROC options(main);  
  2.      DECLARE (A,B) fixed;
  3.      A = -10;
  4.      B = 6;
  5.      IF abs(A) > abs(B) THEN DO;
  6.         display('|a| > |b|');
  7.      END;
  8.      IF abs(A) = abs(B) THEN DO;
  9.         display('|a| = |b|');
  10.      END;
  11.      IF abs(A) < abs(B) THEN DO;
  12.         display('|a| < |b|');
  13.      END;
  14.  END Corps;

on obtiendra le résultat suivant :

|a| > |b|


Dernière mise à jour : Dimanche, le 12 octobre 2014