'>

Calcul de la valeur absolue d'un nombre réel

   Objectif : Ecrire un programme C# serva nt à calculer la valeur absolue
d'un nombre réel x à partir de la défini tion de la valeur absolue. La valeur
absolue du nombre réel x es t le nombre réel |x| :  
  |x| = x , si x  ≥ 0
  |x|  = -x si x < 0  
  
Spécifications de l’algorithme : 
 lire ( x ); 
 si  x  ≥   0 alors  écrire( ' | x|   =', x) 
 sinon  écrire( ' |x |   =', -x) 
 fsi 

Implantation en C# 
Ecrivez avec les deux instructions différentes " if...else.. " et "...?.. : ... ",  le programme C#
complet correspondant à l'affichage ci-dessous : 
  

Entrez un nombre x = -45 
    |x |   = 45

Proposition de squelette de classe C# à implanter : 

class ApplicationValAbsolue  {  
       static void Main (string[ ] args) {  
         …….. 
       }  
    } 
La méthode  Main calcule et affiche la valeur absolue. 

Classe C# solution

Une classe C# solution du problème avec un  if...else  : 
using System; 
namespace  CsExosAlgo1 { 
class  ApplicationValAbsolue1  {
    static void Main (string[ ] args) {  
         double  x; 
         System.Console.Write("Entrez un nombre x = "); 
         x =  Double .Parse( System.Console.ReadLine( ) ) ; 
         if  (x<0) System.Console.WriteLine("|x| = "+(-x)); 
         else  System.Console.WriteLine("|x| = "+x); 
    } 
  }  
}
  
Explication sur l'instruction : 
 x = Double.Parse ( System.Console.ReadLine( ) ) ;
Le gestionnaire d'entrée sortie C# à partir de la classe Console renvoie à travers la méthode
ReadLine() une valeur saisie au  clavier de type string. Il est donc obligatoire si l'on veut
récuperer un nombre réel au clavier (ici double  x;) de transtyper le ré el tapé correctement sous
forme de chaîne au clavier, et de le convertir en un réel de type double  ici, grâce à la méthode
Parse de la classe enveloppe  Double  du type  double . 
Remarquons que cette version simple ne protège  pas des erreurs de saisie. Pour être plus
robuste le programme devrait intercepter l'excepti on levée par une éventue lle erreur de saisie
signalée par une exception du type FormatException : 
  
try { 
  x = Double.Parse( System.Console.ReadLine( ) ) ; 

catch ( FormatException ) {   //...traitement de l'erreur de saisie  }

Une classe C# solution du problème avec un  "... ? ... : ..." : 
using System; 
namespace  CsExosAlgo1 

class ApplicationValAbsolue2  {
static void Main (string[ ] args) { 
         double  x; 
         System.Console.Write("Entrez un nombre x = "); 
         x =  Double .Parse( System.Console.ReadLine( ) ) ; 
         System.Console.WriteLine("|x| = "+ (x < 0  ?  -x  : x) ); 
   } 
}  
}

Publié par Drupal french Study