Сложить два объекта класса - C#
Формулировка задачи:
Есть задача: создать на сишарпе класс (в этой предметной области ну совсем ничего не понимаю), и с экземплярами выполнять сложение, вычитание, умножение, сравнение. "Создать" эти экземпляры удалось. Даже преобразовать в дабл. Но хотелось бы чтоб это можно было сделать средствами класса (да и задача, вроде, именно так стоит). Кто может чего подсказать?
Заранее благодарю!
/* * Создать класс Fraction для работы с дробными числами. * Число должно быть представлено двумя полями: целая часть - длинное целое со знаком, * дробная часть - беззнаковое короткое число. * Реализовать арифметические операции сложения, вычитания, умножения и операции сравнения экземпляров класса. */ using System; namespace MyFraction { /* ОПИСАНИЕ КЛАССА */ public class Fraction { private long left; private ushort right; public Fraction(long left = 0, ushort right = 0) { this.left = left; this.right = right; } public long LeftPart { get { return left; } set { left = value; } } public ushort RightPart { get { return right; } set { right = value; } } public double Result { get { if (LeftPart < 0) { return LeftPart - (RightPart / Math.Pow(10, RightPart.ToString().Length)); } else { return LeftPart + (RightPart / Math.Pow(10, RightPart.ToString().Length)); } } } static long addLeft (long leftOne, long leftTwo) { return leftOne + leftTwo; } } /* ИСПОЛЬЗОВАНИЕ КЛАССА */ public class FractionDemo { public static void Main() { Fraction first = new Fraction(123, 5); Fraction second = new Fraction(-324, 432); double fst = first.Result; double scnd = second.Result; Console.WriteLine("{0} and {1}", fst, scnd); /*Console.WriteLine("Left: {0}, Right: {1}, Result: {2}", first.LeftPart, first.RightPart, first.Result); Console.WriteLine("Left: {0}, Right: {1}, Result: {2}", second.LeftPart, second.RightPart, second.Result);*/ Console.ReadLine(); } } }
Решение задачи: «Сложить два объекта класса»
textual
Листинг программы
public static Fraction operator +(Fraction c1, Fraction c2) { return new Fraction(c1.left + c2.left, Convert.ToUInt16(c1.right + c2.right)); } public static bool operator >(Fraction c1, Fraction c2) { return (c1.left > c2.left)&&(c1.right > c2.right); } public static bool operator <(Fraction c1, Fraction c2) { return (c1.left < c2.left) && (c1.right < c2.right); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д