Описать класс "Квадратное уравнение" - C#
Формулировка задачи:
Вот задание: Створити клас "Квадратне рівняння", корені якого - властивості з доступом для читання. Тип властивостей повинен бути null-сумісним. Додати також індексатор для доступу до коренів за індексом. Основна функція, яка здійснює розв'язання рівняння, повинна повертати кількість коренів, або -1. якщо коренів безмежна кількість.
Моя проблема в том, что я не понимаю это задание. Что значит, корни которого свойтва... и т.д. Что значит "свойства"?!
А, нет, в свойствах примерно разобралась.... Хотя как написать программу полностью так и не поняла))
Решение задачи: «Описать класс "Квадратное уравнение"»
textual
Листинг программы
using System;
namespace ovr
{
class Program
{
private static void Main(string[] args)
{
Solver s=new Solver(2,-3,1);
if(s.Count==-1)
Console.WriteLine("No solution");
for (int i = 0; i < s.Count; i++)
{
Console.WriteLine(s[i]);
}
Console.ReadKey();
}
}
class Solver
{
public double[] Result { get; set; }
public int? Count { get; set; }
public Solver(double a,double b,double c)
{
double d = b*b - 4*a*c;
if (Math.Abs(d) < 0.000001)
{
Result=new double[]{-b/(2*a)};
Count = 1;
}
else if (d > 0)
{
Count = 2;
var x1 = (-b + Math.Sqrt(d))/(2*a);
var x2 = (-b - Math.Sqrt(d)) / (2 * a);
Result=new double[]{x1,x2};
}
else
{
Result=new double[]{};
Count = -1;
}
}
public double this[int index]
{
get { return Result[index]; }
}
}
}