Как сортировать ячейку на карте Карно

У меня есть некоторая проблема в категоризации карты Карно, я не знаю, как определить Различные случаи таблицы Карно,

если я использую последовательные операторы «if» и «else», я думаю, что это очень низкоуровневое программирование, я хочу какой-то алгоритм, который будет известен сам по себе ассортимент, или использую меньше операторов «if» и «else»
здесь у меня есть пример классификации карты Карно:

введите описание изображения здесь

моя программа должна знать, что эти два «1» находятся в одной категории, и они будут классифицированы как
как я могу внедрить это в мою программу, как я могу реализовать эту классификацию
это мой код для двух переменных карты Карно:

int num_var;        // stores the number of variables entered by user
int squ_4[4];       // variable used for a 1-D array for the 4 square Karnaugh map
int a,b,c;          // variables for entering and checking values in Karnaugh map squares
char var_name[10];  // character string array

strcpy(var_name,"ABCDRSXYZ");   // character string for variable name

printf("\nThis program works out a Boolean function for a 2,3 and 4 variable Karnaugh map.\n\n");

cout << "Enter number of Karnaugh map variables (2,3 or 4) required: ";
cin >> num_var;
do
{
if(num_var>4)
{
printf("\n Sorry, you have chosen too many variables \n");
printf("\n Please enter 2,3 or 4 variables: ");
cin >> num_var;
}
if(num_var<2)
{
printf("\n Sorry, not enough variables chosen \n");
printf("\n Please enter 2,3 or 4 variables: ");
cin >> num_var;
}
}while(num_var>4 || num_var<2);

do
{
printf("\nVariables are: %c %c \n",var_name[4],var_name[5]);    // output variable names

printf("\n Please enter value in Karnaugh map square and press RETURN \n")

for(a=0;a<4;a++)
{
printf("\nEnter 1 or 0 into square %d: ",a);
cin >> squ_4[a];    // store value into array

while(squ_4[a]!=0 && squ_4[a]!=1)
{
printf("\n Value entered in Karnaugh map square %d, was not 1 or 0 \n",a);
printf("\nPlease enter 1 or 0 into square %d: ",a);
cin >> squ_4[a];
}
}
printf("\nYour Karnaugh map is: \n\n\t\t     %c'%c \n\t\t   %c'%d %d\n\t\t   %c %d %d \n",var_name[5],var_name[5],var_name[4],squ_4[0],squ_4[1],var_name[4],squ_4[2],squ_4[3]);if(squ_4[0]==0 && squ_4[1]==0 && squ_4[2]==0 && squ_4[3]==0)
{
printf("\nThere is no function from the Karnaugh map\n\n");
return 0;
}
printf("\nThe Boolean function is: \n\n ");

if(squ_4[0]==1)
{
printf("%c'%c' ",var_name[4],var_name[5]);
if(squ_4[1]==1 || squ_4[2]==1 || squ_4[3]==1)
{
printf("+ ");
}
}
if(squ_4[1]==1)
{
printf("%c'%c ",var_name[4],var_name[5]);
if(squ_4[2]==1 || squ_4[3]==1)
{
printf("+ ");
}
}
if(squ_4[2]==1)
{
printf("%c%c' ",var_name[4],var_name[5]);
if(squ_4[3]==1)
{
printf("+ ");
}
}
if(squ_4[3]==1)
{
printf("%c%c ",var_name[4],var_name[5]);
}

cout << "\n\n\n\n";
}while(num_var==2);

2

Решение

сохраните их ответы в некоторой переменной и сравните результат, используя циклы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector