======Project: Exponentiator====== A project for CSCS 1320 C/C++ by Paul Sechrist during the Spring 2013. =====Objectives===== C program must return the result of a first integer argument raised to the power of a second integer argument using only an increment mathematical operation. =====Challenge===== C program to return the root of two arguments. =====Prerequisites===== In order to successfully accomplish/perform this project, the listed resources/experiences need to be consulted/achieved: * C selection statements * C repetition statement =====Procedure===== I needed to start from the bottom up. I made a counting function, then an addition function using the counting function, then a multiplication using the addition function, then the expo function. I also needed if statements for the special cases such as power of 0 or 1 and base of 0 or 1. =====Code===== ==== Counter ==== #include #include //program that takes an integer and counts 1 increment more //n1 stands for number 1 int main( ) { int n1; fscanf(stdin, "%d", &n1); n1 = (n1++); fprintf(stdout, "%d", n1); return(0); } ==== Adder ==== #include #include //program that takes two numbers and adds them together by way of counting //n1 = first number, n2 = second number //cc1 = counting count 1 int main( ) { int n1; int n2; int sum; int cc1 = 0; fscanf(stdin, "%d", &n1); fscanf(stdin, "%d", &n2); sum = n1; for(cc1 = 0; cc1 < n2; cc1++) { sum = (sum++); } fprintf(stdout, "%d", sum); return(0); } ==== Multiplication ==== #include #include //program that takes two numbers and multiplies them together by way of counting //mult1 = first number, mult2 = second number //atrack = add tracking number //mtrack = multiplier tracking number //prod = final answer int main( ) { int mult1; int mult2; int prod; int atrack = 0; int mtrack = 1; fscanf(stdin, "%d", &mult1); fscanf(stdin, "%d", &mult2); prod = mult1; if (mult1 == 0) { prod = 0; fprintf(stdout, "%d", prod); } else if (mult2 == 0) { prod = 0; fprintf(stdout, "%d", prod); } else if (mult1 == 1) { prod = mult2; fprintf(stdout, "%d", prod); } else if (mult2 == 1) { prod = mult1; fprintf(stdout, "%d", prod); } else { for(mtrack = 1; mtrack < mult2; mtrack++) { for(atrack = 0; atrack < mult1; atrack++) { prod = prod++; } } fprintf(stdout, "%d", prod); } return(0); } ==== Expo ==== #include #include //program that takes two numbers and multiplies them together by way of counting //base = first number/base number, power = second number/power //atrack = add tracking number //mtrack = multiplier tracking number //etrack = expo track number //prod = final product //mval is value for mult part of function //aval is value for add part of function int main( ) { int base; int power; int prod; int atrack = 0; int mtrack = 1; int etrack = 0; fprintf(stdout, "Enter your base number\n"); fscanf(stdin, "%d", &base); fprintf(stdout, "Enter your power number\n"); fscanf(stdin, "%d", &power); prod = base; int mval = base; int aval = base; if (base == 0) { prod = 0; fprintf(stdout, "Your Answer is: %d", prod); } else if (power == 0) { prod = 1; fprintf(stdout, "Your Answer is: %d", prod); } else if (base == 1) { prod = 1; fprintf(stdout, "Your Answer is: %d", prod); } else if (power == 1) { prod = base; fprintf(stdout, "Your Answer is: %d", prod); } else { for(etrack = 1; etrack < power; etrack++) { for(mtrack = 1; mtrack < mval; mtrack++) { for(atrack = 0; atrack < aval; atrack++) { prod = prod++; } } aval = prod; } fprintf(stdout, "Your Answer is: %d", prod); } return(0); } =====Execution===== G:\CCC\CSCS1320\Joe>expo.exe Enter your base number 10 Enter your power number 0 Your Answer is: 1 G:\CCC\CSCS1320\Joe>expo.exe Enter your base number 10 Enter your power number 1 Your Answer is: 10 G:\CCC\CSCS1320\Joe>expo.exe Enter your base number 10 Enter your power number 2 Your Answer is: 100 G:\CCC\CSCS1320\Joe>expo.exe Enter your base number 10 Enter your power number 3 Your Answer is: 1000 G:\CCC\CSCS1320\Joe>expo.exe Enter your base number 10 Enter your power number 4 Your Answer is: 10000 G:\CCC\CSCS1320\Joe>expo.exe Enter your base number 0 Enter your power number 10 Your Answer is: 0 G:\CCC\CSCS1320\Joe>expo.exe Enter your base number 1 Enter your power number 10 Your Answer is: 1 G:\CCC\CSCS1320\Joe> =====Reflection===== This one took me back to the basics of programming, break it down, start small, work big, and go one step at a time.