Ir ao conteúdo
  • Cadastre-se

thiago.af19

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Pessoal digito essa expressão quando vou testar: (-10+3*7-11)+5^3-375/3 e tem que dar Zero, só que no meu programa dá erro de valores inválidos, aguém sabe porque? Main: public class Teste { public static void main(String[] args) throws Exception { BufferedReader leitor = new BufferedReader(new InputStreamReader(System.in)); Expressao analisa = null; /** * For para sempre * ReplaceAll faz a substituição do primeiro conteúdo original para o segundo conteúdo */ for(;;) try { System.out.println("Por favor digite uma expressão: "); analisa = new Expressao(leitor.readLine().replaceAll(" ", "")); analisa.verifiqueToken(); analisa.resolveExpressao(); System.out.println("O resultado final da expressão que você digitou é:"); analisa.exibePilha(); break; } catch (IOException error) { //Não irá ocorrer } catch(NumberFormatException nerror){ System.err.println("Expressão possui valores inválidos, por favor digite uma expressão correta"); } catch(NullPointerException nullerror){ System.err.println("Expressão possui valores inválidos, por favor digite uma expressão correta"); } catch(Exception e){ System.err.println(e.getMessage()); } } } método resolveExpressao: public void resolveExpressao() throws Exception { double nroConvertido; String operando; String resultado; double prinumero, segnumero; while (this.pilha.topo() != null){ this.fila.enfilere(this.pilha.topo()); this.pilha.desempilhe(); } while (this.fila.primeiro() != null) { try { nroConvertido = Double.parseDouble(this.fila.primeiro()); this.pilha.empilhe(this.fila.primeiro()); this.fila.desenfilere(this.fila.primeiro()); } catch (Exception e) { operando = this.fila.primeiro(); this.fila.desenfilere(this.fila.primeiro()); segnumero = Double.parseDouble(this.pilha.topo()); this.pilha.desempilhe(); prinumero = Double.parseDouble(this.pilha.topo()); this.pilha.desempilhe(); resultado = calculaExpr(prinumero, segnumero, operando) + ""; this.pilha.empilhe(resultado); } } } Por favor me ajudem a fazer essa expressão dar certo.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...