Класс Полином со степенью многочлена и массивом коэффициентов - 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();
}
}
}