/* ========================================= Filename: integer.c Filedate: January 17, 2006 This program treats integers as eqivalence classes of natural numbers. ========================================= */ #include #include struct myinteger { long a; long b; }; int is_equal(struct myinteger x, struct myinteger y); int is_less(struct myinteger x, struct myinteger y); int is_less_equal(struct myinteger x, struct myinteger y); struct myinteger sum_up(struct myinteger x, struct myinteger y); struct myinteger multiply(struct myinteger x, struct myinteger y); void printbig(struct myinteger x); int is_equal(struct myinteger x, struct myinteger y) { if (x.a + y.b == x.b +y.a) { return(1); } else { return(0); } } int is_less(struct myinteger x, struct myinteger y) { if (x.a + y.b < x.b + y.a) { return(1); } else { return(0); } } int is_less_equal(struct myinteger x, struct myinteger y) { if (x.a + y.b <= x.b + y.a) { return(1); } else { return(0); } } struct myinteger sum_up(struct myinteger x, struct myinteger y) { struct myinteger z; z.a = x.a + y.a; z.b = x.b + y.b; return(z); } struct myinteger multiply(struct myinteger x, struct myinteger y) { struct myinteger z; z.a = x.a * y.a + x.b*y.b; z.b = x.a * y.b + x.b*y.a; return(z); } void printbig(struct myinteger x) { printf("<(%ld, %ld)>", x.a, x.b); } /* ===== Main ====== */ int main() { long i,j; struct myinteger integer_1; struct myinteger integer_2; struct myinteger integer_3; struct myinteger integer_4; struct myinteger integer_5; printf("Give a value a for the assets of your first integer.\n"); scanf("%ld", &integer_1.a); printf("Give a value b for the liabilities of your first integer.\n"); scanf("%ld", &integer_1.b); printf("Give a value a for the assets of your second integer.\n"); scanf("%ld", &integer_2.a); printf("Give a value b for the liabilities of your second integer.\n"); scanf("%ld", &integer_2.b); if (is_equal (integer_1,integer_2)) { printf("The first integer is equal to the second.\n\n"); } else { printf("The first integer is NOT equal to the second.\n\n"); } if (is_less(integer_1,integer_2)) { printf("The first integer is less than the second.\n\n"); } else { printf("The first integer is NOT less than the second.\n\n"); } if (is_less_equal (integer_1,integer_2)) { printf("The first integer is less equal the second.\n\n"); } else { printf("The first integer is NOT less equal the second.\n\n"); } integer_3 = sum_up(integer_1, integer_2); printf("The sum of your integers is "); printbig(integer_3); printf("\n\n"); integer_4 = multiply(integer_1, integer_2); printf("The product of your integers is "); printbig(integer_4); printf("\n\n"); i = integer_1.a-integer_1.b; j = integer_2.a-integer_2.b; printf("As a check, the first integer you input\n"); printf("can be written more compactly as %ld\n", i); printf("Also, the second integer you input\n"); printf("can be written as %ld\n", j); printf("\n"); printf("So the sum is %ld\n", i+j); printf("\n"); printf("And the product is %ld\n", i*j); printf("\n"); i = integer_3.a; j = integer_3.b; printf("Note that %ld minus %ld is %ld\n\n", i, j, i-j); i = integer_4.a; j = integer_4.b; printf("Also, note that %ld minus %ld is %ld\n\n", i, j, i-j); return(0); }