Разработать класс, перегрузить в нем операции сложения, вычитания и деления - C#

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

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

Пожалуйста помогите решить задачу: Требуется разработать класс, перегрузить в нем указанные операции, написать программу, использующую этот класс. В методах класса по необходимости следует использовать исключения. С помощью коллекций. Реализовать операции +, -, / десятичного числа с любым количеством цифр в целой и дробной части.

Решение задачи: «Разработать класс, перегрузить в нем операции сложения, вычитания и деления»

textual
Листинг программы
using System;
 
 
namespace ConsoleApplication13
{
    internal class Polynome
    {
        private readonly int[] _a;
 
 
        public Polynome(string length)
        {
            _a = new int[Convert.ToInt32(length)];
        }
 
 
        public Polynome(params int[] koef)
        {
            int length = koef.Length;
            _a = new int[length];
            for (int i = 0; i < length; i++)
                _a[i] = koef[length - i - 1];
        }
 
 
        public int Length
        {
            get { return _a.Length; }
        }
 
 
        public int this[int i]
        {
            get { return _a[i]; }
            set { _a[i] = value; }
        }
 
 
        public override string ToString()
        {
            int i = 0;
            var result = "";
            foreach (var x in _a)
            {
                if (x != 0)
                    result = " + " + ((x == 1 ? "" : x.ToString()) + (i > 1 ? "x^" + i : i == 1 ? "x" : "")) + result;
                i++;
            }
            return result.Substring(3, result.Length - 3);
        }
 
 
        public static Polynome operator +(Polynome lhs, Polynome rhs)
        {
            var polynome = new Polynome(Math.Max(lhs.Length, rhs.Length).ToString());
            for (int i = 0; i < lhs.Length; i++)
                polynome[i] = lhs[i];
            for (int i = 0; i < rhs.Length; i++)
                polynome[i] += rhs[i];
            return polynome;
        }
 
 
 
        public static Polynome operator *(Polynome lhs, Polynome rhs)
        {
            var polynome = new Polynome((lhs.Length + rhs.Length - 1).ToString());
            for (int i = 0; i < lhs.Length; i++)
                for (int j = 0; j < rhs.Length; j++)
                    polynome[i + j] += lhs[i] * rhs[j];
            return polynome;
        }
    }
 
 
    internal class Program
    {
        private static void Main()
        {
            var a = new Polynome(1, 2, 3);
            var b = new Polynome(1, 2);
            var c = new Polynome(5);
            Console.WriteLine("({0}) + ({1}) = {2}", a, b, a + b);
            Console.WriteLine("({0}) * ({1}) = {2}", a, b, a * b);
            Console.WriteLine("({0}) * ({1}) * ({2}) = {3}", a, b, c, a * b * c);
            Console.ReadKey();
        }
    }
}

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


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

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

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