Класс Полином и операции над ним - C#

Узнай цену своей работы

Формулировка задачи:

Проблема в том, что программа считает неправильно при сложении полиномов ,умножении, вычитании. где ошибка? Само задание: 1.Необходимо создать класс Полином (от одной переменной) в котором задается степень многочлена и массив коэффициентов, вводимых из консоли. 2.Создать для этого класса методы для вычисления значения полинома для заданного аргумента, операции сложения, вычитания и умножения многочлена с получением нового объекта-многочлена, вывод на экран описания многочлена.
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();
        }           
    }
}

Решение задачи: «Класс Полином и операции над ним»

textual
Листинг программы
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;
        }

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


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

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

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