Класс Полином со степенью многочлена и массивом коэффициентов - C#
Формулировка задачи:
1.Необходимо создать класс Полином (от одной переменной) в котором задается степень многочлена и массив коэффициентов, вводимых из консоли.
2.Создать для этого класса методы для вычисления значения полинома для заданного аргумента, операции сложения, вычитания и умножения многочлена с получением нового объекта-многочлена, вывод на экран описания многочлена.
Ребят, помогите доделать программу, пожалуйста. класс создала, но неправильно выводит. и помогите со вторым заданием (((
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Mnogochlen { private int step; //степень полинома private int[] koef; //массив коэффициентов public Mnogochlen(int[] k, int s) { koef = k; step = s; } public void show() //вывод на экран (например должно быть 1x+3x^2+6x^3) { StringBuilder sb = new StringBuilder(); for(int i=0; i<=step; i++) sb.Append( koef[i] + "x^" + (step-i)); Console.WriteLine(sb); } } class Program { static void Main(string[] args) { int step; int[] koef; Console.WriteLine("введите степень многочлена"); step = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите размер массива"); int[] koef = new int[Int32.Parse(Console.ReadLine())]; Console.WriteLine("Введите числа в массиве"); for (int i = 0; i < koef.Length; i++) { Console.WriteLine("arr" + i.ToString() + " ="); koef[i] = Int32.Parse(Console.ReadLine()); } Mnogochlen m = new Mnogochlen(koef, step); m.show(); Console.ReadKey(); } } }
Решение задачи: «Класс Полином со степенью многочлена и массивом коэффициентов»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication3 { class Mnogochlen { int[] koef; //массив коэф-ов int step; //значение степени полинома public Mnogochlen(int[] k, int s) { koef = k; step = s; } //сложение полиномов public static Mnogochlen operator +(Mnogochlen A, Mnogochlen B) { int D1 = A.step; int[] M1 = new int[D1 + 1]; Mnogochlen C = new Mnogochlen(M1, D1); for (int i = 0; i < A.step + 1; i++) { C.koef[i] = A.koef[i] + B.koef[i]; } return C; } //вычитание полиномов public static Mnogochlen operator -(Mnogochlen A, Mnogochlen B) { int D1 = A.step; int[] M1 = new int[D1 + 1]; Mnogochlen C = new Mnogochlen(M1, D1); for (int i = 0; i < A.step + 1; i++) { C.koef[i] = A.koef[i] - B.koef[i]; } return C; } //умножение полиномов public static Mnogochlen operator *(Mnogochlen A, Mnogochlen B) { int D1 = A.step; int[] M1 = new int[D1 + 1]; Mnogochlen C = new Mnogochlen(M1, D1); for (int i = 0; i < A.step + 1; i++) { C.koef[i] = A.koef[i] * B.koef[i]; } return C; } //вывод полинома public void show() { for (int i = 0; i < step; i++) { Console.Write("+" + koef[i] + "x^" + (step - i)); } //return 0; } } class Program { static void Main(string[] args) { //ввод первого многочлена int step; int[] koef; Console.WriteLine("Введите степень первого многочлена:"); step = Convert.ToInt32(Console.ReadLine()); int Val = 0; int[] Matrix1 = { 1, 2, 3, 4 }; Console.WriteLine("Введите размер первого массива"); koef = new int[Int32.Parse(Console.ReadLine())]; Console.WriteLine("Введите матрицу коэффициентов первого многочлена:"); for (int i = 0; i < koef.Length; i++) { koef[i] = Int32.Parse(Console.ReadLine()); } Mnogochlen A = new Mnogochlen(koef, step); //ввод первого многочлена int step2; int[] koef2; Console.WriteLine("Введите степень второго многочлена:"); step2 = Convert.ToInt32(Console.ReadLine()); int[] Matrix2 = { 1, 2, 3, 4 }; Console.WriteLine("Введите размер второго массива"); koef2 = new int[Int32.Parse(Console.ReadLine())]; Console.WriteLine("Введите матрицу коэффициентов второго многочлена:"); for (int i = 0; i < koef2.Length; i++) { koef2[i] = Int32.Parse(Console.ReadLine()); } Mnogochlen B = new Mnogochlen(koef2, step2); //вывод многочленов Console.Write("A= "); A.show(); Console.WriteLine("\n"); Console.Write("B= "); B.show(); //вывод операций A = new Mnogochlen(Matrix1, step); B = new Mnogochlen(Matrix2, step2); Mnogochlen C = A + B; Mnogochlen D = A - B; Mnogochlen E = A * B; Console.Write("A+B= "); C.show(); Console.Write("A-B= "); D.show(); Console.Write("A*B= "); E.show(); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д