From 87cb8f5e8de75233cd65f2b61315fea2b7468e94 Mon Sep 17 00:00:00 2001 From: Andrei F Date: Wed, 12 Oct 2022 22:30:58 -0700 Subject: Added pseudocode file and output file and changed the main file name to include my last name --- .../CST116-Ch8-Debugging-Florea.cpp | 114 +++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 CST116-Ch8-Debugging/CST116-Ch8-Debugging-Florea.cpp (limited to 'CST116-Ch8-Debugging/CST116-Ch8-Debugging-Florea.cpp') diff --git a/CST116-Ch8-Debugging/CST116-Ch8-Debugging-Florea.cpp b/CST116-Ch8-Debugging/CST116-Ch8-Debugging-Florea.cpp new file mode 100644 index 0000000..2cb243c --- /dev/null +++ b/CST116-Ch8-Debugging/CST116-Ch8-Debugging-Florea.cpp @@ -0,0 +1,114 @@ +/******************************************************************** + * Andrei Florea - CST116 - CH8 - Debugging + * +* File: CST116-Ch8-Debugging.cpp +* +* General Instructions: Complete each step before proceeding to the +* next. +* +* Debugging Exercise 1 +* +* 1) Insert a breakpoint on the lines indicated in the code. +* 2) Run to Breakpoint 1. +* 3) Place a watch on i. +* 4) Execute the while statement by doing a "Step Into". +* 5) The execution continues to the cout statement as expected. +* 6) Step over the cout statement. +* 7) Why didn't the flow of the program return back to the while +* statement? + * + * The flow of the program did not return to the while statement because of the semicolon on the while statement, + * this is also explained in the next step. The brackets, which I thought had an error to do with the + * flow of the program not returning to the while statement do not matter here. + * +* 8) Fix this problem by removing the ; after the while statement. +* 9) Stop debugging and repeat Steps 2 � 5 to verify the correction +* worked. + * + * Done, however, debugging will now not enter the while block to execute the cout statement. + * +* 10) Stop debugging. +* +* Debugging Exercise 2 +* +* 1) Run to Breakpoint 1. +* 2) Step into the while loop. +* 3) Why did the cout not execute? + * + * The cout did not execute because the while loop is comparing if the variable i is less than 0. + * However, the variable i is initialized as 0, and therefore is not less than 0, so it does not step + * into the while loop. + * +* 4) Check the value of i, now check the condition, does the +* condition evaluate to true? +* 5) Change the "< 0" to a "< 10". +* 6) Stop debugging and repeat Steps 1 � 4 to verify the correction +* worked. + * + * It works but it's an infinite loop. + * +* 7) Stop debugging. +* +* Debugging Exercise 3 +* +* 1) Run the program without debugging. +* 2) What is happening now is an infinite loop. +* 3) End your program by holding down the Ctrl key and pressing C. +* 4) Fix the problem by adding a "++" after the i in the cout +* statement. +* 5) Run the program to Breakpoint 2 and verify that the output +* displayed on the screen is 0 � 9. + * + * Yes, if I add another breakpoint after the while loop block and run it in debug mode and check the console, + * the outputs are 0 to 9. However, the variable i is equal to 10, which makes sense because that is how it + * got out of the while loop block. +* +* Debugging Exercise 4 +* +* 1) Run to Breakpoint 2. +* 2) Add a watch to the variable count. +* 3) Verify that the contents of count is garbage. +* 4) Step into the loop. +* 5) What is the value stored in count now? + * + * The value stored in count before was 1, but after stepping into the loop the value stored is now 10 + * +* 6) Where was 10 assigned to count? + * + * I believe the 10 was assigned to count on line 99, where basically it just did a loop on that line without entering + * the line below, and it did it until count was equal to 10. + * +* 7) Fix the problem and re-run to verify. + * + * I fixed the problem, which was the same as the other loop with the semicolon on the for loop. + * I know the problem is fixed as I used the debugging tool and followed the flow of the code, entering + * the for loop until count was 10 + * + * I am also adding curly brackets (which are not necessary as I found out) but it makes the code cleaner + * and easier to read. + * +********************************************************************/ +#include +using std::cout; +using std::endl; + +int main() +{ + int i = 0; + int count; + + // Breakpoint 1 + // Put a breakpoint on the following line + while (i < 10) { + cout << i++ << endl; + } + + + // Breakpoint 2 + // Put a breakpoint on the following line + for (count = 0; count < 10; count++) { + cout << count << endl; + } + + return 0; +} -- cgit v1.2.3