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