Задача заключается в реализации программы, которая на входе получает арифметическое выражение и с помощью псевдографики отображает его.
Формат входного выражения может быть выбран самостоятельно и ничем не
ограничивается, однако должен поддерживать произвольные выражения с операциями
+, -, *, /
. Например, может использоваться
прямая или
обратная польская
нотация.
От выходного выражения требуется следующее:
(1/2)/3
и для 1/(2/3)
должны отличаться;Имея на входе x / (x + 1)
программа должна выдать
x
-----
x + 1
Более сложное выражение (((a / (b * c) + 1) * d)/ 3) + 7
будет выглядеть,
например, так (возможны разумные вариации)
a
(----- + 1) * d
b * c
--------------- + 7
3
Программа должна корректно обрабатывать ввод некорректного выражения.
В качестве бонуса можно придумать способ вывода и других арифметических операций:
Также в качестве бонуса можно выводить простейшие дроби в линейном виде, т.е.
дробь 1/2
выводить как есть.
Значительным бонусом к задаче будет ввод выражений в привычной инфиксной нотации.