2014-03-30 3 views
2

내가 카르노 맵의 분류에 약간의 문제가, 내가 카르노 테이블의 다양한 사례를 정의하는 방법을 모르는 카노 맵에서 셀,내가 "다른"문을 "이"연속 사용하면

을 갖춰 선택하는 방법 나는 내가 구색 자체, 또는 사용하여 알려진 몇 가지 알고리즘을 원하는, 그것은 매우 낮은 수준의 프로그래밍 생각 덜 여기에 "다른"문 은 내가 카노 맵의 일부 분류 예를 들어이 "경우"

enter image description here

내 프로그램에서이 두 개의 "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); 
+0

여기에 어떤 것을 구현하는 다른 방법이 있습니까? : \ – Ahmadreza

답변

1

저장 대답 일부 변수와 루프를 사용하여 결과를 비교 : 은 내가 어떻게 내 프로그램이 가르치 수, 난이 분류 을 구현할 수있는 방법이 두 가지 변수 카노 맵에 대한 내 코드입니다.