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