问题描述
我被分配去开发一个能够使用最多5个变量的Karnaugh映射简化布尔表达式的应用程序。目前,为了简化起见,我无法将各个分组。这是一些代码供参考:
public class Buscador {
int cont1 = 0,cont2 = 1,cont3 = 0;
//Funcion que simplificara y buscara el resultado del
// Mapa de Karnaugh de 2 VARIABLES
//#####################################################################
public String BuscadorI(int contador,int mapa[][],String resultado)
{
//Ciclo for que compara las filas
for(int i=0; i<contador; i++)
{
for(int j=0; j<contador; j++)
{
if(mapa[i][j]== 1) cont1++;
}
if(cont1 == 2 && cont2 == 1) resultado = resultado + "A' ";
if(cont1 == 2 && cont2 == 2) resultado = resultado + "A ";
cont1 = 0;
cont2++;
}
cont2 = 1;
//Ciclo for que compara las columnas
for(int i=0; i<contador; i++)
{
for(int j=0; j<contador; j++)
{
if(mapa[j][i]== 1)
{
cont1++;
cont3++;
}
}
if(cont1 == 2 && cont2 == 1) resultado = resultado + "B' ";
if(cont1 == 2 && cont2 == 2) resultado = resultado + "B ";
cont1 = 0;
cont2++;
}
if(cont3 == 1)
{
if(mapa[0][0]==1) resultado = "A'+B'";
if(mapa[0][1]==1) resultado = "A'+B";
if(mapa[1][0]==1) resultado = "A+B'";
if(mapa[1][1]==1) resultado = "A+B";
}
//Devuelve es String "resultado"
return resultado;
}
//#####################################################################
//Funcion que simplificara y buscara el resultado
//del Mapa de Karnaugh de 3 VARIABLES
//#####################################################################
public String BuscadorII(int contador,String resultado)
{
for(int i=0; i<2; i++)
{
for(int j=0; j<4; j++)
{
if(mapa[i][j] == 1) cont1++;
}
if(cont1 == 4 && cont2 == 1) resultado = resultado + "A' ";
if(cont1 == 4 && cont2 == 2) resultado = resultado + "A ";
cont1 = 0;
cont2++;
}
cont2 = 1;
for(int i=0; i<4; i++)
{
for(int j=0; j<2; j++)
{
if(mapa[j][i] == 1)
{
cont1++;
cont3++;
}
}
if(cont1 == 2 && cont2 == 1) resultado = resultado + "B'C' ";
if(cont1 == 2 && cont2 == 2) resultado = resultado + "B'C ";
if(cont1 == 2 && cont2 == 3) resultado = resultado + "BC ";
if(cont1 == 2 && cont2 == 4) resultado = resultado + "BC' ";
cont2++;
cont1 = 0;
}
if(cont3 == 1)
{
if(mapa[0][0]==1) resultado = "A'+B'C'";
if(mapa[0][1]==1) resultado = "A'+B'C";
if(mapa[0][2]==1) resultado = "A'+BC";
if(mapa[0][3]==1) resultado = "A'+BC'";
if(mapa[1][0]==1) resultado = "A+B'C'";
if(mapa[1][1]==1) resultado = "A+B'C";
if(mapa[1][2]==1) resultado = "A+BC";
if(mapa[1][3]==1) resultado = "A+BC'";
}
return resultado;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)