lunes, 8 de diciembre de 2014

Notacion Polaca Inversa - Notacion postfija con codigo (Segunda parte)

Ver la primera parte del articulo
Un ejemplo de como hacer una calculadora sencilla en Java con rpn:
Descarga el archivo: Parser.java
Descarga el archivo: Pila.java
Descarga la calculadora en formato .jar

¿Como usar el archivo Parser.java?

 - crear un nuevo proyecto con eclipse o netbeans.
 - crear una nueva clase con el nombre: Parser
(con inicial mayuscula). Ahora borre lo que tiene su clase, copie el contenido del archivo Parser.java y peguelo en su clase Parser.
 - cree otra clase con otro nombre por ejemplo Calcular.

En su clase Calcular usted debería tener algo como lo siguiente:

import java.util.Scanner;
public class Calcular {
public static void main(String[] ar) {
Parser calculador=new Parser();
Scanner teclado=new Scanner(System.in);
System.out.print("Ingrese su expresion: ");
String expresion=teclado.next();
System.out.println("El resultado es: "+calculador.calcular(expresion));
}
}

Ahora este código debería funcionar.

Búscanos en Facebook como: Freek Frees
Si te ha servido el articulo te animo a que lo compartas

3 comentarios:

  1. hola buenas tardes, utilice tu codigo y si corre pero al introducir las operaciones solo arroja el resultado de la operacion por ejemplo 3+3 = 6.0
    no arroja el resultado en notacion inversa que deberia ser 3 3 + me podrias ayudar?

    ResponderEliminar
  2. Cuanto siento no haber respondido. Ya no he dado mantenimiento al blog desde hace mas de 1 año.

    La solucion es simple: La clase Parser.java tiene el metodo
    private String convertir(String expresion)
    Este metodo retorna un String con la expresion postfija.
    Lo que usted debía hacer es poner public en el metodo, quedando asi:
    public String convertir(String expresion)
    Luego para quedaria asi:


    import java.util.Scanner;
    public class Calcular {
    public static void main(String[] ar) {
    Parser calculador=new Parser();
    Scanner teclado=new Scanner(System.in);
    System.out.print("Ingrese su expresion: ");
    String expresion=teclado.next();
    String corregida, postfija;
    //para expresiones como (3)(4), las completa asi: (3)*(4)
    corregida=calculador.completarExpresion(expresion);
    postfija=calculador.convertir(expresion);
    System.out.println("Notacion postfija: "+postfija);
    System.out.println("El resultado es: "+calculador.calcular(expresion));
    }
    }

    ResponderEliminar