我需要有关K-map应用程序的一些建议

问题描述

我被分配去开发一个能够使用最多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 (将#修改为@)