static void Main(string[] args) { try { RationalNumber number1 = new RationalNumber(-147, 8); RationalNumber number2 = new RationalNumber(4, 16); RationalNumber number3 = new RationalNumber(2, 4); RationalNumber number4 = new RationalNumber(-18, 4); RationalNumber number5 = RationalNumber.ConvertToRationalNum("0,25"); RationalNumber number6 = RationalNumber.ConvertToRationalNum("-5/7"); RationalNumber number7 = RationalNumber.ConvertToRationalNum("-5,00"); RationalNumber [] NumberList = new RationalNumber[] { number1, number2, number3, number4, number5, number6, number7 }; ServiceClass.PrintLine("Math Operations:"); Console.WriteLine($"({number1})+({number2})={number1+number2}"); Console.WriteLine($"({number2})-({number5})={number2 - number5}"); Console.WriteLine($"({number3})*({number4})={number3*number4}"); Console.WriteLine($"({number1})/({number2})={number1/number2}\n"); ServiceClass.PrintLine("Comparison operations:"); Console.WriteLine($"({number1})=({number2})-->{number1==number2}"); Console.WriteLine($"({number5})=({number4})-->{number5 == number4}"); Console.WriteLine($"({number5})<({number6})-->{number5<number6}"); Console.WriteLine($"({number3})>({number5})-->{number3 > number5}\n"); ServiceClass.PrintLine("Casting Operaions:"); int Inumber = number4; double Dnumber = number1; Console.WriteLine(Inumber); Console.WriteLine(Dnumber + "\n"); ServiceClass.PrintLine("IComparable:"); ServiceClass.PrintArray(NumberList); Console.WriteLine(); Array.Sort(NumberList); ServiceClass.PrintArray(NumberList); Console.WriteLine("\n"); ServiceClass.PrintLine("Equal:"); Console.WriteLine($"({number1}) Equals ({number2})--->{number1.Equals(number2)}"); Console.WriteLine($"({number3}) Equals ({number5})--->{number3.Equals(number5)}\n"); ServiceClass.PrintLine($"Different string formats of ({number4}):"); Console.WriteLine(number4.ToString("reduced fraction") + "\n"); Console.WriteLine(number4.ToString("mixed fraction") + "\n"); Console.WriteLine(number4.ToString("with fractions") + "\n"); } catch (Exception ex) { Console.WriteLine(ex.TargetSite); Console.WriteLine(ex.Message); } }
static void Main(string[] args) { RationalNumber n1 = new RationalNumber(1, 2); RationalNumber n2 = new RationalNumber(3, 4); RationalNumber n = n1 + n2; Console.WriteLine($"{n1} + {n2} = " + n); n = n1 - n2; Console.WriteLine($"{n1} - {n2} = " + n.ToString(".")); n = n1 * n2; Console.WriteLine($"{n1} * {n2} = " + n); n = n1 / n2; Console.WriteLine($"{n1} / {n2} = " + n); Console.WriteLine($"{n1} > {n2} " + (n1 > n2)); Console.WriteLine($"{n1} < {n2} " + (n1 < n2)); Console.WriteLine($"{n1} == {n2} " + (n1 == n2)); Console.WriteLine($"{n1} != {n2} " + (n1 != n2)); Console.WriteLine("parse -1.3 " + RationalNumber.Parse("-1.3")); Console.WriteLine("parse -1/3 " + RationalNumber.Parse("-1/3")); n.Reduce(); Console.WriteLine("reduce 4/6 " + n); Console.WriteLine($"(int){n} " + (int)n); Console.WriteLine($"(double){n} " + (double)n); Console.ReadKey(); }
static void Main(string[] args) { RationalNumber num1 = new RationalNumber(2, 3); RationalNumber num2 = new RationalNumber(3, 4); RationalNumber num3 = num1 + num2; Console.WriteLine(num3.N); Console.WriteLine(num3.M); Console.WriteLine(num3.ToString()); var a = (double)num1; var b = (int)num1; Console.WriteLine($"{a};{b}"); RationalNumber[] nums = new RationalNumber[] { num1, num2, num3 }; Array.Sort(nums); foreach (RationalNumber p in nums) { Console.WriteLine(p.ToString()); } const string s = "1,25"; RationalNumber ss = RationalNumber.Parse(s); //RationalNumber ss = (RationalNumber)s; Console.WriteLine(ss.N); Console.WriteLine(ss.M); Console.WriteLine(ss.ToString()); }
static void Main() { int input1, input2, input3, input4; string input5; Console.WriteLine("Numerator 1: "); while (!int.TryParse(Console.ReadLine(), out input1)) { Console.WriteLine("Incorrect input, retry"); } Console.WriteLine("Denominator 1: "); while (!int.TryParse(Console.ReadLine(), out input2) || input2 < 0) { Console.WriteLine("Incorrect input, retry"); } Console.WriteLine("Numerator 2: "); while (!int.TryParse(Console.ReadLine(), out input3)) { Console.WriteLine("Incorrect input, retry"); } Console.WriteLine("Denominator 2: "); while (!int.TryParse(Console.ReadLine(), out input4) || input4 < 0) { Console.WriteLine("Incorrect input, retry"); } RationalNumber a = new RationalNumber(input1, input2); RationalNumber b = new RationalNumber(input3, input4); RationalNumber n = a + b; Console.WriteLine("{a} + {b} = " + n); n = a - b; Console.WriteLine("{a} - {b} = " + n.ToString(".")); n = a * b; Console.WriteLine("{a} * {b} = " + n); n = a / b; Console.WriteLine("{a} / {b} = " + n); Console.WriteLine("{a} > {b} - " + (a > b)); Console.WriteLine("{a} < {b} - " + (a < b)); Console.WriteLine("{a} == {b} - " + (a == b)); Console.WriteLine("{a} != {b} - " + (a != b)); Console.WriteLine("Enter a decimal to parse: "); input5 = Console.ReadLine(); Console.WriteLine("Parse: " + RationalNumber.Parse(input5)); n.Reduce(); Console.WriteLine("Reduction: " + n); Console.WriteLine("{n} to int: " + (int)n); Console.WriteLine("{n} to double: " + (double)n); }
static void Main(string[] args) { RationalNumber a1 = new RationalNumber("0.(3)"); RationalNumber b1 = new RationalNumber("1/3"); RationalNumber res1 = a1 + b1; Console.WriteLine(res1); Console.WriteLine(a1); Console.WriteLine(b1); Console.WriteLine(a1.ToString()); Console.WriteLine(b1.ToString()); Console.WriteLine(); Console.WriteLine(a1.ToStirng("{0:C}")); Console.WriteLine(a1.ToStirng("{0:f4}")); Console.WriteLine(a1.ToStirng("{0:P1}")); Console.WriteLine(); RationalNumber a2 = new RationalNumber("0.654(32)"); RationalNumber b2 = new RationalNumber("-36.987"); RationalNumber res2 = a2 - b2; Console.WriteLine(res2); Console.WriteLine(a2); Console.WriteLine(b2); Console.WriteLine(a2.ToString()); Console.WriteLine(b2.ToString()); RationalNumber res3 = a2 * b2; Console.WriteLine(res3); RationalNumber res4 = a2 / b2; Console.WriteLine(res4); double d = a1; int i = (int)a1; Console.WriteLine(d); Console.WriteLine(i); }
static void Main(string[] args) { RationalNumber rationalNumber1 = new RationalNumber(1, 4); RationalNumber rationalNumber2 = new RationalNumber(Console.ReadLine()); rationalNumber1.Print(); Console.WriteLine(rationalNumber2.ToString()); int intValue = rationalNumber1; double doubleValue = (double)rationalNumber2; Console.WriteLine("Целая часть первого числа(int): " + intValue); Console.WriteLine("Целое часть второго числа(double): " + doubleValue); Console.WriteLine((rationalNumber1 + rationalNumber2).ToString()); Console.WriteLine((rationalNumber1 - rationalNumber2).ToString()); Console.WriteLine((rationalNumber1 * rationalNumber2).ToString()); Console.WriteLine((rationalNumber1 / rationalNumber2).ToString()); Console.WriteLine(rationalNumber1 < rationalNumber2); Console.WriteLine(rationalNumber1 > rationalNumber2); Console.WriteLine(rationalNumber1 == rationalNumber2); Console.ReadKey(); }
static void Main(string[] args) { long a = 12; long b = 20; long c = -7; long d = 15; RationalNumber r1 = new RationalNumber(a, b); RationalNumber r2 = new RationalNumber(c, d); //математические операции Console.WriteLine("ПЕРЕКРЫТИЕ МАТЕМАТИЧЕСКИХ ОПЕРАЦИЙ\n--------------------------------"); Console.WriteLine($"Сумма дробей:\n{r1.ToString()} + ({r2.ToString()}) = " + $"{(r1 + r2).ToString()}"); Console.WriteLine($"Сумма дроби и числа:\n{r1.ToString()} + 3 = {(r1 + 3).ToString()}"); Console.WriteLine($"Сумма числа и дроби:\n2 + ({r2.ToString()}) = {(2 + r2).ToString()}"); Console.WriteLine($"Разность дробей:\n{r1.ToString()} - ({r2.ToString()}) = " + $"{(r1 - r2).ToString()}"); Console.WriteLine($"Разность дроби и числа:\n{r1.ToString()} - 3 = {(r1 - 3).ToString()}"); Console.WriteLine($"Разность числа и дроби:\n2 - ({r2.ToString()}) = {(2 - r2).ToString()}"); Console.WriteLine($"Произведение дробей:\n{r1.ToString()} * ({r2.ToString()}) =" + $" {(r1 * r2).ToString()}"); Console.WriteLine($"Произведение дроби и числа:\n{r1.ToString()} * 3 = {(r1 * 3).ToString()}"); Console.WriteLine($"Произведение числа и дроби:\n2 * {r2.ToString()} = {(2 * r2).ToString()}"); try { Console.WriteLine($"Деление дробей:\n{r1.ToString()} / ({r2.ToString()}) =" + $" {(r1 / r2).ToString()}"); Console.WriteLine($"Деление дроби на число:\n{r1.ToString()} / 3 = {(r1 / 3).ToString()}"); Console.WriteLine($"Деление числа на дробь:\n2 / {r2.ToString()} = {(2 / r2).ToString()}"); } catch (DivideByZeroException) { Console.WriteLine("ОШИБКА! Деление на ноль"); } Console.WriteLine($"Противоположная дробь:\n{r1.ToString()} -> {(-r1).ToString()}"); Console.WriteLine($"Инкремент:\n++({r1.ToString()}) -> {(++r1).ToString()}"); Console.WriteLine($"Декремент:\n--({r1.ToString()}) -> {(--r1).ToString()}"); //операции сравнения Console.WriteLine("\nПЕРЕКРЫТИЕ ОПЕРАЦИЙ СРАВНЕНИЯ\n--------------------------------"); Console.WriteLine($"Сравнение дробей(==,!=):\n{r1.ToString()} {EqualZn(r1, r1)} {r1.ToString()}"); Console.WriteLine($"{r1.ToString()} {EqualZn(r1, r2)} {r2.ToString()}"); Console.WriteLine($"Сравнение дробей(>,<,>=,<=):\n{r1.ToString()} {Znak(r1, r1)} {r1.ToString()}"); Console.WriteLine($"{r2.ToString()} {Znak(r2, r1)} {r1.ToString()}"); Console.WriteLine($"Сравнение дроби с числом(==,!=):\n{r1.ToString()} {EqualZn(r1, -3)} -3"); Console.WriteLine($"Сравнение дроби с числом(>,<,>=,<=):\n{r1.ToString()} {Znak(r1, 5)} 5"); // явные и неявные операторы преобразования RationalNumber r3 = new RationalNumber(-4, 3); Console.WriteLine("\nПРЕОБРАЗОВАНИЕ ТИПОВ\n--------------------------------"); Console.WriteLine($"В int {r3.ToString()} -> {(int)r3}"); Console.WriteLine($"В long {r3.ToString()} -> {(long)r3}"); Console.WriteLine($"В double {r3.ToString()} -> {(double)r3}"); Console.WriteLine($"В decimal {r3.ToString()} -> {(decimal)r3}"); r3 = 25; Console.WriteLine($"Из int 25 -> {r3}"); r3 = 154L; Console.WriteLine($"Из long 154 -> {r3}"); r3 = 2.5; Console.WriteLine($"Из double 2.5 -> {r3}"); r3 = 0.2225m; Console.WriteLine($"Из decimal 0.2225 -> {r3}"); //представление в виде строки в различных форматах Console.WriteLine("\nПРЕДСТАВЛЕНИЕ ДРОБИ В ВИДЕ СТРОКИ\n-----------------------------------"); Console.WriteLine("1 вариант: " + r1.DifferentStrings('.')); Console.WriteLine("2 вариант: " + r1.DifferentStrings(',')); Console.WriteLine("3 вариант: " + r1.DifferentStrings('/')); // получение объекта класса по строковому представлению из разных форматов Console.WriteLine("\nПОЛУЧЕНИЕ ДРОБИ ПО СТРОКОВОМУ ПРЕДСТАВЛЕНИЮ" + "\n--------------------------------------------"); do { r3 = RationalNumber.TakeFromStrings(); r3.ReducedFraction(); Console.WriteLine($"\nВаше число, преобразованное в дробь: {r3.ToString()}"); Console.WriteLine("\nХотите повторить ввод?(нет - 0, да - любая клавиша)"); } while (Console.ReadLine() != "0"); }