Beispiel #1
0
int
main(void)
{
	int n1, d1;	/* numerator, denominator of first fraction */
	int n2, d2;	/* numerator, denominator of second fraction */
	char op;	/* arithmetic operator + - * or /  */
	char again;	/* y or n depending on user's desire to continue */
	int n_ans,	/* numerator, denominator of answer */
	    d_ans;

	/* While the user wants to continue, gets and solves arithmetic
	   problems with common fractions. */

	do
	{
       	   /* Gets a fraction problem */
	   scan_fraction(&n1, &d1);
	   op = get_operator();
	   scan_fraction(&n2, &d2);

	   /* Computes the result */
	   switch (op)
	   {
	  	case '+':
			add_fractions(n1, d1, n2, d2, &n_ans, &d_ans);
			break;

		case '-':
			add_fractions(n1, d1, -n2, d2, &n_ans, &d_ans);
			break;

		case '*':
			multiply_fractions(n1, d1, n2, d2, &n_ans, &d_ans);
			break;

		case '/':
			multiply_fractions(n1, d1, d2, n2, &n_ans, &d_ans);
	   }
	   reduce_fraction(&n_ans, &d_ans);

	   /* Displays problem and result */
	   printf("\n");
	   print_fraction(n1, d1);
	   printf(" %c ", op);
	   print_fraction(n2, d2);
	   printf(" = ");
	   print_fraction(n_ans, d_ans);

	   /* Asks user about doing another problem */
	   printf("\nDo another problem? (y/n) > ");
	   scanf(" %c", &again);
	}
	while (again == 'Y' || again == 'y');
	return(0);
}
Beispiel #2
0
/* Test print_fraction. */
void test_print_fraction(void)
{
	printf("\nTesting print_fraction\n\n");

	fraction_t fr;

	fr.num = 1;
	fr.den = 3;
	printf("Expected output: 1/3\n");
    printf("Actual output:   ");
	print_fraction(&fr);
	printf("\n\n");

	fr.num = -1;
	fr.den = 3;
	printf("Expected output: -1/3\n");
    printf("Actual output:   ");
	print_fraction(&fr);
	printf("\n\n");
}
Beispiel #3
0
void main(){
car_init();
while(1){
    sensor_accelerator_read();
  sensor_accelerator_calculate();
  sensor_electromagnet_read();
 angle_control(0);
 // Speed_R=10;Speed_L=10;
  float  OutData[4];

  OutData[0] = angle;
  //OutData[1] =  angle_accZ;
  OutData[2] = 3 ;
  OutData[3] = 4;
  //vcan_sendware((uint8_t *)OutData,sizeof(OutData));
 print_fraction(angle);

}


}
Beispiel #4
0
int main(void)
{
	struct fraction fr;

	/* Test print_fraction. */
	printf("\nTesting print_fraction.\n");

	fr.num = 1;
	fr.den = 3;
	printf("Calling print_fraction to print 1/3. Actual result = ");
	print_fraction(fr);
	printf(".\n");

	fr.num = -1;
	fr.den = 3;
	printf("Calling print_fraction to print -1/3. Actual result = ");
	print_fraction(fr);
	printf(".\n");

	/* Test gcd. */
	printf("\nTesting gcd.\n");

	if (gcd(42,30) != 6)
		printf("Calling gcd(42, 30). Expected result = 6. Actual result = %d.\n",
		    gcd(42, 30));

	if (gcd(30,42) != 6)
		printf("Calling gcd(30, 42). Expected result = 6. Actual result = %d.\n",
		    gcd(30, 42));

	if (gcd(-42,30) != 6)
		printf("Calling gcd(-42, 30). Expected result = 6. Actual result = %d.\n",
		    gcd(-42, 30));

	if (gcd(42,-30) != 6)
		printf("Calling gcd(42, -30). Expected result = 6. Actual result = %d.\n",
		    gcd(42, -30));

	if (gcd(-42,-30) != 6)
		printf("Calling gcd(-42, -30). Expected result = 6. Actual result = %d.\n",
		    gcd(-42, -30));

	if (gcd(144,55) != 1)
		printf("Calling gcd(144, 55). Expected result = 1. Actual result = %d.\n",
		    gcd(144, 55));

	/* Test reduce. */
	printf("\nTesting reduce.\n");

	fr.num = 1;
	fr.den = 3;
	printf("Reduce 1/3. Expected result = 1/3. Actual result = ");
	print_fraction(reduce(fr));
	printf(".\n");

	fr.num = 6;
	fr.den = 8;
	printf("Reduce 6/8. Expected result = 3/4. Actual result = ");
	print_fraction(reduce(fr));
	printf(".\n");

	fr.num = -2;
	fr.den = 3;
	printf("Reduce -2/3. Expected result = -2/3. Actual result = ");
	print_fraction(reduce(fr));
	printf(".\n");

	fr.num = 4;
	fr.den = -5;
	printf("Reduce 4/-5. Expected result = -4/5. Actual result = ");
	print_fraction(reduce(fr));
	printf(".\n");

	fr.num = -6;
	fr.den = -8;
	printf("Reduce -6/-8. Expected result = 3/4. Actual result = ");
	print_fraction(reduce(fr));
	printf(".\n");

	fr.num = 0;
	fr.den = 7;
	printf("Reduce 0/7. Expected result = 0/1. Actual result = ");
	print_fraction(reduce(fr));
	printf(".\n");

	/* Test make_fraction. */
	printf("\nTesting make_fraction.\n");

	struct fraction result;
	
	result = make_fraction(1,3);
	if (result.num != 1 || result.den != 3) {
		printf("Calling make_fraction(1, 3). Expected result = 1/3. Actual result = ");
		print_fraction(make_fraction(1, 3));
		printf(".\n");
	}

	result = make_fraction(6,8);
	if (result.num != 3 || result.den != 4) {
		printf("Calling make_fraction(6, 8). Expected result = 3/4. Actual result = ");
		print_fraction(make_fraction(6, 8));
		printf(".\n");
	}

	result = make_fraction(-2,3);
	if (result.num != -2 || result.den != 3) {
		printf("Calling make_fraction(-2, 3). Expected result = -2/3. Actual result = ");
		print_fraction(make_fraction(-2, 3));
		printf(".\n");
	}

	result = make_fraction(4,-5);
	if (result.num != -4 || result.den != 5) {
		printf("Calling make_fraction(4, -5). Expected result = -4/5. Actual result = ");
		print_fraction(make_fraction(4, -5));
		printf(".\n");
	}

	result = make_fraction(-6,-8);
	if (result.num != 3 || result.den != 4) {
		printf("Calling make_fraction(-6, -8). Expected result = 3/4. Actual result = ");
		print_fraction(make_fraction(-6, -8));
		printf(".\n");
	}

	result = make_fraction(0,7);
	if (result.num != 0 || result.den != 1) {
		printf("Calling make_fraction(0, 7). Expected result = 0/1. Actual result = ");
		print_fraction(make_fraction(0, 7));
		printf(".\n");
	}

	/* Test multiply_fractions. */
	printf("\nTesting multiply_fractions.\n");
	result = multiply_fractions(make_fraction(0,1), make_fraction(0,2));
	if (result.num != 0 || result.den != 1) {
		printf("Calling multiply_fractions(make_fraction(0,1), make_fraction(0,2)). Expected result = 0/1. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = multiply_fractions(make_fraction(1,1), make_fraction(0,2));
	if (result.num != 0 || result.den != 1) {
		printf("Calling multiply_fractions(make_fraction(1,1), make_fraction(0,2)). Expected result = 0/1. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = multiply_fractions(make_fraction(0,1), make_fraction(2,2));
	if (result.num != 0 || result.den != 1) {
		printf("Calling multiply_fractions(make_fraction(0,1), make_fraction(2,2)). Expected result = 0/1. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = multiply_fractions(make_fraction(3,1), make_fraction(4,2));
	if (result.num != 6 || result.den != 1) {
		printf("Calling multiply_fractions(make_fraction(3,1), make_fraction(4,2)). Expected result = 6/1. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = multiply_fractions(make_fraction(3,2), make_fraction(2,9));
	if (result.num != 1 || result.den != 3) {
		printf("Calling multiply_fractions(make_fraction(3,2), make_fraction(2,9)). Expected result = 1/3. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = multiply_fractions(make_fraction(3,12), make_fraction(4,9));
	if (result.num != 1 || result.den != 9) {
		printf("Calling multiply_fractions(make_fraction(3,12), make_fraction(4,9)). Expected result = 1/1. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}


	/* Test add_fractions. */
	printf("\nTesting add_fractions.\n");

	result = add_fractions(make_fraction(0,1), make_fraction(0,2));
	if (result.num != 0 || result.den != 1) {
		printf("Calling add_fractions(make_fraction(0,1), make_fraction(0,2)). Expected result = 0/1. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = add_fractions(make_fraction(1,1), make_fraction(0,2));
	if (result.num != 1 || result.den != 1) {
		printf("Calling add_fractions(make_fraction(1,1), make_fraction(0,2)). Expected result = 1/1. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = add_fractions(make_fraction(0,1), make_fraction(2,2));
	if (result.num != 1 || result.den != 1) {
		printf("Calling add_fractions(make_fraction(0,1), make_fraction(2,2)). Expected result = 1/1. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = add_fractions(make_fraction(3,1), make_fraction(4,2));
	if (result.num != 5 || result.den != 1) {
		printf("Calling add_fractions(make_fraction(3,1), make_fraction(4,2)). Expected result = 5/1. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = add_fractions(make_fraction(3,2), make_fraction(2,9));
	if (result.num != 31 || result.den != 18) {
		printf("Calling add_fractions(make_fraction(3,2), make_fraction(2,9)). Expected result = 31/18. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}

	result = add_fractions(make_fraction(3,12), make_fraction(4,9));
	if (result.num != 25 || result.den != 36) {
		printf("Calling add_fractions(make_fraction(3,12), make_fraction(4,9)). Expected result = 25/36. Actual result = ");
		print_fraction(result);
		printf(".\n");
	}



	return 0;
}