Evaluar expresiones matematicas en Java
Programa que traduce de notacion infija a postfija
Recuerde que para esta parte del programa se va a suponer que la expresión que digita el usuario no tiene errores, luego se darán consejos paradetectarlos.
import java.util.*;
public class Parseador{
...
}//fin de Parseador
Para crear una nueva pila se debe definir como un nuevo objeto:
Stack nuevaPila = new Stack();La clase Stack se maneja con objetos (introduce objetos y saca objetos); para introducir un nuevo objeto dentro de la pila se utiliza la instrucción
nuevaPila.push(Objeto);
Parasacar un objeto de la pila (recuerde que una pila saca el último objeto que se introdujo) utilizamos
nuevaPila.pop();
Para "mirar'' un objeto de la pila sin sacarlo se usanuevaPila.peek()
Además se puede preguntar si la pila está vacía con la instrucción
nuevaPila.empty()
que devuelve True si está vacía o False si no lo está.
Para empezar con la claseParseador, definimos la variable global ultimaParseada como sigue:
private String ultimaParseada;
Esta guarda un registro de la última expresión parseada (o traducida) en notación postfija, laexpresión se guarda por si alguien quiere evaluar sin tener que dar la expresión en donde se evalúa.
El constructor de nuestra clase lo único que hace es poner ultimaParseada en 0.
publicParseador(){
ultimaParseada="0";
}
La función parsear se define de tal forma que recibe un texto con la expresión en notación infija y devuelve otro texto con la expresión en notaciónpostfija. La función lanza una excepción (SintaxException) si encuentra que la expresión está mal digitada.
public String parsear(String expresion) throws SintaxException{
Stack PilaNumeros=newStack(); //Pila de números
Stack PilaOperadores= new Stack(); //Pila de operadores
String fragmento;
int pos=0, tamano=0;
byte cont=1;
final String funciones[]={"1 2 3 4 5 6 7 8 9 0 ( )...
Regístrate para leer el documento completo.