Boas caros amigos, alguem pode dar uma ajuda como fazer um programa de mapas de Karnaugh?
Para iniciar era uma grande ajuda eu conseguir filtrar a expressão de entrada do tipo: ABC+/AB/C…
E atribui numa matriz 0 e 1 mediante A=1 e /A=0
Exemplo atravez da exp A/BC+ABC
Numa matriz de [][] 4*2
Olá! Bem vinda ao GUJ!
Desculpe, mas não consegui entender em que ponto específico está a sua dúvida. Poderia explicar melhor?
Aproveite também, e nos mostre o que você já conseguiu fazer de código java, ok?
[quote=Ana Rita]Boas caros amigos, alguem pode dar uma ajuda como fazer um programa de mapas de Karnaugh?
Para iniciar era uma grande ajuda eu conseguir filtrar a expressão de entrada do tipo: ABC+/AB/C…
E atribui numa matriz 0 e 1 mediante A=1 e /A=0
Exemplo atravez da exp A/BC+ABC
Numa matriz de [][] 4*2
[quote=Ana Rita]Boas caros amigos, alguem pode dar uma ajuda como fazer um programa de mapas de Karnaugh?
Para iniciar era uma grande ajuda eu conseguir filtrar a expressão de entrada do tipo: ABC+/AB/C…
E atribui numa matriz 0 e 1 mediante A=1 e /A=0
Exemplo atravez da exp A/BC+ABC
Numa matriz de [][] 4*2
Para filtrar a expressão de entrada vc pode lê-la como uma String e dentro de um laço acessar cada caracter com o método charAt(int index).
Para cada caracter que vc recuperar, jogue em um switch e veja onde se encaixa:
letra - no caso seria uma das entradas. Não há como prever qual letra, pois não se sabe quantas entradas irão existir na sua expressão booleana.
“+” - indica operação “OU”
3)"/" - pelo que eu entendi do exemplo que vc postou, indica que todos as entradas seguintes, até o próximo “+” são barradas (negadas).
Para o mapa vc pode sim usar uma matriz. O grande problema é identificar os grupos com 2^n elementos iguais a 1 para que vc simplifique a expressão. Vc deve utilizar algum algorítmo para identificar sub-matrizes a partir de um padrão. este caso o padrão seria a ocorrência do “1”.
Vc pode tbm usar outra matriz auxiliar, para indicar a que entrada cada linha ou coluna pertencem no mapa.