Boa tarde. Preciso passar o algorítmo a seguir para a linguagem Java. Na verdade seria qualquer linguagem, mas estou aprendendo Java, então achei que conseguiria, e depois de passar o carnaval inteiro tentando, não deu.
Se alguém puder me ajudar com o código, agradeço.
Ele analiza uma expressão matemática to tipo "{[()]}", por exemplo, {3+5*[12/4]+27-(9-3)}, e ao final emite uma mensagem dizendo se é uma expressão válida ou não. O exercício não especifica se é ou não pra receber a expressão via teclado.
algoritmo analizaExpressao;
var Expressao:string;
i:inteiro;
Simbolo:char;
Valido:boolean;
Inicio
Obter(Expressao);
i := 1;
valido := true;
Enquanto i < Tamnaho(Exp)+1 faca
Inicio
Simbolo := Expressao[i];
se simbolo pertence a { '{','[','(' } entao
Empilha(MinhaPilha,simbolo);
senao
Inicio
Se Simbolo pertence a { '}',']',')' } entao
se PilhaVazia(MinhaPilha) entao
valido:=false
senao
se (Simbolo = '}') e (ElementoDoTopo(MinhaPilha) = '{' ) entao
Desempilha(MinhaPilha)
senao
se (Simbolo = ']') e (ElementoDoTopo(MinhaPilha) ='[' ) then
Desempilha(MinhaPilha)
senao
se (Simbolo = ')') e (ElementoDoTopo(MinhaPilha) = '(' ) entao
Desempilha(MinhaPilha);
end;
i := i + 1;
fim enquanto;
Se PilhaVazia(MinhaPilha) e valido entao
Escrevere('Expressão Correta')
senao
Escrever('Expressão Incorreta');
fim algoritimo.
