Вот самое задание:
Описать класс для работы с многочленами от одной переменной, имеющими вещественные коэффициенты.Предусмотреть методы для:
Напишите программу, которая демонстрирует работу с данным классом, решая следующие задачи:
Вот мой класс:
class Polynome
{
public int Degree { get; private set; }
private List<double> Coefficients = new List<double>();
public Polynome(int Degree, List<double> Coefficients)
{
this.Degree = Degree;
this.Coefficients = Coefficients;
}
public Polynome() { }
public void SetDegree()
{
Console.Write("Enter degree of polynome: ");
string s = Console.ReadLine();
while (Int32.TryParse(s, out Int32 d) != true || d < 1)
{
Console.Write("Error! Plese try again: ");
s = Console.ReadLine();
}
Degree = Int32.Parse(s);
}
public void SetCoefficients()
{
Console.WriteLine("Enter coefficients from left to right!");
for (int i = 0; i <= Degree; i++)
{
if (i != Degree)
{
Console.Write($"Enter the {i + 1} coefficient: ");
}
else
{
Console.Write("Enter free member: ");
}
string s = Console.ReadLine();
while(double.TryParse(s, out double d) != true)
{
Console.Write("Error! Plese try again: ");
s = Console.ReadLine();
}
Coefficients.Add(double.Parse(s));
}
Console.WriteLine();
}
public double CalculatePolynome(int X)
{
double Res = 0;
for (int i = Degree, j = 0; i >= 0; i--, j++)
{
Res += Math.Pow(X, i) * Coefficients.ElementAt(j);
}
return Res;
}
public Polynome Derivative()
{
Polynome R = new Polynome();
for (int i = 0, j = Degree; i < Degree; i++, j--)
{
R.Coefficients.Add(j * Coefficients.ElementAt(i));
}
R.Degree = Degree - 1;
return R;
}
public void Display()
{
for (int i = 0; i <= Degree; i++)
{
if (i == Degree)
{
Console.Write($"{Coefficients.ElementAt(i)}");
break;
}
Console.Write($"{Coefficients.ElementAt(i)}X^{Degree - i} ");
if (i != Degree && (Coefficients.ElementAt(i + 1) >= 0))
{
Console.Write("+ ");
}
}
Console.Write(" = 0");
Console.WriteLine();
}
public void FoldPolynomials(Polynome P)
{
Degree = P.Degree > Degree ? P.Degree : Degree;
if (P.Degree > Degree)
{
while (P.Degree != Degree)
{
Coefficients.Insert(0, 0);
Degree++;
}
}
else if (P.Degree < Degree)
{
while (P.Degree != Degree)
{
P.Coefficients.Insert(0, 0);
P.Degree++;
}
}
for (int i = 0; i <= Degree; i++)
{
Coefficients.Add(P.Coefficients.ElementAt(i) + Coefficients.ElementAt(i));
}
}
public void SubtractPolynomials(Polynome Subtrahend)
{
Degree = Degree > Subtrahend.Degree ? Degree : Subtrahend.Degree;
if (Degree > Subtrahend.Degree)
{
while (Degree != Subtrahend.Degree)
{
Subtrahend.Coefficients.Insert(0, 0);
Subtrahend.Degree++;
}
}
else if (Degree < Subtrahend.Degree)
{
while (Degree != Subtrahend.Degree)
{
Coefficients.Insert(0, 0);
Degree++;
}
}
for (int i = 0; i <= Degree; i++)
{
Coefficients.Add(Coefficients.ElementAt(i) - Subtrahend.Coefficients.ElementAt(i));
}
}
}
Пожалуйста укажите мне на мои ошибки в плане ООП. Заранее спасибо!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Поставлена последняя версия VS Community 2019Компилирую простенькую консольную программу
когда пишу dotnet run выдет ошибку: