Объектно-ориентированное программирование на С#. Андрианова А.А - 103 стр.

UptoLike

103
}
Console.WriteLine("x={0}", x1);
}
// конструктор
public Equation_1(double b1,double c1):base(c1)
{
b = b1;
}
}
// производный класс уравнения 2-ого порядка
// (квадратного уравнения)
class Equation_2: Equation_1
{
// по сравнению с линейным уравнением добавляется
// коэффициент a
protected double a;
// уравнение может иметь два корня
protected double x2;
// переопределенный виртуальный метод решения уравнения
public override void Solve()
{
double disc = b * b - 4 * a * c;
if (disc < 0.0)
count = 0;
else if (disc == 0.0)
{
count = 1;
x1 = -b / (2 * a);
x2 = x1;
}
else
{
count = 2;
x1 = (-b + Math.Sqrt(disc)) / (2 * a);
x2 = (-b - Math.Sqrt(disc)) / (2 * a);
}
PrintSolution();
}
// переопределенный виртуальный метод печати
// результатов решения уравнения
override public void PrintSolution()
{
Console.WriteLine("{0} x^2 {1} x + {2} = 0",
a, b, c);
if (count == -1)
{
base.PrintSolution();
return;
        }
        Console.WriteLine("x={0}", x1);
    }

    // конструктор
    public Equation_1(double b1,double c1):base(c1)
    {
       b = b1;
    }
}

// производный класс уравнения 2-ого порядка
// (квадратного уравнения)
class Equation_2: Equation_1
{
   // по сравнению с линейным уравнением добавляется
   // коэффициент a
   protected double a;
   // уравнение может иметь два корня
   protected double x2;

    // переопределенный виртуальный метод решения уравнения
    public override void Solve()
    {
       double disc = b * b - 4 * a * c;

        if (disc < 0.0)
           count = 0;
        else if (disc == 0.0)
             {
                count = 1;
                x1 = -b / (2 * a);
                x2 = x1;
             }
             else
             {
                count = 2;
                x1 = (-b + Math.Sqrt(disc)) / (2 * a);
                x2 = (-b - Math.Sqrt(disc)) / (2 * a);
             }
        PrintSolution();
    }

    // переопределенный виртуальный метод печати
    // результатов решения уравнения
    override public void PrintSolution()
    {
        Console.WriteLine("{0} x^2 {1} x + {2} = 0",
                                                 a, b, c);
        if (count == -1)
        {
           base.PrintSolution();
           return;
                                                              103