Bem galera estou com um probleminha, tenho q fazer um avaliador de expressões, vamos logo ao problema, eu tenho eu expressão assim: ((((8+5)-(8+0))+4)+(2*2)) aí tenho q fazer um algoritmo pra ir removendo os parenteses mais externos e ir pegando as subexpressões, destrinchar totalmente até q só reste números e sinais. Mas o problema é como eu vou separar as subexpressões.
E os professores não ajudam…
Camarada, a idéia é utilizar a lógica.
Como assim?
Perceba que existem padrões em expressões.
Você comça com parênteses, vai até um operando (número), operação (sinal matemático) outro operando e assim por diante.
Sorte tua estar utilizando java.
Eu tive que fazer isso usando pilha e C ANSI.
O que você vai fazer é comparar os padrões (ou seja, ver se é um parêntese abrindo, primeiro operando, operador, segundo parâmetro ou um parêntese fechando).
luxu
Vou passar um exemplo(manipulador de string) v se ajuda
E os professores não ajudam…
Camarada, a idéia é utilizar a lógica.
Como assim?
Perceba que existem padrões em expressões.
Você comça com parênteses, vai até um operando (número), operação (sinal matemático) outro operando e assim por diante.
Sorte tua estar utilizando java.
Eu tive que fazer isso usando pilha e C ANSI.
O que você vai fazer é comparar os padrões (ou seja, ver se é um parêntese abrindo, primeiro operando, operador, segundo parâmetro ou um parêntese fechando).
blza eu to ligado que é nessa parte de identificar padrões que está a solução, mas tipo eu identifico que o parênteses abriu eu tenho q saber onde ela fecha e pegar o q está dentro ou separar o q está lá dentro. O problema está em como transformar o esses splits em códigos. Pq essa lógica de “vai até um operando (número), operação (sinal matemático) outro operando e assim por diante” vai ser no último grau de splits, pois antes esses operandos serão expressões.