Debe escribir un programa que evalúe una cadena que se ingresaría en una calculadora avanzada.
El programa debe aceptar la entrada usando stdin y generar la respuesta correcta. Para los idiomas que no tienen funciones para aceptar stdin, puede asumir las funciones readLine
y print
manejar estas tareas.
Requisitos:
- No utiliza ningún tipo de funciones "eval"
- Puede manejar coma flotante y números negativos
- Admite al menos los operadores +, -, *, / y ^
- Admite paréntesis y paréntesis para anular el orden normal
- Puede manejar la entrada que contiene uno o más espacios entre los operadores y los números
- Evalúa la entrada usando el orden estándar de operaciones
Casos de prueba
Entrada
10 - 3 + 2
Salida
9
Entrada
8 + 6 / 3 - 7 + -5 / 2.5
Salida
1
Entrada
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
Salida
41
.0
al final. No estoy muy seguro de la precisión, pero más es mejor.
.0
al final si son enteros? Además: ¿qué tan precisa debe ser la calculadora (con respecto a la precisión de coma flotante y tal)?