Вы должны написать программу, которая оценивает строку, которая будет введена в расширенный калькулятор.
Программа должна принять ввод с использованием стандартного ввода и вывести правильный ответ. Для языков, которые не имеют функций для приема стандартного ввода, вы можете взять на себя функции readLine
и print
обрабатывать эти задачи.
Требования:
- Не использует какие-либо "eval" функции
- Может обрабатывать числа с плавающей запятой и отрицательные числа
- Поддерживает как минимум операторы +, -, *, / и ^
- Поддерживает скобки и скобки для переопределения нормального порядка
- Может обрабатывать ввод, содержащий один или несколько пробелов между операторами и числами
- Оценивает ввод, используя стандартный порядок операций
Тестовые случаи
вход
10 - 3 + 2
Выход
9
вход
8 + 6 / 3 - 7 + -5 / 2.5
Выход
1
вход
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
Выход
41
.0
на конце. Я не слишком уверен в точности, но чем больше, тем лучше.
.0
если они целые? Также: насколько точным должен быть калькулятор (в отношении точности с плавающей запятой и т. Д.)?