Реализовать арифметику рациональных чисел (умножение и деление) - C#
Формулировка задачи:
Здравствуйте . Есть такая задача: нужно реализовать арифметику рациональных чисел (умножение и деление).
Вот всё, что получилось :
Программа всё считает , но только , если числа задаются непосредственно в программе , то есть , используя конструктор Rational . Как сделать так, чтобы числа могли вводиться пользователем с клавиатуры? Есть догадки , что нужно перегрузить оператор ввода, но не получается всё равно никак, не пойму , как ввести числа как дробь . Помогите , пожалуйста , с этим вопросом . Заранее огромное спасибо!
using System; using System.Collections.Generic; using System.Linq; using System.Text; public class Rational { int m, n; //числитель, знаменатель public Rational(int a, int b) //конструтор { if (b == 0) { m = 0; n = 1; } else {//приведение знака if (b < 0) { b = -b; a = -a; } //приведение к несокротимой дроби int d = nod(a, b); m = a / d; n = b / d; } } int nod(int m, int n) //метод поиска наибольшего общего делителя { int p=0; m=Math.Abs(m); n =Math.Abs(n); if(n>m){p=m; m=n; n=p;} do { p = m%n; m=n; n=p; }while (n!=0); return(m); } public void PrintRational (string name) //метод печатает имя и значение рац. числа в форме m/n {Console.WriteLine ("{0}={1}/{2}", name,m, n); } public Rational Mult(Rational a) { int u, v; u = m * a.m; v = n * a.n; return (new Rational(u, v)); }//Mult public static Rational operator *(Rational r1, Rational r2) { return (r1.Mult(r2)); } public Rational Divide(Rational a) { int u, v; u = m * a.n; v = n * a.m; return (new Rational(u, v)); }//Divide public static Rational operator /(Rational r1, Rational r2) { return (r1.Divide(r2)); } } class Program { static void Main(string[] args) { } }
Решение задачи: «Реализовать арифметику рациональных чисел (умножение и деление)»
textual
Листинг программы
if (input[1] == "0")
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д