Problema 3
Operaciones Básicas con una Calculadora
calc.pas, calc.c, calc.cpp

Problema
Un grupo de ingenieros de la Universidad Piedradura lanzó una potente calculadora al mercado, la cual realiza las cuatro operaciones básicas (¡suma, resta, multiplica y divide!).

1) Se pueden introducir enteros de hasta 4 cifras y realiza operaciones siempre y cuando el resultado o las operaciones intermedias no excedan a 9999 si sean menores a –9999. Cuando suceda lo anterior desplegará en pantalla ‘TPK’ (¡Te Pasaste Ka!).
2) Despliega en pantalla a lo más cuatro dígitos y redondea cuando se requiere, aunque la estructura interna maneja muchos más decimales.
3) Un operador (‘+’,’-‘.’*’,’/’) sólo puede estar entre dos números, o tener a su izquierda el signo de igualdad (‘=’) y un número a su derecha, haciendo la operación correspondiente con este.
4) El signo de igualdad (‘=’) sólo podrá tener a su izquierda un número u otro signo de igualdad, en cuyo caso no afectará el resultado anterior. A su derecha sólo puede haber un operador (ver el párrafo anterior), un signo de igualdad o fin de línea.
5) Toda operación debe comenzar con un número.
6) Cuando se divide entre cero, o no se cumpla 3), 4) o 5), envía el mensaje ‘NS’ (No Seas...).
7) El orden de ejecución es el mismo que en las expresiones matemáticas: primero ‘*’ y ‘/’, después ‘+’ y ‘-‘.

Se pide a los futuros ingenieros de la Universidad Bonaterra que emulen el funcionamiento de la calculadora.

Entrada
El primer renglón tendrá un número n (0 < n < 100), el número de operaciones a realizar. Después habrá n renglones con las operaciones. El número de caracteres por renglón no excederá a 250. Cada número de las operaciones será un entero positivo menor o igual a 32000. Cada renglón terminará con ‘=’ y sólo contendrá los caracteres ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘+’, ‘-‘, ‘*’, o ‘/’.

Salida
La salida tendrá n renglones con la operación indicada o el mensaje ‘TPK’ o ‘NS’, según lo que ocurra primero.

Ejemplo

entrada salida
5
2345*5=
+56+12=
123*75-=
4+1/3=*2=-3===+2/3-8=
-4/0+99999=
TPK
NS
NS
-1.667
NS

 


Concurso: ICPC - 3 Concurso Interno de la Universidad Bonaterra. 15/Mayo/2003
Propuesto por: Óscar Dávalos Orozco
Ayuda: entradas, salidas, sugerencias
Soluciones: calc.pas, calc.c, calc.cpp


World of πer