Класс "обыкновенная дробь" - 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);
    }
}

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


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

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

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