Pegar as sub-expressões para montar a tabela verdade

Alguém poderia me dá uma ideia de como fazer isso? Eu recebo uma equação qualquer, algo do tipo ((x.y) + (z+k)) e tenho que mostrar a tabela verdade desse caso ai, ou seja, teria q fazer a tabela pras sub-expressões (x.y), (z+k) e a expressão em si, ((x.y) + (z+k)).

só que eu n estou conseguindo pensar em java como fazer isso, como eu poderia fazer atrás da verificação de parênteses pra pegar as sub-expressões? me deram ideia de usar um arrayList pra guardar só os parênteses mas isso ainda me parece confuso… quem puder ajudar agradeço.

ps.: é um avaliador de expressões lógicas.

o.O
entendi o que você quer. Você pode fazer em Html, JSF e etc.
Crie um manageBean nele você declara as variáveis e cria os métodos com as formulas. No seu html ou xhtml(jsf) você usa todas variáveis e métodos necessários para exibição da tabela verdade podendo fazer tanto em table,tr,td ou dataTable.
Vai pesquisar que você consegue fazer isso em 2~5 minutos

[quote=mr.michels]o.O
entendi o que você quer. Você pode fazer em Html, JSF e etc.
Crie um manageBean nele você declara as variáveis e cria os métodos com as formulas. No seu html ou xhtml(jsf) você usa todas variáveis e métodos necessários para exibição da tabela verdade podendo fazer tanto em table,tr,td ou dataTable.
Vai pesquisar que você consegue fazer isso em 2~5 minutos[/quote]

vish, num é isso não…

Steam, você vai usar Arvore Binária, vai ter que dividir de acordo com os parênteses, depois de acordo com a precedência dos operadores.

a leitura dos parenteses sinais etc, você vai usar regex.

é complicado, aqui no fórum eu vi a teoria, estudei um pouco mas não cheguei a implementar.

em javascript existe o eval(equacao) em java não existe…

pois é eu pensei em ele criando as regras de entrada( as expressoes com ( x + y) ou (x * y) …) como String e no bean ele teria um trabalho de quebrar essa string. Não vejo nada de impossível. Concordo que nao existe algo “pronto” mas nada como a logica para solucionar esse problema

Cara, vi algo parecido, numa materia que estou tendo na faculdade…
No meu caso basta calcular uma expressão, converter de notação parentizada para polonesa e blablabla.

Creio que dê pra identificar numeros e parenteses da mesma forma…

Lá a gente resolvia isso usando uma arvore binária, por meio da recursão, porém usávamos C, manipulando ponteiros e tudo isso. Não vejo isso muito claramente em java…

Acredito que você vai receber uma string como parâmetro. Você pode então usar um switch, percorrendo a string caracter por caracter e realizando uma operação especifica pra cada caso. Daria muito trabalho, mas é o que eu tenho em mente.

Vale lembrar que só dá pra fazer esse switch com char na versão atual do java, não vai conseguir se tiver usando uma versão antiga.