Bem começei a fazer esse prog mais estou com alguns problemas…
sempre que eu escolho o operador da divisão me vem uma messagem
NaN gostaria de saber o que é isso…! vo deixar meu código logo abaixo para que vcs possam verificar…!
Classe main
import javax.swing.*;
public class Calculadora
{
public static void main(String args[])
{
boolean chave=false;
int cont=0,i;
CalculadoraP chama= new CalculadoraP();
double num,num2=0,soma=0,soma2=0,soma3=0;
String op=null;
double vet[]= new double [2];
double vet2[]= new double[2];
while(!chama.cheia())
{
if(chama.vazia())
{
JOptionPane.showMessageDialog(null,"Pilha vazia","ATENÇÂO",JOptionPane.ERROR_MESSAGE);
cont=0;
}
cont++;
num=Double.parseDouble(JOptionPane.showInputDialog("Dígite o número"));
chama.empilhar(num);
//*************************
if(cont>=2)
{
do
{
num2=Double.parseDouble(JOptionPane.showInputDialog(null,"Dígite 1 para Somar\nDígite 2 para Subtrair\nDígite 3 para Multiplicar\nDígite 4 para Dividir\nDígite 5 continuar a dígitar sem usar os operadores","Atençao no opção 5",JOptionPane.WARNING_MESSAGE));
if(num2==5)
{
chave=true;
}
}
while(num2!=1&&num2!=2&&num2!=3&&num2!=4&&chave!=true);
}
if(!chama.vazia())
{
//**************************
if(num2==1)
{
for(i=0;i<2;i++)
{
soma+=chama.desempilhar();
if(i==1)
System.out.println(soma);
}
}
//****************************
if(num2==2)
{
for(i=0;i<2;i++)
{
vet[i]=chama.desempilhar();
}
for(i=0;i<2;i++)
{
soma1=vet[0]-vet[1];
if(i==1)
System.out.println(soma1);
}
}
//****************************
if(num2==3)
{
for(i=0;i<2;i++)
{
soma*=chama.desempilhar();
if(i==1)
System.out.println(soma);
}
}
//****************************
if(num2==4)
{
for(i=0;i<2;i++)
{
vet2[i]=chama.desempilhar();
}
soma3=vet[0]/vet[1];
System.out.println(soma3);
}
}
}
}
}
Classe pilha
public class CalculadoraP
{
public double vet[] = new double[10];
public int topo=0;
public boolean cheia()
{
return(topo == vet.length);
}
public boolean vazia()
{
return(topo ==0);
}
public void empilhar(double x)
{
vet[topo] = x;
topo++;
}
public double desempilhar()
{
topo--;
return(vet[topo]);
}
}