Preciso fazer um programa calculadora porem da seguinte forma: que tenha pilha e fila. A pilha vai receber os numeros para os calculos e a fila receberá o operador. quando digitar o sinal “=”, o programa encerra e faz o resultado da operação. A medida que vai desempilhando processa o calculoe da o resultado. Voce já viu ou tenh algo parecido que possa me ajudar?
eu já bfiz a parte da pilha e da fila. Estou fazendo a entrada de dados onde eu peço para entrar com o numero e mando empilhar. Entro com o operador e mando colocar na fila. Não sei prosseguir daí pra frente, preciso mesmo de um empurranzinho. Qaualquer ajudazinha já é de grande valor…
Li este artigo conforme sua sugestão mas ele não fala da calculadora, não seria outro artigo?
atenciosamente,
Edinho
T
thingol
O que o PCalçado lhe indicou era um artigo sobre como ler dados do console. A calculadora é por sua conta, já que você já fez a pilha e a fila, não é difícil remover os dados da pilha ou fila para poder fazer as contas. Nada que meia dúzia de “switch” ou “if” não resolvam…
pcalcado
Ele fala de I/O que é o que você rpecisa para ler do teclado
Lendo os dados do teclado, basta fazer o algoritmo que processa a expressão
E
Edinho
Prezados colegas,
Acho que agora entendi realmente. vou reler o artigo e tentar, qualquer coisa, volta a lhes solicitar nova ajuda, valeu!..
Obrigado,
Edinho
T
thingol
Edson,
Acho que a gente não lhe entendeu direito. O seu problema, na verdade, era que você queria saber o que fazer com os dados, uma vez que foram empilhados.
A melhor maneira para lidar com isso é fazer um simulação com lápis e papel (ou com umas fichas de papel, que é melhor ainda).
Quando você fizer isso e obtiver os resultados corretos, basta implementar.
E
Edinho
Caros colegas,
Ainda sobre calculadora, fiz este pequeno programa e estou apanhando dele também. Tento fazer uma operação nesta calculadora e o resultado está sempre me retornando "0". O que está acontecendo?
importjavax.swing.JOptionPane;publicclassCalculo{publicstaticvoidmain(Stringargs[]){Stringoperador;//OperadoraritimeticodoubleNumero1;//PrimeiravariavelquerecebeumaStringdoubleNumero2;//SegundavariavelquerecebeumaStringdoubleResultado;//VariavelinformarresultadoResultado=0.0;//inicialisandoavariavelNumero1=Double.parseDouble(JOptionPane.showInputDialog("Entre com o primeiro numero"));operador=JOptionPane.showInputDialog("Entre com o operador");Numero2=Double.parseDouble(JOptionPane.showInputDialog("Entre com o segundo numero"));while(Numero1>=0){if(operador=="+")Resultado=Numero1+Numero2;elseif(operador=="-")Resultado=Numero1-Numero2;elseif(operador=="*")Resultado=Numero1*Numero2;elseif(operador=="/")Resultado=Numero1/Numero2;JOptionPane.showMessageDialog(null,"Resultado: "+Resultado);//,JOptionPane.PLAIN_MESSAGE);System.exit(0);}}}
Editado, é [code] não
T
thingol
Com strings, não use “==”. Use equals.
operador.equals("/")
E
Edinho
Caro colega,
Até então tudo tem sido ótimo, já consegui aprender e fazer muita coisa com a ajuda de voces, agradeço muito por esta oportunidade e disposição de ajuda de voces para com o fórum. Na oportunidade, gostaria de mais uma ajudinha: Consegui fazer o programa da calculadora do meu jeito. Está funcionando. Eu gostaria de faze-lo mais apresentado, o que voces me sugeririam ou alterariam para ele ter uma melhor interface ou uma melhor apresentação? São 3 arquivos. No programa estou utilizando pilha e fila. O código segue abaixo: