Калькулятор который решает дроби: Калькулятор рациональных выражений

2 > 4/9 (2 + 3) / (2 — 2)> Ошибка: делить на ноль (5/0) нельзя 2 + 345 + + + + 6> Ошибка: выражение записано неправильно

Чтобы убедиться, что калькулятор работает, напиши сразу же тест, который будет передавать все эти выражения калькулятору, получать ответ, и сравнивать с правильным. И конечно, выводить, чтобы мы могли их видеть. Ну, и как всегда, подсказки для тех, кто сам не догадался:

  1. советую использовать ООП, так как иначе код быстро превратится в лапшу.

  2. сначала выражение надо разбить на набор токенов (отдельных чисел и знаков, без пробелов), а дальше есть 2 варианта:

    • с помощью recursive descent parser преобразовать выражение в AST и вычислить
    • перевести выражение в обратную польскую нотацию с помощью алгоритма сортировочной станции, и вычислить получившееся выражение
  3. Чтобы дроби не терялись, достаточно при вычислении хранить все числа в виде дробей и делать операции над обеими частями

  4. Сократить дробь вроде 16/8 легко, найдя наибольший общий делитель для двух чисел.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *