/* * Morgan Cyrus * CST116 01P * Lab0/CH5 Debugging */ /******************************************************************** * File: Chap_5_Debugging.cpp * * General Instructions: Complete each step before proceeding to the * next. * * Debugging Exercise 1 * * 1) On the lines indicated in the code below, insert a breakpoint. * done * 2) With the program not in debugging mode, start debugging by * using the "Step Into" tool. * done * 3) Click on the Watch1 tab. * done * 4) With the cursor in the Name column type money and press enter. * This adds a programmer defined watch on the variable money. * done * 5) Step Into until you reach the first cout statement. With * the current line being that cout statement, Step Into again. * done * 6) What happened? Where are we now? What is all of this nasty * looking code? * We are on line 84. the value of 'money' is about to be printed (123.449997 is the assigned value, though it will print 123.45). * That said, I don't see any assembly code displayed. * * 7) Remember, stepping into a predefined routine takes you to the * code for that routine. If the debugger can't find the code it * will show the assembly code for that routine. * done, though I did not see the assembly code pop up anywhere. * * 8) How do we get out of this mess? Use the "Step Out" tool. * done, though upon selecting the step out tool (Shift + F11) the code appears to finish running at this point. * 9) In Visual Studio you will be taken back to the same cout * statement. Use the Step Over tool to take you to the next * line. * done * 10) Step over the next cout statement. Now look at the console * window. What was printed? * The following was printed: * * You have $123.45 * Enter percent raise: * * This isn't exactly what I expected though.. The Step Out tool doesn't seem to be stepping back and instead goes to the next cout. * * 11) Select Stop Debugging either from the Debug menu or from your * toolbar. *done */ /* * Debugging Exercise 2 * * 1) With the program stopped, run to Breakpoint 1 by selecting * the Start Debugging menu option, toolbar icon or press F5. * done * * 2) Step over the cout. * done * * 3) Step over the cin. Notice that you can now enter a value. * done * * 4) Enter the value .1 and press enter. * done * * 5) Notice that the current line of execution is now at the * calculation. * done * * 6) Look at your watch. What is the value of money? * 123.449997 * * 7) Hover your mouse pointer over raise. What is its value? * .100000001 * * 8) Step over the calculation. Notice the watch on money is now * red. This designates that the variable just changed its value. * * 9) What happened to our money? I thought a raise was supposed * to increase our money? Stop debugging and fix the calculation. * It asks for a % raise, though we entered .1 * It then multiplies by that number which shows us one tenth of the value of our money, rather than applying a 10% raise. * */ /* Debugging Exercise 3 * * 1) Choose Disable All Breakpoints from the Debug menu. * done * * 2) With the cursor on the calculation, Run to Cursor. Remember * that the Run to Cursor tool can be accessed by right clicking * in the code window and choosing the correct menu option. * done * * 3) Step over the calculation and verify that this time * you end up with more money than before the raise. * done; verified... $129.622 * * 4) Stop debugging. Now run the entire program by choosing the menu * option Start Without Debugging. * done * ********************************************************************/ #include #include using std::cout; using std::cin; using std::endl; int main() { float money = 123.45F; float raise; cout << "You have $"; cout << money << endl; // Breakpoint 1 // Put a breakpoint on the following line cout << "Enter percent raise as a whole number: "; cin >> raise; cout << "You have entered: " << raise << "%\n"; raise = 1 + (raise / 100); money = money * raise; cout << "After your raise you have $"; cout << money << endl; return 0; }