Класс "обыкновенная дробь" - C#
Формулировка задачи:
Создать класс "обыкновенная дробь", поля класса-числитель и знаменатель. Методы класса: определение обратной дроби, вывод дроби. В классе предусмотреть методы перегрузки операций: сложение и вычитание дробей
Решение задачи: «Класс "обыкновенная дробь"»
textual
Листинг программы
using System; /* * Создать класс "обыкновенная дробь", поля класса-числитель и знаменатель. * Методы класса: определение обратной дроби, вывод дроби. * В классе предусмотреть методы перегрузки операций: сложение и вычитание дробей. */ class Fraction { int numerator, denominator; public Fraction(int numerator, int denominator) { int gcd = Gcd(numerator, denominator); this.numerator = numerator / gcd; this.denominator = denominator / gcd; if (this.denominator < 0) { this.numerator = -this.numerator; this.denominator = -this.denominator; } } public Fraction Inverse() { return new Fraction(denominator, numerator); } public override string ToString() { return string.Format("{0}/{1}", numerator, denominator); } // Наибольший общий делитель public static int Gcd(int x, int y) { if (x != 0) return Gcd(y % x, x); return y; } // Наименьшее общее кратное public static int Lcm(int x, int y) { return (x / Gcd(x, y)) * y; } public static Fraction operator +(Fraction left, Fraction right) { int lcm = Lcm(left.denominator, right.denominator); return new Fraction(left.numerator * lcm / left.denominator + right.numerator * lcm / right.denominator, lcm); } public static Fraction operator -(Fraction left, Fraction right) { return left + new Fraction(-right.numerator, right.denominator); } } class Program { static void Main() { Fraction a = new Fraction(4, 10); Fraction b = new Fraction(3, 4); Console.WriteLine("a = {0}", a); Console.WriteLine("b = {0}", b); Console.WriteLine("1/a = {0}", a.Inverse()); Console.WriteLine("1/b = {0}", b.Inverse()); Console.WriteLine("a + b = {0}", a + b); Console.WriteLine("a - b = {0}", a - b); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д