ops... isso nao funciona. lembre que existem as regras de
precedencia de operadores na aritmetica, e elas devem ser respeitadas no seu
algoritmo.
por exemplo, 15 * 1.2 + 3 = 21, mas se for escrito como 3
+ 1.2 * 15 tambem tem que dar 21. mas se usarmos a ideia de apenas ler
os numeros e aplicar o ultimo operador, o valor da expressao vai ser
63, e se mudarmos para 3 + 15 * 1.2 fica 21.6.
esses dois ultimos valores estao errados, e o teu
algoritmo tem que ser esperto o suficiente para isso.
da uma desenterrada no livro de compiladores da faculdade e le
o capitulo sobre parser de expressoes, arvores de derivacao e coisas assim. nao
eh tao dificil quanto parece.
uma busca no google com "arithmetic _expression_ compiler java"
traz varios resultados interessantes.
|
<<IMSTP.gif>>