Реализовать арифметику рациональных чисел (умножение и деление) - 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")