// file: lecture_07/example.cc // // local include files // #include "example.h" // method: main // // main program starts here // int main(int argc, char** argv) { // grab the command line arguments as two integers // long i = atoi(argv[1]); long j = atoi(argv[2]); fprintf(stdout, "program name = %s\n", argv[0]); fprintf(stdout, "argv[1] = %d\n", i); fprintf(stdout, "argv[2] = %d\n", j); // do some math // long k = i + j; fprintf(stdout, "k [%d] = i [%d] + j [%d]\n", k, i, j); long l = i - j; fprintf(stdout, "l [%d] = i [%d] - j [%d]\n", l, i, j); long m = i * j; fprintf(stdout, "m [%d] = i [%d] * j [%d]\n", m, i, j); long n = i / j; fprintf(stdout, "n [%d] = i [%d] / j [%d]\n", n, i, j); k = i + j + j + j + j - i - j + i + j + j; fprintf(stdout, "new value of k = %d\n", k); k = (i * j) + i; fprintf(stdout, "mult/add: new value of k = %d\n", k); k = i * (j + i); fprintf(stdout, "mult/add: new value of k = %d\n", k); // let's do some floats // fprintf(stdout, "------------\n"); float arg3 = atof(argv[3]); float arg4 = atof(argv[4]); fprintf(stdout, "program name = %s\n", argv[0]); fprintf(stdout, "argv[3] = %f\n", arg3); fprintf(stdout, "argv[4] = %f\n", arg4); // all float calculations // float sum = arg3 + arg4; fprintf(stdout, "sum = %f\n", sum); sum = arg3 / arg4; fprintf(stdout, "sum (division) = %f\n", sum); sum = arg3 * arg4; fprintf(stdout, "sum (multiplication) = %f\n", sum); sum = arg3 - arg4; fprintf(stdout, "sum (subtraction) = %f\n", sum); // mixed calculations: use casting! // long z = 27; float zz = arg3 * (float)i / j; fprintf(stdout, "zz [%f] = arg3 [%f] * i [%d] / j [%d]\n", zz, arg3, i, j); // exponentiation // sum = pow(arg3, arg4); fprintf(stdout, "pow(%f, %f) = %f\n", arg3, arg4, sum); //--------------------------------------------------------------------------- // some additional useful operators //--------------------------------------------------------------------------- // modulo operator // fprintf(stdout, "%d %% %d = %d\n", i, j, i % j); fprintf(stdout, "%d %% %d = %d\n", -i, -j, -i % -j); fprintf(stdout, "%d %c %d = %d\n", j, '%', i, j % i); fprintf(stdout, "%d %c %d = %d\n", -j, '%', -i, -j % -i); // increment and decrement // long inc_i = i; fprintf(stdout, "i before = %d\n", i); // inc_i = ++i; fprintf(stdout, "inc_i after = %d\n", ++inc_i); inc_i = i; fprintf(stdout, "inc_i after = %d\n", inc_i++); inc_i = i; fprintf(stdout, "i before = %d\n", i); fprintf(stdout, "inc_i after = %d\n", --inc_i); inc_i = i; fprintf(stdout, "inc_i after = %d\n", inc_i--); // equivalents // long acc = 0; for (long alex = 0; alex < 10; alex++) { acc += alex; fprintf(stdout, "(%d): %d\n", alex, acc); } for (long alex = 10; alex > 0; alex--) { acc -= alex; fprintf(stdout, "(%d): %d\n", alex, acc); } // non-arithmetic types // char b = 'z'; char a = --b; fprintf(stdout, "a = %c (%d) b = %c (%d)\n", a, a, b, b); char c = 'z' / (long)2; fprintf(stdout, "c = %c (%d)\n", c, c); // exit gracefully // return(0); }