0% encontró este documento útil (0 votos)
231 vistas8 páginas

Calculadora Polaca

El documento describe un problema al implementar una calculadora con notación polaca inversa (RPN) en Java Micro Edition. El autor no puede usar la clase Queue ni algunos métodos de la clase Stack, lo que causa errores. Se incluye el código de una calculadora RPN en Java estándar que funciona correctamente.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
231 vistas8 páginas

Calculadora Polaca

El documento describe un problema al implementar una calculadora con notación polaca inversa (RPN) en Java Micro Edition. El autor no puede usar la clase Queue ni algunos métodos de la clase Stack, lo que causa errores. Se incluye el código de una calculadora RPN en Java estándar que funciona correctamente.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

calculadora , usando notacion polaca inversa

Submitted by sanlegas on Dom, 06/17/2012 - 21:32 

 Java Micro Edition

Bueno amigos el caso es que quiser hacer una calculadora(rpn), primero la hice en la version
estandar y me funciona bien sin errores, el problema es al pasarla a la version micro, me marca
algunos errores que no he podido solucionar
1. no me detecta la clase Queue, por ende todos los metodos usados.
2. si me detecta la clase pila, pero en algunos caso me marca error y no se por que,
aqui el codigo en version estandar
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class once extends JFrame
{
    private JPanel PanelConBotones;
    private JButton Botonsin[];
    private JTextField salida;
    
    private JButton b0,bretroceso,bmas,bigual,ac;
    private JButton parenDerecho,parenIzquierdo,multi,div,punto;
    private JButton modulo,potencia;
    int contador=0;
    int arr[]= new int[2];
 public static int prioridad (char opci)
     {
         if ( opci == '+' || opci=='-')
                return 1;
        else if ( opci=='*' || opci=='/'|| opci == '%')
                return 2;
        else if (opci == '^'  )
                return 3;
        //¬¨ Raiz Cuadrada;
        return -1;
     }
 public static  double resuelve (Queue posfija)
          {
            Stack Pila=new Stack();
            double resultado, a , b;
             while(posfija.peek()!=null)
                {
                    char dato=(Character)posfija.poll();
                    if (Character.isDigit(dato))
                        Pila.push(dato);
                    else
                       {
                        String Str =Pila.pop().toString();
                        b=Double.valueOf(Str).doubleValue();
                       //b=(double)Pila.pop();
                        Str =Pila.pop().toString();
                        a=Double.valueOf(Str).doubleValue();
                        if (dato == '+')
                            Pila.push(a+b);
                        else if (dato == '-')
                            Pila.push(a-b);
                        else if (dato == '*')
                             Pila.push(a*b);
                         else if (dato == '/')
                             Pila.push(a/b);
                        else if (dato == '^')
                           Pila.push( Math.pow(a,b));
                        }
                }
                        String Str =Pila.pop().toString();
                        resultado=Double.valueOf(Str).doubleValue();
                        System.out.println(resultado);
                         return resultado;
          }
 public static String uno (String uno)
         {
    // String uno="(5+3)*(2+3)";
        
         char dato,a,x;
    Queue salida= new java.util.LinkedList();
        Stack Pila=new Stack();
        int i=0;
      for(i=0;i<uno.length();i++)
        {
            dato=uno.charAt(i);
            if (Character.isDigit(dato))
                {
                salida.offer(dato);
                }
            else
             {
                if(Pila.empty() || dato=='(' ||
prioridad(dato)>prioridad((Character)Pila.peek()) )
                    Pila.push(dato);
                else
                    {
                 if(prioridad(dato)==prioridad((Character)Pila.peek()))
                    {
                    x=(Character)Pila.peek();
                    if(x==dato)
                        {
                        Pila.push(dato);
                        }
                    else
                        {
                      x=(Character)Pila.pop();
                        salida.offer(x);
                    Pila.push(dato);
                        }
                    }
                if(dato==')')
                    {
                        while((Character)Pila.peek()!='(')
                        {
                             x=(Character)Pila.pop();
                        salida.offer(x);
                        }
                        Pila.pop();
                    }
                 }
             }//fin del else
        }// fin del metodo
        //vaciar la pila a la cola
         while(!Pila.empty())
             {
            salida.offer(Pila.pop());
            }
        //System.out.println(resuelve(salida));
        String aString = Double.toString(resuelve(salida));
        //return resuelve(salida);
        return aString;
        }
       
    public once()
            {
         super("calculadora");
   
         //Etiqueta=new JLabel("esta es una etiqueta",JLabel.CENTER);
         parenDerecho=new JButton("(");
         parenIzquierdo=new JButton(")");
          multi=new JButton("*");
           div=new JButton("/");
           punto=new JButton(".");
         
         b0=new JButton("0");
         bmas=new JButton("+");
         bigual=new JButton("=");
         ac=new JButton("AC");
          modulo=new JButton("%");
           potencia=new JButton("^");
          ac.setForeground(Color.red);
         bretroceso=new JButton("C");
        bretroceso.setForeground(Color.BLUE);
         salida=new JTextField(10);
        salida.setEditable(false);
       
salida.setBorder(BorderFactory.createTitledBorder(BorderFactory.createBevelBorder
(1),"sanlegas",2,SwingConstants.SOUTH,newFont("Calibri",2+1,13),Color.BLUE));
        salida.setBackground(Color.YELLOW);
        salida.setFont(new Font("Cambria",2,35));
        add(salida);
    
    
         Botonsin=new JButton[9];
           PanelConBotones=new JPanel();
        //PanelConBotones.setLayout(new GridLayout(1,Botonsin.length));
           //PanelConBotones.setLayout(new GridLayout(3,4));
          //PanelConBotones.setLayout(new GridLayout(4,3));
        //PanelConBotones.setLayout(new GridLayout(5,5));
           //PanelConBotones.setLayout(new GridLayout(6,1));
           PanelConBotones.setLayout(new GridLayout(6,3));
          // PanelConBotones.setLayout(new GridLayout(7,1));
          for(int contador=0; contador< Botonsin.length; contador++)
        {
            Botonsin[contador]=new JButton (""+(contador+1));
            PanelConBotones.add(Botonsin[contador]);
       }
PanelConBotones.add(b0);
PanelConBotones.add(bretroceso);
PanelConBotones.add(ac);
PanelConBotones.add(bmas);
PanelConBotones.add(bigual);
//parenDerecho,parenIzquierdo,multi,div,punto;
PanelConBotones.add(parenDerecho);
PanelConBotones.add(parenIzquierdo);
PanelConBotones.add(multi);
PanelConBotones.add(div);
PanelConBotones.add(punto);
PanelConBotones.add(modulo);
PanelConBotones.add(potencia);
bretroceso.setEnabled(false);
ac.setEnabled(false);
         add(PanelConBotones,BorderLayout.SOUTH);
         b0.addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"0");
                                        activaRetroceso();
                                        //activaRetroceso();
                                }
                        }
                );
                 Botonsin[0].addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"1");
                                        activaRetroceso();
                                }
                        }
                );
                 Botonsin[1].addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"2");
                                        activaRetroceso();
                                }
                        }
                );
                Botonsin[2].addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"3");
                                        activaRetroceso();
                                }
                        }
                );
                Botonsin[3].addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"4");
                                        activaRetroceso();
                                }
                        }
                );
                Botonsin[4].addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"5");
                                        activaRetroceso();
                                }
                        }
                );
                Botonsin[5].addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"6");
                                        activaRetroceso();
                                }
                        }
                );
                Botonsin[6].addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"7");
                                        activaRetroceso();
                                }
                        }
                );
                Botonsin[7].addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"8");
                                        activaRetroceso();
                                }
                        }
                );
                Botonsin[8].addActionListener(new ActionListener()
                    {
                                public void actionPerformed(ActionEvent e)
                                {
                                        salida.setText(salida.getText()+"9");
                                        activaRetroceso();
                                }
                        }
                );
                bretroceso.addActionListener(new ActionListener()///////
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                String xxx=salida.getText();
                                  if(xxx=="")
                                    {
                                   // System.out.println("ya no hay nada");
                                    }
                                if(xxx!="")
                                {
                                        xxx=xxx.substring(0,xxx.length()-1);
                                        salida.setText(xxx);
                                        //System.out.println(""+xxx);
                                }
                        }
                }
                );
                 ac.addActionListener(new ActionListener()///////
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                String xxx=salida.getText();
                                  if(xxx=="")
                                    {
                                   // System.out.println("ya no hay nada");
                                    }
                                if(xxx!="")
                                {
                                        //xxx=xxx.substring(0,xxx.length()-1);
                                    xxx="";
                                        salida.setText(xxx);
                                        //System.out.println(""+xxx);
                                }
                        }
                }
                );
               
       
bigual.addActionListener(new ActionListener()////////////////////////////////////
////////////
        {
                                public void actionPerformed(ActionEvent e)
                                {
                                    String dos=salida.getText();
                                        //uno("(5+3)*(2+3)");
                                   // String uno=uno(dos);
                                        
                                            //uno(dos);
                                            salida.setText("");
                                        salida.setText(salida.getText()
+""+uno(dos));
                                     //System.out.println(""+uno);
                                        activaRetroceso();
                                }
                        }
                );
                
                parenDerecho.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                    String uno=salida.getText();
                                        salida.setText(salida.getText()+"(");
                                        activaRetroceso();
                                }
                        }
                );
                parenIzquierdo.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                    String uno=salida.getText();
                                        salida.setText(salida.getText()+")");
                                        activaRetroceso();
                                }
                        }
                );
                //bmas
               bmas.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                    String uno=salida.getText();
                                        salida.setText(salida.getText()+"+");
                                        activaRetroceso();
                                }
                        }
                );
                multi.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                    String uno=salida.getText();
                                        salida.setText(salida.getText()+"*");
                                        activaRetroceso();
                                }
                        }
                );
                div.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                    String uno=salida.getText();
                                        salida.setText(salida.getText()+"/");
                                        activaRetroceso();
                                }
                        }
                );
                punto.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                    String uno=salida.getText();
                                        salida.setText(salida.getText()+".");
                                        activaRetroceso();
                                }
                        }
                );
                //modulo,potencia;
                modulo.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                    String uno=salida.getText();
                                        salida.setText(salida.getText()+"%");
                                        activaRetroceso();
                                }
                        }
                );
                potencia.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e)
                                {
                                    String uno=salida.getText();
                                        salida.setText(salida.getText()+"^");
                                        activaRetroceso();
                                }
                        }
                );
      }// fin del costructor
    public void activaRetroceso()
    {
        if(!(salida.getText().equals("")))
            {
                bretroceso.setEnabled(true);
                ac.setEnabled(true);
                }
        else
                bretroceso.setEnabled(false);
    }
    public static void main (String []args)
    {
        once Ventana= new once();
       Ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      //Ventana.setSize(350,300);
      Ventana.setSize(280,380);
       //Ventana.setSize(500,250);
       Ventana.setLocation(505,200);
       Ventana.setVisible(true);
    }
}
‹ Ayuda Pasar datos a otro frame de javacomo conectar una aplicacion midlet en java micro
edition con una base de datos en linea, utilizando netbeans. ›

 Inicie sesión o regístrese para enviar comentarios

Opciones de visualización de comentarios

También podría gustarte