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

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


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

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

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