Создать класс с закрытыми полями, где операции реализуются как методы
класса. Рациональная (несократимая) дробь представляется парой целых чисел (а, b),
где а — числитель, b — знаменатель. Создать класс Rational для работы с
рациональными дробями. Обязательно должны быть реализованы операции:
1. сложения add, (а, b) + (с, d) = (ad + bc, bd);
2. вычитания sub, (a, b) - (с, d) = (ad - bc, bd);
3. умножения mul, (a, b) * (c, d) = (ac, bd);
4. деления div, (a, b) / (c, d) = (ad, bc);
5. сравнения equal, greate, less.
Должна быть реализована приватная функция сокращения дроби reduce (если
10/12, то функция reduce делает 5/6), которая обязательно вызывается при выполнении
арифметических операций. Реализовать методы: Init – инициализация, метод контролирует значения аргументов на корректность, Read – ввод с клавиатуры, Display
– вывод на экран.