Консультация № 200852
18.05.2021, 13:42
0.00 руб.
0 0 0
Здравствуйте! У меня возникли сложности с таким вопросом:
помогите пожалуйста возникла такая проблема у меня не правильно происходит умножение многочлена если кто знает помогите решить проблему
вот код консоль C#:
using System;
using System.Collections.Generic;

namespace ConsoleApp2
{
class Program
{
static void Main()
{
Polynomial pol = new Polynomial(1, 4, 3);
Polynomial pol2 = new Polynomial(2, 8, 6);
pol.Calculation();
pol2.Calculation();
Console.WriteLine("Сумма");
(pol + pol2).Print();
Console.WriteLine("Разность");
(pol - pol2).Print();
Console.WriteLine("Умножение");
(pol * pol2).Print();
Console.ReadKey();
}
}
class Polynomial
{
private double a1;
private double b1;
private double c1;

public double A
{
get { return a1; }
set { a1 = value; }
}

public double B
{
get { return b1; }
set { b1 = value; }
}

public double C
{
get { return c1; }
set { c1 = value; }
}

public Polynomial() { }

public Polynomial(double a, double b, double c)
{
a1 = a;
b1 = b;
c1 = c;
}

public void Calculation()
{
double d = b1 * b1 - 4 * a1 * c1;
if (d >= 0)
{
d = Math.Sqrt(d);
double x1, x2;
x1 = (-b1 + d) / a1 * 2;
x2 = (-b1 - d) / a1 * 2;
Print();
Console.WriteLine("Корни уравнения\nx1 = {0} \nx2 = {1}", x1, x2);
}
else Console.WriteLine("Дискриминант не существует.");
}

public static Polynomial operator +(Polynomial pol1, Polynomial pol2)
{
Polynomial pol = new Polynomial
{
a1 = pol1.a1 + pol2.a1,
b1 = pol1.b1 + pol2.b1,
c1 = pol1.c1 + pol2.c1
};
return pol;
}

public static Polynomial operator -(Polynomial pol1, Polynomial pol2)
{
Polynomial pol = new Polynomial
{
a1 = pol1.a1 - pol2.a1,
b1 = pol1.b1 - pol2.b1,
c1 = pol1.c1 - pol2.c1
};
return pol;
}

public static Polynomial operator *(Polynomial pol1, Polynomial pol2)
{
Polynomial pol = new Polynomial
{
a1 = pol1.a1 * pol2.a1,
b1 = pol1.b1 * pol2.b1,
c1 = pol1.c1 * pol2.c1
};
return pol;
}

public void Print()
{
if (a1 != 0) Console.Write("{0}x^2", a1);
if (b1 > 0) Console.Write("+{0}x", b1);
else if (b1 < 0) Console.Write("{0}x", b1);
if (c1 > 0) Console.Write("+" + c1);
else if (c1 < 0) Console.Write(c1);
Console.WriteLine();
}

}
}

Обсуждение

Форма ответа