Описать класс "Квадратное уравнение" с перегрузкой конструкторов - C#
Формулировка задачи:
Задание: Описать класс “Квадратное уравнение”, методами которого представить перегрузку конструкторов. В основной программе продемонстрируйте работу с перегруженными конструкторами.
Вопрос: Если я в основной программе буду вызывать экземпляр класса не с тремя параметрами, а с двумя или одним, то и метод Run должен считать по другому и ToString выводить другое, ведь уравнение перестанет быть квадратным. Помогите привести решение в соответствие с заданием. Как их перегрузить?
namespace квадрат_ур
{
class Equation
{
private double a, b, c;
private double x1, x2;
private bool f;
public Equation(double a, double b, double c)
{
this.a = a;
this.b = b;
this.c = c;
Run();
}
public Equation(double b, double c)
{
this.a = 0;
this.b = b;
this.c = c;
Run();
}
public Equation(double c)
{
this.a = 0;
this.b = 0;
this.c = c;
Run();
}
public void Run()
{
double d = b * b - 4 * a * c;
f = (d >= 0);
x1 = (-1 * b + Math.Sqrt(d)) / (2 * a);
x2 = (-1 * b - Math.Sqrt(d)) / (2 * a);
}
public override string ToString()
{
return "Корни квадратного уравнения " + (f ? "x1=" + x1 + "; x2=" + x2 + ";" : "не действительные");
}
}
class Program
{
static void Main(string[] args)
{
Equation l = new Equation(1, 1, -6);
Console.WriteLine(l.ToString());
Equation ll = new Equation(10, 1, 10);
Console.WriteLine(ll.ToString());
Console.ReadLine();
}
}
}Решение задачи: «Описать класс "Квадратное уравнение" с перегрузкой конструкторов»
textual
Листинг программы
namespace квадрат_ур
{
class Equation
{
private double a, b, c;
private double x1, x2;
private bool f;
public Equation(double a, double b, double c)
{
this.a = a;
this.b = b;
this.c = c;
}
public Equation(double a, double b)
{
this.a = a;
this.b = b;
this.c = 0;
}
public Equation(double a)
{
this.a = a;
this.b = 0;
this.c = 0;
}
public void Run()
{
double d = b * b - 4 * a * c;
f = (d >= 0);
x1 = (-1 * b + Math.Sqrt(d)) / (2 * a);
x2 = (-1 * b - Math.Sqrt(d)) / (2 * a);
Console.WriteLine("Корни квадратного уравнения " + (f ? "x1=" + x1 + "; x2=" + x2 + ";" : "не действительные"));
return;
}
}
class Program
{
static void Main(string[] args)
{
Equation l = new Equation(1, 1, -6);
l.Run();
Equation ll = new Equation(10, 1, 10);
ll.Run();
Equation k = new Equation(1, -4);
k.Run();
Equation kk = new Equation(1);
kk.Run();
Console.ReadLine();
}
}
}