Описать класс многочлена. Исправление ошибок - C#
Формулировка задачи:
Класс многочлена вида ax^2+bx+c.
код:
ошибка с выводом на экран. С положительными числами все нормально рис №1. С рис №2 пробуем ввести отрицательное число идет наслоение знаков. Помогите исправить. Т.е. когда отриц. число становится пример +-1 как изменить чтоб и отрицательными числами было только При значении a, b, c = -1 было ( (-1x^2)-1x-1) А при a, b, c = 1 было 1x^2+1x+1. Помогите пожалуйста.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Complex
{
public Complex(int a, int b, int c)
{
this.a = a;
this.b = b;
this.c = c;
}
public static Complex operator +(Complex left, Complex right)
{
return new Complex(left.a + right.a, left.b + right.b, left.c + right.c);
}
public static Complex operator *(Complex left, Complex right)
{
return new Complex(left.a * right.a, left.b * right.b, left.c * right.c);
}
public static Complex operator -(Complex left, Complex right)
{
return new Complex(left.a - right.a, left.b - right.b, left.c - right.c);
}
public void Passport()
{
Console.WriteLine("{0}x^2 + {1}x + {2}", a, b, c);
}
int a, b, c;
}
class Program
{
static void Main(string[] args)
{
Console.Write("Введите a1: ");
int r1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите b1: ");
int i1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите C1: ");
int C1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите a2: ");
int r2 = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите b2: ");
int i2 = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите C2: ");
int C2 = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите X: ");
double X = Convert.ToDouble(Console.ReadLine());
double z = r1 * Math.Pow(X, 2) + i1 * X + C1;
double v = r2 * Math.Pow(X, 2) + i2 * X + C2;
Console.WriteLine("Введенные многочлены: ");
Complex first = new Complex(r1, i1, C1);
Complex second = new Complex(r2, i2, C2);
first.Passport();
second.Passport();
{ Console.WriteLine("При X = {0} ", X); }
{ Console.WriteLine("Значение первого многочлена: {0,4} ", z); }
{ Console.WriteLine("Значение второго многочлена: {0,4} ", v); }
Console.WriteLine("\nДля продолжения нажмите [Enter]");
Console.ReadLine();
Console.Clear();
Console.WriteLine("Сложение многочленов:");
(first + second).Passport();
Console.WriteLine("Умножение многочленов:");
(first * second).Passport();
Console.WriteLine("Вычитание многочленов:");
(first - second).Passport();
Console.WriteLine("\nДля выхода из программы нажмите [Enter]");
Console.ReadLine();
}
}
}Решение задачи: «Описать класс многочлена. Исправление ошибок»
textual
Листинг программы
public void Passport()
{
Console.WriteLine(string.Format("{0}x^2 + {1}x + {2}", -1, -2, -3).Replace("+ -", "-"));
}