Sig: Ejercicio: Prioridad de Operaciones
Sup: Subrutinas
Ant: Práctica: Polares a Cartesianas
Err: Si hallas una errata ...
Práctica: Postfijo y Subrutina
Reescriba la práctica de la calculadora en posfijo realizada en la sección
1.7.23 para que sea una subrutina. Escriba el programa usando dos
subrutinas: una que haga el cálculo y otra que haga el análisis léxico.
La subrutina que hace el análisis léxico recibe como entrada una cadena de caracteres y produce la lista de
terminales. Hay tres tipos de terminales: números (\d+
) y los símbols +
y *
.
No asuma que los terminales están separados por blancos; esto es, una entrada legal podría ser:
4 5 3+*
Una posibilidad es usar el operador de sustitución s/regexp/subst/g
con la opción global (g
) para insertar los blancos
que faltan. Vea las secciones 4.2 y 4.12.
Una alternativa es el operador splice
(sección 1.7.7).
La subrutina que hace el cálculo recibe como entrada la lista con los terminales y devuelve
el resultado de la operación.
Sig: Ejercicio: Prioridad de Operaciones
Sup: Subrutinas
Ant: Práctica: Polares a Cartesianas
Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21