Clase UsoPilas
Método main
DescripciónEl programa principal se encarga de que dada una expresión in-fix ingresada por el usuario:
1. Verifica que la expresión tenga los paréntesis correcta.
2. Si esta correcta entonces la transforma en post-fix
3. Luego le pide al usuario ingresar una expresion post-fix
4. Pide los valores de las variables para evaluarlas
| Método main |
Clase Expresion
Método verificarParentesis
DescripciónRetorna un boolean dependiendo si la expresión tiene un correcto uso de paréntesis
Algoritmo
- Crea una pila vacía donde se van a guardar los paréntesis
- Recorre la cadena de caracteres y si es un ( lo añade en la pila
- Si es un ) pregunta si la pila esta vacía devuelve falso
- Si la pila está llena entonces elimina el primer paréntesis izquierdo
- Una vez recorrida la cadena de caracteres devuelve falso si la pila todavía contiene (
- Caso contrario devuelve verdadero
| Método verificarParentesis |
Método InFixToPostFix
DescripciónDada una expresión en Infix la transforma en una expresión Postfix
Algoritmo
- Se crea una lista la cuál va a contener la expresión en PostFix
- Se crea un pila la cual va a almacenar los operadores
- Se sigue el algoritmo para convertir de Infix a PostFix, el cual consta de los siguientes pasos:
- Si el elemento es un operando se ingresa a la lista PostFix
- Si el elemento es un paréntesis izquierdo se ingresa en la pila
- Si el elemento es un paréntesis derecho entonces se extrae de la pila y se coloca los operadores en la lista PostFix hasta encontrar un paréntesis izquierdo y se elimina el paréntesis
- Si el elemento es un operador entonces se verifica si la pila esta vacía, en tal caso se agrega a la pila
- Caso contrario se evalúa su prioridad con el que esta en la cima de la pila
- Si es de mayor prioridad entonces se agrega a la pila
- Si es de menor o igual prioridad entonces se extrae el último de la pila, se lo agrega a la lista y luego se agrega a la pila el operador
4. Una vez recorrida toda la cadena se procede a vaciar la pila en la lista PostFix
5. Se crea una cadena con la expresión formada en la lista
Método evaluar
DescripciónCon el valor de las variables se procede a realizar el calculo de la expresión en PostFix
Algoritmo
1. Se crea una pila que va a guardar las variables y se van a realizar las operaciones
2. Se recorre la expresión y si el elemento es un operando se agrega a la pila
3. Si el elemento es un operador entonces retirar los 2 primeros elementos de la pila
4. Realiza la operación indicada y guarda el resultado en la pila
5. Se repite estas acciones hasta que solo queda un elemento en la pila
6. Finalmente se extrae el resultado final de la pila y esa es la respuesta
Método buscarVariables
DescripciónDevuelve una lista con todas las variables que se encuentran en una expresión
Algoritmo
- Recorre la expresión y chequea si es un operador u operando
- Si es un operando entonces revisa si esta en la lista sino está lo agrega en caso contrario no realiza ninguna acción
Clase PostFix
Método establecerPrioridad
DescripciónDado dos operadores devuelve si entre ellos tienen una prioridad mayor menor o igual
Con valores (-1) menor (0) Igual (1) Mayor
Algoritmo
- Se tiene un arreglo de los operadores en orden ascendente de prioridades
- Luego se pregunta si los operadores diferentes pero que tienen igual prioridad Eje, suma y resta
- Si no lo son entonces se extrae la posición en la que se encuentra y se compara devolviendo el valor si es menor mayor o igual
Método esOperador
DescripciónDado un elemento entonces se verifica si es un operador o no.
Algoritmo
1. Se tiene el arreglo con todos los operadores
2. Se busca el elemento en el arreglo si lo encuentra devuelve verdadero caso contrario falso
Clase Variable
DescripciónTDA que va a almacenar simultánea mente una variable y un valor
Clase Proceso
Método pedirIngreso
DescripciónGenera una cuadro de dialogo para que el usuario ingrese una expresión
Algoritmo
1. Se crea el cuadro de dialogo donde el usuario va ingresar la expresión
2. Se muestra la expresión para que el usuario verifique que se encuentre correcta
3. Guarda la expresión
Método añadirVariables
DescripciónPide al usuario el valor para las variables encontradas en la expresión para guardarlas en una lista de Variables
Algoritmo
1. Tenemos las variables que se encontraron en la expresión como caracteres
2. Se pide al usuario que ingrese el valor de la variable
3. Se envían tanto el nombre de la variable y el valor al constructor de Variable
4. La nueva Variable se agrega a la lista variables
5. Se devuelve la lista de Variables
Método buscarValor
DescripciónVa a encontrar el valor de una variable dentro de una lista de Variables
Algoritmo
1. Se crea un iterador de la lista de Variables
2. Se busca en la lista de Variables aquella que tenga el nombre buscado
3. Se devuelve el valor de esa variable