Описать класс многочлена. Исправление ошибок - 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("+ -", "-")); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д