JAN LUKASIEWICZ | |
Evaluar Expresiones:
Notación Polaca Inversa
RPN
Gracias a un compañero del foro de gambas-es.org, Shell, he conocido esta web: http://latecladeescape.com/algoritmos , donde explican una serie de algoritmos, entre ellos el de la notacion polaca inversa, creada por JAN LUKASIEWICZ
El ejemplo que pone la web esta escrito en C#, y lo he pasado a gambas, creando esta aplicación:
Lo que más me ha gustado, además de darle un uso práctico a una pila, ver como se gestionan los distintos tipos de errores que pueden contener la expresión que le pasemos a evaluar.
Codigo fuente: descarga
Nota:
Para evaluar expresiones, gambas tiene la clase gb.eval, que la podemos usar para evaluar expresiones normales.
Public
Sub
Main()
Dim
Context As
New
Collection
Context["X"]
=
"23"
Context["a"]
=
"2"
Print
Eval("a*X+(34-2)",
Context)
End
Fuente: http://latecladeescape.com/algoritmos/1125-evaluacion-de-expresiones-aritmeticas-en-notacion-polaca-inversa