Реализовать приложение "Калькулятор для обыкновенных дробей" - C#
Формулировка задачи:
Реализовать приложение "Калькулятор для обыкновенных дробей".
Спроектировать и реализовать класс Обыкновенная дробь. С помощью данного класса можно выполнять арифметические действия над обыкновенными дробями. Использовать данный класс для создания приложения "калькулятора обыкновенных дробей", в котором должны быть доступны операции сложения, вычитания, умножения и деления для обыкновенных дробей, введенные пользователем. Результатом всех операций должна быть обыкновенная дробь. Например: 1/3 + 1/3 = 2/3
Решение задачи: «Реализовать приложение "Калькулятор для обыкновенных дробей"»
textual
Листинг программы
using System; namespace ConsoleApplication171 { class Program { static void Main(string[] args) { var f1 = new Fraction(3, 8); var f2 = new Fraction(5, 6); var f3 = f1 + f2; Console.WriteLine("{0} + {1} = {2}", f1, f2, f3); Console.ReadLine(); } } public struct Fraction { public int N; public int D; public Fraction(int numerator, int denominator) { N = numerator; D = denominator; } public Fraction(int num) : this(num, 1) { } public override string ToString() { return string.Format("{0}/{1}", N, D); } public static Fraction operator +(Fraction f1, Fraction f2) { return new Fraction(f1.N * f2.D + f2.N * f1.D, f1.D * f2.D).Normalization(); } public static Fraction operator *(Fraction f1, Fraction f2) { return new Fraction(f1.N * f2.N, f1.D * f2.D).Normalization(); } public static Fraction operator -(Fraction f1, Fraction f2) { return new Fraction(f1.N * f2.D - f2.N * f1.D, f1.D * f2.D).Normalization(); } public static Fraction operator -(Fraction f1) { return new Fraction(-f1.N, f1.D).Normalization(); } public static Fraction operator /(Fraction f1, Fraction f2) { return new Fraction(f1.N * f2.D, f1.D * f2.N).Normalization(); } public Fraction Normalization() { var n = Math.Abs(N); var d = Math.Abs(D); var nod = NOD(n, d); var sign = Math.Sign(N*D); return new Fraction(sign * n / nod, d / nod); } static int NOD(int a, int b) { while (a > 0 && b > 0) if (a > b) a %= b; else b %= a; return a + b; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д