300 likes | 310 Views
Chapter 6: More on the Selection Structure. Introduction to Programming with C++ Fourth Edition. Objectives. Include a nested selection structure in pseudocode and in a flowchart Code a nested selection structure in C++ Recognize common logic errors in selection structures.
E N D
Chapter 6:More on the Selection Structure Introduction to Programming with C++ Fourth Edition
Objectives • Include a nested selection structure in pseudocode and in a flowchart • Code a nested selection structure in C++ • Recognize common logic errors in selection structures Introduction to Programming with C++, Fourth Edition
Objectives (continued) • Include the switch form of the selection structure in pseudocode and in a flowchart • Code the switch form of the selection structure in C++ • Format numeric output in C++ Introduction to Programming with C++, Fourth Edition
Nested Selection Structures • Nested selection structure: • Selection structure within another selection structure • Used when more than one decision must be made before the appropriate action can be taken • Primary decision - always made by the outer selection structure • Secondary decision - always made by the inner (nested) selection structure Introduction to Programming with C++, Fourth Edition
Nested Selection Structures (continued) Introduction to Programming with C++, Fourth Edition
Nested Selection Structures (continued) Introduction to Programming with C++, Fourth Edition
Logic Errors in Selection Structures • Logic errors are commonly made as a result of the following mistakes: • Using a logical operator rather than a nested selection structure • Reversing the primary and secondary decisions • Using an unnecessary nested selection structure Introduction to Programming with C++, Fourth Edition
Logic Errors in Selection Structures (continued) Introduction to Programming with C++, Fourth Edition
Logic Errors in Selection Structures (continued) • Test Data for Desk-Checking • Data for first desk-check • Status: F • Years: 4 • Data for second desk-check • Status: F • Years: 15 • Data for third desk-check • Status: P • Years: 11 Introduction to Programming with C++, Fourth Edition
Results of Desk-Checking the Correct Algorithm Introduction to Programming with C++, Fourth Edition
Using a Logical Operator Rather Than a Nested Selection Structure • One common error made when writing selection structures is to use a logical operator in the outer selection structure’s condition when a nested selection structure is needed Introduction to Programming with C++, Fourth Edition
Correct Algorithm and an Incorrect Algorithm Containing the First Logic Error Introduction to Programming with C++, Fourth Edition
Results of Desk-Checking the Incorrect Algorithm Introduction to Programming with C++, Fourth Edition
Reversing the Primary and Secondary Decisions • Common error: putting the secondary decision in the outer selection structure, and putting the primary decision in the nested selection structure Introduction to Programming with C++, Fourth Edition
Correct Algorithm and an Incorrect Algorithm Containing the Second Logic Error Introduction to Programming with C++, Fourth Edition
Results of Desk-Checking the Incorrect Algorithm Introduction to Programming with C++, Fourth Edition
Using an Unnecessary Nested Selection Structure • In most cases, a selection structure containing this error still produces the correct results • However, it is less efficient than selection structures that are properly structured Introduction to Programming with C++, Fourth Edition
Correct Algorithm and an Inefficient Algorithm Containing the Third Logic Error Introduction to Programming with C++, Fourth Edition
Results of Desk-Checking the Inefficient Algorithm Introduction to Programming with C++, Fourth Edition
Using the if/elseForm to Create Multiple-Path Selection Structures Introduction to Programming with C++, Fourth Edition
Two Versions of the C++ Code for the Grade Problem Introduction to Programming with C++, Fourth Edition
Two Versions of the C++ Code for the Grade Problem (continued) Introduction to Programming with C++, Fourth Edition
Using the switchForm to Create Multiple-Path Selection Structures Introduction to Programming with C++, Fourth Edition
Using the switchForm • Switch statement: • Begins with switch followed by an open brace • Ends with a closing brace • Switch clause - keyword switch followed by a selectorExpression enclosed in parentheses • selectorExpression – • Can contain any combination of variables, constants, functions, methods, and operators • Must result in a bool, char, short, int, or long Introduction to Programming with C++, Fourth Edition
Using the switchForm (continued) • Each clause in the switch statement contains a value followed by a colon • Data type of the value should be compatible with the data type of the selectorExpression • Break statement - tells the computer to leave (“break out of”) the switch statement at that point Introduction to Programming with C++, Fourth Edition
Formatting Numeric Output • Use setiosflags stream manipulator to display a program’s numeric output in fixed-point notation only • Must use #include <iomanip> directive and using std::ios; and using std::setiosflags; • Use setprecision to control the number of decimal places displayed Introduction to Programming with C++, Fourth Edition
Formatting Numeric Output (continued) Introduction to Programming with C++, Fourth Edition
Formatting Numeric Output (continued) Introduction to Programming with C++, Fourth Edition
Summary • Nested selection structure: • Selection structure within another selection structure • Used when more than one decision must be made before the appropriate action can be taken • Three common logic errors in selection structures • Logic errors are commonly made as a result of the following mistakes: • Using a logical operator rather than a nested selection structure • Reversing the primary and secondary decisions • Using an unnecessary nested selection structure Introduction to Programming with C++, Fourth Edition
Summary (continued) • The switch form of the selection structure is often simpler to use if there are many paths from which to choose • Format output using stream manipulators Introduction to Programming with C++, Fourth Edition