diff options
| author | github-classroom[bot] <66690702+github-classroom[bot]@users.noreply.github.com> | 2022-10-21 04:24:56 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-10-21 04:24:56 +0000 |
| commit | b62080ff81e5e2e5ceba77c48f8cd9f8661e65f3 (patch) | |
| tree | adf66a3fd83493dcb5535768f0b160fdfd256f6c | |
| download | cst116-ch10-debugging-alexandra-apetroaei-b62080ff81e5e2e5ceba77c48f8cd9f8661e65f3.tar.xz cst116-ch10-debugging-alexandra-apetroaei-b62080ff81e5e2e5ceba77c48f8cd9f8661e65f3.zip | |
Initial commit
| -rw-r--r-- | CST116-Ch10-Debugging/CST116-Ch10-Debugging.cpp | 148 | ||||
| -rw-r--r-- | CST116-Ch10-Debugging/CST116-Ch10-Debugging.sln | 31 | ||||
| -rw-r--r-- | CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj | 135 | ||||
| -rw-r--r-- | CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj.filters | 22 | ||||
| -rw-r--r-- | CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj.user | 4 | ||||
| -rw-r--r-- | README.md | 3 |
6 files changed, 343 insertions, 0 deletions
diff --git a/CST116-Ch10-Debugging/CST116-Ch10-Debugging.cpp b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.cpp new file mode 100644 index 0000000..1e3d58b --- /dev/null +++ b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.cpp @@ -0,0 +1,148 @@ +/********************************************************************
+* File: CST116-Ch10-Debugging.cpp
+*
+* General Instructions: Complete each step before proceeding to the
+* next.
+*
+* Debugging Exercise 1
+*
+* 1) Build and run the program.
+* 2) Examine the code and the output and notice the use of
+* parallel arrays.
+* 3) Insert breakpoints at Breakpoint 1, Breakpoint 2, and Breakpoint
+* 3.
+* 4) Run to Breakpoint 1.
+* 5) Place a watch on varX, varY and varZ. Click on the '+' in the
+* watch window to see the individual elements associated with each
+* of the arrays.
+* 6) Continue running your program to Breakpoint 2.
+* 7) Add a watch on the array called name. Again, click on the '+'
+* symbol. Notice how a multidimensional array is shown in the
+* debugger, the null terminating characters location, and how a
+* character is represented within each element of the array.
+* 8) Continue running the program to Breakpoint 3.
+* 9) Notice the contents of varX and varY now that you are back in the
+* main function.
+* 10) Clear all the breakpoints.
+* 11) Stop debugging.
+*
+* Debugging Exercise 2
+*
+* 1) Change the constant SIZE from 5 to 10.
+* 2) Change any literal containing a 5 to the constant SIZE.
+* Notice the usefulness of the constant when changes need
+* to be made to your code.
+* 3) Set a breakpoint at Breakpoint 4. Now on this breakpoint
+* set the necessary condition so the loop breaks when x hits 8.
+* (Hint: If you need help setting breakpoints based upon a
+* condition refer to Chapter 8).
+* 4) Run to Breakpoint 4.
+* 5) Continue stepping into the remainder of the for loop until the
+* flow returns back to main.
+* 6) Make sure your Watch window is visible and notice the contents
+* of varY and varZ now that you are back in main.
+* 7) Stop debugging.
+* 8) Disable all breakpoints.
+* 9) Rebuild and execute the program and verify the results.
+*
+* Debugging Exercise 3
+*
+* 1) Just before the call to the PrintFunction in main, add an
+* assignment statement to change the first element in the
+* array varZ to -99.
+* 2) Build and execute your code, verifying that the calculations
+* are correct in relation to element 0 of varZ.
+* 3) Add a line to assign the contents of the second element of
+* varX to 99 in FunctionTwo.
+* 4) Rebuild your program.
+* 5 Obviously there is a problem. Remove the const from the
+* function declaration and header for varX.
+* 5) Now you should be able to build and execute your code. Do it.
+* 6) Set a breakpoint on Breakpoint 2.
+* 7) Re-enable Breakpoint 2.
+* 8) Run to Breakpoint 2 and make sure you have a watch on the
+* variable name.
+* 9) Click on the '+'. Once you see all the elements
+* within the array, change the 'Value' (in the Value field)
+* for the first element of the array directly within the Watch
+* window to the character 'Z'. Notice how the value is updated
+* by displaying the new ASCII value too.
+* 10) Stop debugging.
+* 11) Disable all breakpoints.
+*
+********************************************************************/
+#include <iostream>
+#include <iomanip>
+using std::cin;
+using std::cout;
+using std::endl;
+using std::setw;
+
+void GetAndDisplayWelcomeInfo();
+void FunctionOne(int varX[], int varY[]);
+void FunctionTwo(const int varX[], const int varY[], int varZ[]);
+void PrintFunction(const int varX[], const int varY[],
+ const int varZ[]);
+
+const int SIZE = 5;
+
+int main()
+{
+ int varX[5];
+ int varY[SIZE];
+ int varZ[SIZE]; // Notice how we used the const here!
+
+ // Breakpoint 1
+ // Put breakpoint on the following line
+ GetAndDisplayWelcomeInfo();
+ FunctionOne(varX, varY);
+
+ // Breakpoint 3
+ // Put breakpoint on the following line
+ FunctionTwo(varX, varY, varZ);
+ PrintFunction(varX, varY, varZ);
+
+ return 0;
+}
+void GetAndDisplayWelcomeInfo()
+{
+ char name[2][20]; // First name in row 0, last name in row 1
+
+ cout << "Please enter your first name: ";
+ cin >> name[0];
+
+ cout << "\nPlease enter your last name: ";
+ cin >> name[1];
+
+ // Breakpoint 2
+ // Put breakpoint on the following line
+ cout << "\n\n\tWelcome " << name[0] << " " << name[1]
+ << "!\n\t Hope all is well \n\n";
+}
+void FunctionOne(int varX[], int varY[])
+{
+ for (int x = 0; x < SIZE; x++) // NOTICE '<' NOT <=
+ // Breakpoint 4
+ // Put breakpoint on the following line
+ varX[x] = x;
+
+ for (int x = 0; x < 5; x++)
+ varY[x] = x + 100;
+}
+void FunctionTwo(const int varX[], const int varY[], int varZ[])
+{
+ for (int x = 0; x < SIZE; x++) // Notice the const SIZE here
+ varZ[x] = varX[x] + varY[x];
+}
+void PrintFunction(const int varX[20], const int varY[20],
+ const int varZ[20])
+{
+ int x;
+
+ cout << " \t x \t y \t z\n\n";
+
+ for (x = 0; x < SIZE; x++)
+ cout << "\t" << setw(3) << varX[x]
+ << "\t " << varY[x]
+ << "\t " << varZ[x] << endl;
+}
diff --git a/CST116-Ch10-Debugging/CST116-Ch10-Debugging.sln b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.sln new file mode 100644 index 0000000..16653d8 --- /dev/null +++ b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.sln @@ -0,0 +1,31 @@ +
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32804.467
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CST116-Ch10-Debugging", "CST116-Ch10-Debugging.vcxproj", "{25DE9F3E-D136-4E74-AFD8-995BD672D9C4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {25DE9F3E-D136-4E74-AFD8-995BD672D9C4}.Debug|x64.ActiveCfg = Debug|x64
+ {25DE9F3E-D136-4E74-AFD8-995BD672D9C4}.Debug|x64.Build.0 = Debug|x64
+ {25DE9F3E-D136-4E74-AFD8-995BD672D9C4}.Debug|x86.ActiveCfg = Debug|Win32
+ {25DE9F3E-D136-4E74-AFD8-995BD672D9C4}.Debug|x86.Build.0 = Debug|Win32
+ {25DE9F3E-D136-4E74-AFD8-995BD672D9C4}.Release|x64.ActiveCfg = Release|x64
+ {25DE9F3E-D136-4E74-AFD8-995BD672D9C4}.Release|x64.Build.0 = Release|x64
+ {25DE9F3E-D136-4E74-AFD8-995BD672D9C4}.Release|x86.ActiveCfg = Release|Win32
+ {25DE9F3E-D136-4E74-AFD8-995BD672D9C4}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E8F24FCB-F09C-4D1D-BCE3-96CB8DCAAC65}
+ EndGlobalSection
+EndGlobal
diff --git a/CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj new file mode 100644 index 0000000..35e9b1e --- /dev/null +++ b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>16.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{25de9f3e-d136-4e74-afd8-995bd672d9c4}</ProjectGuid>
+ <RootNamespace>CST116Ch10Debugging</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="CST116-Ch10-Debugging.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file diff --git a/CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj.filters b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj.filters new file mode 100644 index 0000000..dc0ce4a --- /dev/null +++ b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="CST116-Ch10-Debugging.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file diff --git a/CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj.user b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj.user new file mode 100644 index 0000000..0f14913 --- /dev/null +++ b/CST116-Ch10-Debugging/CST116-Ch10-Debugging.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project>
\ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e5988c1 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# CST116-Ch10-Debugging + +Testing Arrays |