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

4 respostas
S

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.

4 Respostas

M

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

douglaskd

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

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…

M

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

G

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.

Criado 21 de julho de 2013
Ultima resposta 22 de jul. de 2013
Respostas 4
Participantes 4