Te pedimos que programes una calculadora capaz de evaluar expresiones
matemáticas sencillas (suma +, resta -,
producto * y división entera /). Para que te
resulte más fácil, te pondremos muchos paréntesis. En concreto: siempre
que tengamos una operación, como por ejemplo, las sumas
“”
o
“”,
se dará un nivel de paréntesis adicional para agrupar la operación y los
operandos:
“”
y
“”.
Escribe un programa que evalúe este tipo de expresiones extra-parentizadas.
La entrada está formada por un número indeterminado, pero no superior a 500, de casos de prueba, cada uno de los cuáles consiste en una línea con una expresión matemática como las descritas. Todos los números que aparecen como operandos están entre el y el , ambos inclusive.
Escribe, para cada caso de pruebas, el resultado de evaluar la
expresión matemática. Ten en cuenta que no es posible dividir por
:
si esto ocurriera al evaluar una expresión, escribe “DIV 0”
como salida correspondiente.
Se te garantiza que todas las expresiones están correctamente parentizadas, y que durante el curso de su evaluación no encontrarás números cuyo valor absoluto sea mayor que .
La división entera consiste en dividir dos enteros y quedarse con el
cociente, sin decimales, y descartar el resto, como al usar la división
entera / en C o C++.
Se te dará 10 puntos por resolver cada una de las 10 entradas. La entrada -ésima no contendrá expresiones con más de operaciones. Además, las primeras entradas no contendrán números superiores al (como el Ejemplo 1) y las primeras entradas no contendrán ninguna división (como el Ejemplo 2).
Input
(2+2) (1*(4*(2*4))) ((1+(2-3))-2)
Output
4 32 -2
Input
(123+12) ((100-99)*(45-101))
Output
135 -56
Input
(1/4) (3/4) (4/4) (100/4) (((2+2)/(2+2))+1) (((2-2)/(2-2))+1) (((2-2)/(2+2))+1)
Output
0 0 1 25 2 DIV 0 1