Chapter 5 SelectionMaking Decisions Objectives To understand how
Chapter 5 Selection—Making Decisions Objectives ❏ To understand how decisions are made in a computer ❏ To understand the logical operators: and, or, and not ❏ To understand how a C program evaluates a logical expression ❏ To write programs using logical and comparative operators ❏ To write programs that use two-way selection: if. . . else statements ❏ To write programs that use multi-way selection: switch and else. . . if ❏ To understand C’s classification of characters ❏ To write programs that use C’s character functions ❏ To be able to design a structure chart that specifies function selection Computer Science: A Structured Programming Approach Using C 1
5 -1 Logical Data and Operators A piece of data is called logical if it conveys the idea of true or false. In real life, logical data (true or false) are created in answer to a question that needs a yes–no answer. In computer science, we do not use yes or no, we use true or false. Topics discussed in this section: Logical Data in C Logical Operators Evaluating Logical Expressions Comparative Operators Computer Science: A Structured Programming Approach Using C 2
FIGURE 5 -1 true and false on the Arithmetic Scale Computer Science: A Structured Programming Approach Using C 3
FIGURE 5 -2 Logical Operators Truth Table Computer Science: A Structured Programming Approach Using C 4
FIGURE 5 -3 Short-circuit Methods for and /or Computer Science: A Structured Programming Approach Using C 5
PROGRAM 5 -1 Logical Expressions Computer Science: A Structured Programming Approach Using C 6
PROGRAM 5 -1 Logical Expressions Computer Science: A Structured Programming Approach Using C 7
FIGURE 5 -4 Relational Operators Computer Science: A Structured Programming Approach Using C 8
FIGURE 5 -5 Comparative Operator Complements Computer Science: A Structured Programming Approach Using C 9
Table 5 -1 Examples of Simplifying Operator Complements Computer Science: A Structured Programming Approach Using C 10
PROGRAM 5 -2 Comparative Operators Computer Science: A Structured Programming Approach Using C 11
PROGRAM 5 -2 Comparative Operators Computer Science: A Structured Programming Approach Using C 12
5 -2 Two-Way Selection The decision is described to the computer as a conditional statement that can be answered either true or false. If the answer is true, one or more action statements are executed. If the answer is false, then a different action or set of actions is executed. Topics discussed in this section: if…else and Null else Statement Nested if Statements and Dangling else Problem Simplifying if Statements Conditional Expressions Computer Science: A Structured Programming Approach Using C 13
FIGURE 5 -6 Two-way Decision Logic Computer Science: A Structured Programming Approach Using C 14
FIGURE 5 -7 if. . . else Logic Flow Computer Science: A Structured Programming Approach Using C 15
Table 5 -2 Syntactical Rules for if…else Statements Computer Science: A Structured Programming Approach Using C 16
FIGURE 5 -8 A Simple if. . . else Statement Computer Science: A Structured Programming Approach Using C 17
FIGURE 5 -9 Compound Statements in an if. . . else Computer Science: A Structured Programming Approach Using C 18
FIGURE 5 -10 Complemented if. . . else Statements Computer Science: A Structured Programming Approach Using C 19
FIGURE 5 -11 A Null else Statement Computer Science: A Structured Programming Approach Using C 20
FIGURE 5 -12 A Null if Statement Computer Science: A Structured Programming Approach Using C 21
PROGRAM 5 -3 Two-way Selection Computer Science: A Structured Programming Approach Using C 22
PROGRAM 5 -3 Two-way Selection Computer Science: A Structured Programming Approach Using C 23
FIGURE 5 -13 Nested if Statements Computer Science: A Structured Programming Approach Using C 24
PROGRAM 5 -4 Nested if Statements Computer Science: A Structured Programming Approach Using C 25
PROGRAM 5 -4 Nested if Statements Computer Science: A Structured Programming Approach Using C 26
Note else is always paired with the most recent unpaired if. Computer Science: A Structured Programming Approach Using C 27
FIGURE 5 -14 Dangling else Computer Science: A Structured Programming Approach Using C 28
FIGURE 5 -15 Dangling else Solution Computer Science: A Structured Programming Approach Using C 29
Table 5 -3 Simplifying the Condition Computer Science: A Structured Programming Approach Using C 30
FIGURE 5 -16 Conditional Expression Computer Science: A Structured Programming Approach Using C 31
Table 5 -4 Examples of Marginal Tax Rates Computer Science: A Structured Programming Approach Using C 32
FIGURE 5 -17 Design for Calculate Taxes Computer Science: A Structured Programming Approach Using C 33
FIGURE 5 -18 Design for Program 5 -5 (Part I) Computer Science: A Structured Programming Approach Using C 34
FIGURE 5 -18 Design for Program 5 -5 (Part II) Computer Science: A Structured Programming Approach Using C 35
FIGURE 5 -18 Design for Program 5 -5 (Part III) Computer Science: A Structured Programming Approach Using C 36
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 37
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 38
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 39
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 40
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 41
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 42
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 43
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 44
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 45
PROGRAM 5 -5 Calculate Taxes Computer Science: A Structured Programming Approach Using C 46
5 -3 Multiway Selection In addition to two-way selection, most programming languages provide another selection concept known as multiway selection. Multiway selection chooses among several alternatives. C has two different ways to implement multiway selection: the switch statement and else-if construct. Topics discussed in this section: The switch Statement The else-if Computer Science: A Structured Programming Approach Using C 47
FIGURE 5 -19 switch Decision Logic Computer Science: A Structured Programming Approach Using C 48
FIGURE 5 -20 switch Statement Syntax Computer Science: A Structured Programming Approach Using C 49
FIGURE 5 -21 switch Flow Computer Science: A Structured Programming Approach Using C 50
PROGRAM 5 -6 Demonstrate the switch Statement Computer Science: A Structured Programming Approach Using C 51
FIGURE 5 -22 switch Results Computer Science: A Structured Programming Approach Using C 52
FIGURE 5 -23 A switch with break Statements Computer Science: A Structured Programming Approach Using C 53
PROGRAM 5 -7 Multivalued case Statements Computer Science: A Structured Programming Approach Using C 54
Table 5 -5 Summary of switch Statement Rules Computer Science: A Structured Programming Approach Using C 55
PROGRAM 5 -8 Student Grading Computer Science: A Structured Programming Approach Using C 56
PROGRAM 5 -8 Student Grading Computer Science: A Structured Programming Approach Using C 57
PROGRAM 5 -8 Student Grading Computer Science: A Structured Programming Approach Using C 58
FIGURE 5 -24 The else-if Logic Design for Program 5 -9 Computer Science: A Structured Programming Approach Using C 59
Note The else-if is an artificial C construct that is only used when 1. The selection variable is not an integral, and 2. The same variable is being tested in the expressions. Computer Science: A Structured Programming Approach Using C 60
PROGRAM 5 -9 Convert Score to Grade Computer Science: A Structured Programming Approach Using C 61
PROGRAM 5 -9 Convert Score to Grade Computer Science: A Structured Programming Approach Using C 62
PROGRAM 5 -9 Convert Score to Grade Computer Science: A Structured Programming Approach Using C 63
5 -4 More Standard Functions One of the assets of the C language is its rich set of standard functions that make programming much easier. For example, C 99 has two parallel but separate header files for manipulating characters: ctype. h and wctype. h. Topics discussed in this section: Standard Characters Functions A Classification Program Handling Major Errors Computer Science: A Structured Programming Approach Using C 64
FIGURE 5 -25 Classifications of the Character Type Computer Science: A Structured Programming Approach Using C 65
continued Table 5 -6 Classifying Functions Computer Science: A Structured Programming Approach Using C 66
Table 5 -6 Classifying Functions (continued) Computer Science: A Structured Programming Approach Using C 67
Table 5 -7 Conversion Functions Computer Science: A Structured Programming Approach Using C 68
PROGRAM 5 -10 Demonstrate Classification Functions Computer Science: A Structured Programming Approach Using C 69
PROGRAM 5 -10 Demonstrate Classification Functions Computer Science: A Structured Programming Approach Using C 70
5 -5 Incremental Development Part II In Chapter 4, we introduced the concept of incremental development with a simple calculator program. We continue the discussion by adding a menu and calculator subfunctions. Topics discussed in this section: Calculator Design Calculator Incremental Design Computer Science: A Structured Programming Approach Using C 71
FIGURE 5 -26 Design for Menu-driven Calculator Computer Science: A Structured Programming Approach Using C 72
PROGRAM 5 -11 Menu-driven Calculator—First Increment Computer Science: A Structured Programming Approach Using C 73
PROGRAM 5 -11 Menu-driven Calculator—First Increment Computer Science: A Structured Programming Approach Using C 74
PROGRAM 5 -11 Menu-driven Calculator—First Increment Computer Science: A Structured Programming Approach Using C 75
PROGRAM 5 -11 Menu-driven Calculator—First Increment Computer Science: A Structured Programming Approach Using C 76
PROGRAM 5 -12 Menu-driven Calculator—Third Increment Computer Science: A Structured Programming Approach Using C 77
PROGRAM 5 -12 Menu-driven Calculator—Third Increment Computer Science: A Structured Programming Approach Using C 78
PROGRAM 5 -12 Menu-driven Calculator—Third Increment Computer Science: A Structured Programming Approach Using C 79
PROGRAM 5 -12 Menu-driven Calculator—Third Increment Computer Science: A Structured Programming Approach Using C 80
PROGRAM 5 -12 Menu-driven Calculator—Third Increment Computer Science: A Structured Programming Approach Using C 81
PROGRAM 5 -12 Menu-driven Calculator—Third Increment Computer Science: A Structured Programming Approach Using C 82
PROGRAM 5 -12 Menu-driven Calculator—Third Increment Computer Science: A Structured Programming Approach Using C 83
PROGRAM 5 -13 Menu-driven Calculator—Fifth Increment Computer Science: A Structured Programming Approach Using C 84
PROGRAM 5 -13 Menu-driven Calculator—Fifth Increment Computer Science: A Structured Programming Approach Using C 85
PROGRAM 5 -13 Menu-driven Calculator—Fifth Increment Computer Science: A Structured Programming Approach Using C 86
PROGRAM 5 -13 Menu-driven Calculator—Fifth Increment Computer Science: A Structured Programming Approach Using C 87
PROGRAM 5 -13 Menu-driven Calculator—Fifth Increment Computer Science: A Structured Programming Approach Using C 88
PROGRAM 5 -13 Menu-driven Calculator—Fifth Increment Computer Science: A Structured Programming Approach Using C 89
PROGRAM 5 -13 Menu-driven Calculator—Fifth Increment Computer Science: A Structured Programming Approach Using C 90
PROGRAM 5 -13 Menu-driven Calculator—Fifth Increment Computer Science: A Structured Programming Approach Using C 91
PROGRAM 5 -13 Menu-driven Calculator—Fifth Increment Computer Science: A Structured Programming Approach Using C 92
5 -6 Software Engineering In this section, we discuss some software engineering issues related to decisions. Topics discussed in this section: Dependent Statements Negative Logic Rules for Selection Statements Selection in Structure Charts Computer Science: A Structured Programming Approach Using C 93
PROGRAM 5 -14 Examples of Poor and Good Nesting Styles Computer Science: A Structured Programming Approach Using C 94
Table 5 -8 Indentation Rules Computer Science: A Structured Programming Approach Using C 95
Note Avoid compound negative statements! Computer Science: A Structured Programming Approach Using C 96
Table 5 -9 Complementing Expressions Computer Science: A Structured Programming Approach Using C 97
Table 5 -10 Selection Rules Computer Science: A Structured Programming Approach Using C 98
FIGURE 5 -27 Structure Chart Symbols for Selection Computer Science: A Structured Programming Approach Using C 99
FIGURE 5 -28 Multiway Selection in a Structure Chart Computer Science: A Structured Programming Approach Using C 100
- Slides: 100