Advertisement
kklevi

quadraticequation

Dec 3rd, 2021
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.09 KB | None | 0 0
  1. namespace Masodfoku
  2. {
  3.     internal class Equation
  4.     {
  5.         private double a, b, c;
  6.         public Equation(double a, double b, double c)
  7.         {
  8.             this.a = a; this.b = b; this.c = c;
  9.         }
  10.  
  11.         public double FirstDegreeSolution { get; set; }
  12.  
  13.         public double[] SecondDegreeSolution { get; set; }
  14.  
  15.         public string ComplexSolution { get; set; }
  16.        
  17.  
  18.         //Eldönti, hogy másodfokú-e az egyenlet. Ha igen, true
  19.         //értékkel tér vissza.
  20.         public bool SecondDegree()
  21.         {
  22.             return this.a != 0;
  23.         }
  24.  
  25.         //Eldönti, hogy az egyenlet megoldása csak komplex szám
  26.         //lehet-e. Ehhez az kell, hogy a diszkrimináns negatív legyen.
  27.         public bool Complex()
  28.         {
  29.             return Math.Pow(this.b, 2) - 4 * this.a * this.c < 0;
  30.         }
  31.  
  32.         private void EquationHelper()
  33.         {
  34.             if (Complex())
  35.             {
  36.                 SolveComplex();
  37.             }
  38.             else if (SecondDegree())
  39.             {
  40.                 SolveQuadratic();
  41.             }
  42.             else if(this.a==0)
  43.             {
  44.                 SolveSimple();
  45.             }
  46.             throw new ArgumentException();
  47.         }
  48.  
  49.         private void SolveQuadratic()
  50.         {
  51.             double partOne = -this.b;
  52.             double partTwo = Math.Sqrt(Math.Pow(this.b, 2) - 4 * this.a * this.c);
  53.             double partThree = 2 * this.a;
  54.  
  55.             this.SecondDegreeSolution = new double[] { (partOne + partTwo) / partThree, (partOne - partTwo) / partThree };
  56.         }
  57.  
  58.         private void SolveComplex()
  59.         {
  60.             double partOne = -this.b / (2 * this.a);
  61.             double partTwoHelper = Math.Pow(this.b, 2) - 4 * this.a * this.c;
  62.             double rootPartTwo = Math.Sqrt(-partTwoHelper);
  63.             double partTwo = rootPartTwo / (2 * this.a);
  64.             this.ComplexSolution= String.Format("{0}+/-{1}i", partOne, partTwo);
  65.         }
  66.  
  67.         private void SolveSimple()
  68.         {
  69.             this.FirstDegreeSolution = -this.b / (2 * this.a);
  70.         }
  71.     }
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement