Описать класс многочлена. Исправление ошибок - C#

Узнай цену своей работы

Формулировка задачи:

Класс многочлена вида ax^2+bx+c. код:
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();
        }
    }
}
ошибка с выводом на экран. С положительными числами все нормально рис №1. С рис №2 пробуем ввести отрицательное число идет наслоение знаков. Помогите исправить. Т.е. когда отриц. число становится пример +-1 как изменить чтоб и отрицательными числами было только При значении a, b, c = -1 было ( (-1x^2)-1x-1) А при a, b, c = 1 было 1x^2+1x+1. Помогите пожалуйста.

Решение задачи: «Описать класс многочлена. Исправление ошибок»

textual
Листинг программы
public void Passport()
{
     Console.WriteLine(string.Format("{0}x^2 + {1}x + {2}", -1, -2, -3).Replace("+ -", "-"));
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 5 из 5
Похожие ответы