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