PERL   36

journeau Complexe

Guest on 17th May 2022 01:26:27 AM

  1. #!/usr/local/bin/perl
  2.  
  3. # Florian JOURNEAU
  4. # ----------------------
  5.  
  6. use strict;
  7.  
  8. use Math::Complex;
  9.  
  10. print("Equation de type a * X^2 + b * X + C = 0\n");
  11.  
  12. print("\nDonnez la valeur de la partie reelle de a : ");
  13. my $aRE = <STDIN>;
  14. print("Donnez la valeur dans la partie imaginaire de a : ");
  15. my $aIM = <STDIN>;
  16.  
  17. print("\nDonnez la valeur de la partie reelle de b : ");
  18. my $bRE = <STDIN>;
  19. print("Donnez la valeur dans la partie imaginaire de b : ");
  20. my $bIM = <STDIN>;
  21.  
  22. print("\nDonnez la valeur de la partie reelle de c : ");
  23. my $cRE = <STDIN>;
  24. print("Donnez la valeur dans la partie imaginaire de c : ");
  25. my $cIM = <STDIN>;
  26.  
  27. my $a = cplx($aRE, $aIM);
  28. my $b = cplx($bRE, $bIM);
  29. my $c = cplx($cRE, $cIM);
  30.  
  31. # Discriminant
  32.  
  33. my $d = $b**2 - 4*$a*$c;
  34. print("\nDiscriminant = $d \n");
  35.  
  36. my($r1, $r2);
  37. if ($d > 0){
  38.   $r1 = (-$b + sqrt($d))/(2*$a);  
  39.   $r2 = (-$b - sqrt($d))/(2*$a);
  40.   print("Discriminant positif, racine reelles");
  41.  
  42. }elsif ($d==0){
  43.   $r1 = -$b/(2*$a);
  44.   $r2 = $r1;
  45.   print("Discriminant nul, racines relles confondues");
  46.  
  47. }else{
  48.   $r1 = (-$b + (root($d, 2))[0])/(2*$a);
  49.   $r2 = (-$b - (root($d, 2))[0])/(2*$a);
  50.   print("Discriminant negatif, racines complexes");
  51. }
  52.  
  53. print("\n\nRacines de l'equation : $r1 et $r2 \n");
  54.  $r1 = (-$b + (root($d, 2))[0])/(2*$a);

Raw Paste


Login or Register to edit or fork this paste. It's free.