Пример #1
0
Token :: Token(char input, Category category, double actual_value, int precedence)
{
	set_input(input);
	set_category(category);
	set_actual_value(actual_value);
	set_precedence(precedence);
}
Пример #2
0
int truth_table(char ipstr[], int fnvalues[], int *no_of_variables){
     int i, j, output, len;
	  
     remove_spaces(ipstr);
     
     if(check_for_valid_characters(ipstr)){
	  printf("ERROR! Use only valid characters - ~&|() a-z A-Z\n");
	  return 1;
     }

     set_precedence(precedence,  ipstr);
     get_variables(listvar, &numvar, precedence);

     if(conv_to_postfix(ipstr, opstr, precedence) == 1){
	  printf("\nError in input\n");
	  return 1;
     }

     len = strlen(ipstr);
     /* Truth-table Printing */
     printf("\n");
     for(i=0; i<numvar; i++){
	  printf("%c  ", listvar[i]);
     }
     printf("%s ", ipstr);
     
     for(i=0; i<(1<<numvar); i++){
	  /* For each permutation of bits */
	  printf("\n");
	  compute_val_var_from_perm(i, valvar, numvar);
	  for(j=0; j<numvar; j++)
	       printf("%d  ", valvar[j]);
	  output = eval_postfix(opstr, valvar, numvar, listvar);
	  if(output == 1){
	       printf("Error : eval - not enuff operands\n");
	       return 1;
	  }
	  fnvalues[i] = output - '0';
	  printf("%*c ", len/2 + 1, output);
     }

     *no_of_variables = numvar;
     printf("\n");
     return 0;
}