Ви повинні написати програму, яка оцінює рядок, який був би введений в розширений калькулятор.
Програма повинна прийняти введення за допомогою stdin та вивести правильну відповідь. Для мов, у яких немає функцій прийому stdin, ви можете взяти на себе функції 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
на кінці, якщо вони цілі? Також: наскільки точним повинен бути калькулятор (щодо точності з плаваючою комою та іншого)?