import javax.swing.*; import java.util.*; public class Evaluador { public static void main(String[] args) { int n; // número de cadenas a evaluar String respuesta = JOptionPane.showInputDialog("Cuántos elementos va a procesar" ); n = Integer.parseInt(respuesta); // Evaluar las cadenas for(int i=0; i<n; i++) { Stack<Double> pila = new java.util.Stack<>(); // Nuevo en JAVA 7 - Operador diamante // Leer expresion String expresion = JOptionPane.showInputDialog("Expresión a evaluar" ); // Evaluar expresion expresion = expresion.trim(); // Elimina espacios al comienzo y al final String[] exp = expresion.split("\\s+"); // Para separar por secuencias de uno o más espacios for(String x: exp) { // Para cada cadena 'x' del arreglo exp try { double valor = Double.parseDouble(x); pila.push(valor); // Meter valor en la pila } catch(NumberFormatException ex) { // Excepcion si la cadena 'x' no se pudo pasar a número double b = pila.pop(); double a = pila.pop(); switch(x) { // NUEVO EN JAVA 7 - Evaluación de cadenas en los switch case "+" : pila.push(a+b); break; case "-" : pila.push(a-b); break; case "*" : pila.push(a*b); break; case "/" : pila.push(a/b); break; } // end switch } // end catch } // end for // Mostrar respuesta JOptionPane.showMessageDialog(null,pila.pop(), "Respuesta", JOptionPane.PLAIN_MESSAGE); } // end for } }
Soluciones a problemas comunes de programación en lenguaje java.
miércoles, agosto 03, 2011
Evaluador de expresiones en posfijo
Este programa presenta un pequeño evaluador de expresiones en posfijo que son leídas una a una. Se pretende con él dar una breve introducción al curso de Estructuras de Datos 2, y de paso, revisar las nuevas funcionalidades de JAVA 7, entre las cuales están el uso del operador diamante y la evaluación de cadenas de caracteres en la instrucción switch.
Suscribirse a:
Comentarios de la entrada (Atom)
Multiprocesamiento recursivo en JAVA 7
Una de las estrategias de diseño de algoritmos más comunes es la de "divide y vencerás", en la cual, un problema de tamaño relativ...
-
El algoritmo de ordenación por montículos o Heap Sort recorre el conjunto de elementos desde la posición de la mitad hasta la primera organi...
-
Generación con sustitución Si se quieren generar todas las posibles cadenas que se forman con un determinado número de caracteres, una pri...
-
Para solucionar el problema de la ruta más corta entre dos nodos de un grafo se puede utilizar el Algoritmo de Dijkstra , el cual sigue el s...
Como se ejecuta el programa?
ResponderBorrarme marca error en estack en esa linea me dice que diamond operador is no supurted in source 1.6 y tmb marca error en switch(x) me dice lo mismo
ResponderBorrarme marca error en estack en esa linea me dice que diamond operador is no supurted in source 1.6 y tmb marca error en switch(x) me dice lo mismo
ResponderBorrargolden gooses sneakers
ResponderBorrarkyrie irving shoes
chrome hearts store
kobe shoes
coach outlet store online
balenciaga sneakers
air jordan
yeezy
adidas yeezy
jordan 1 off white
xiaofang20191218
off white outlet online
ResponderBorrarbape hoodie
kyrie 7
supreme hoodie
ggdb
yeezy shoes
paul george shoes
bape t shirt
off white
yeezy 500
golden goose outlet
ResponderBorraroff-white
supreme
kd shoes
golden goose
off white shoes
golden goose outlet
supreme