static void Main(string[] args) { try { RationalNr rationalNr1 = new RationalNr(); RationalNr rationalNr2 = new RationalNr(2, 7); int realNr = 4; Console.WriteLine($"{rationalNr1} + {rationalNr2} = {rationalNr1 + rationalNr2}"); Console.WriteLine($"{rationalNr1} - {rationalNr2} = {rationalNr1 - rationalNr2}"); Console.WriteLine($"{rationalNr1} * {rationalNr2} = {rationalNr1 * rationalNr2}"); Console.WriteLine($"{rationalNr1} / {rationalNr2} = {rationalNr1 / rationalNr2}"); Console.WriteLine($"{rationalNr1} ^ {realNr} = {rationalNr1 ^ realNr}"); Console.WriteLine($"{rationalNr1} < {rationalNr2} = {rationalNr1 < rationalNr2}"); Console.WriteLine($"{rationalNr1} > {rationalNr2} = {rationalNr1 > rationalNr2}"); Console.WriteLine($"{rationalNr1} <= {rationalNr2} = {rationalNr1 <= rationalNr2}"); Console.WriteLine($"{rationalNr1} >= {rationalNr2} = {rationalNr1 >= rationalNr2}"); Console.WriteLine($"{rationalNr1} == {rationalNr2} = {rationalNr1 == rationalNr2}"); Console.WriteLine($"{rationalNr1} != {rationalNr2} = {rationalNr1 != rationalNr2}"); } catch (ArgumentException error) { Console.WriteLine(error.Message); } }
public static RationalNr operator ^(RationalNr a, int b) { RationalNr result = a; for (int i = 0; i < b - 1; i++) { result *= a; } return(result); }
static bool compareTwoFractions(RationalNr a, RationalNr b, string relationalOperator) { int rightSide = a.numerator * b.denominator; int leftSide = a.denominator * b.numerator; return(relationalOperator switch { "<" => rightSide <leftSide, ">" => rightSide> leftSide, "<=" => rightSide <= leftSide, ">=" => rightSide >= leftSide, "!=" => rightSide != leftSide, "==" => rightSide == leftSide, _ => false, });
static RationalNr addingOrSubtractingTwoFractions(RationalNr a, RationalNr b, char operation = '+') { int lcd = getLCD(a.denominator, b.denominator); int multiplierForA = lcd / a.denominator; int multiplierForB = lcd / b.denominator; RationalNr c = new RationalNr(a.numerator * multiplierForA, a.denominator * multiplierForA); RationalNr d = new RationalNr(b.numerator * multiplierForB, b.denominator * multiplierForB); int numerator = operation == '+' ? c.numerator + d.numerator : c.numerator - d.numerator; return(new RationalNr(numerator, c.denominator).simplifiedForm()); }