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.
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.