next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
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.


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
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