Computer Science: A Structured Programming Approach Using C1 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 Chapter 5 Chapter 5 Selection—Making Decisions Selection—Making Decisions
Computer Science: A Structured Programming Approach Using C2 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. Logical Data in C Logical Operators Evaluating Logical Expressions Comparative Operators Topics discussed in this section:
Computer Science: A Structured Programming Approach Using C3 FIGURE 5-1 true and false on the Arithmetic Scale
Computer Science: A Structured Programming Approach Using C4 FIGURE 5-2 Logical Operators Truth Table
Computer Science: A Structured Programming Approach Using C5 FIGURE 5-3 Short-circuit Methods for and /or
Computer Science: A Structured Programming Approach Using C6 PROGRAM 5-1Logical Expressions
Computer Science: A Structured Programming Approach Using C7 PROGRAM 5-1Logical Expressions
Computer Science: A Structured Programming Approach Using C8 FIGURE 5-4 Relational Operators
Computer Science: A Structured Programming Approach Using C9 FIGURE 5-5 Comparative Operator Complements
Computer Science: A Structured Programming Approach Using C10 Table 5-1Examples of Simplifying Operator Complements
Computer Science: A Structured Programming Approach Using C11 PROGRAM 5-2Comparative Operators
Computer Science: A Structured Programming Approach Using C12 PROGRAM 5-2Comparative Operators
Computer Science: A Structured Programming Approach Using C 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. if…else and Null else Statement Nested if Statements and Dangling else Problem Simplifying if Statements Conditional Expressions Topics discussed in this section:
Computer Science: A Structured Programming Approach Using C14 FIGURE 5-6 Two-way Decision Logic
Computer Science: A Structured Programming Approach Using C15 FIGURE 5-7 if...else Logic Flow
Computer Science: A Structured Programming Approach Using C16 Table 5-2Syntactical Rules for if…else Statements
Computer Science: A Structured Programming Approach Using C17 FIGURE 5-8 A Simple if...else Statement
Computer Science: A Structured Programming Approach Using C18 FIGURE 5-9 Compound Statements in an if...else
Computer Science: A Structured Programming Approach Using C19 FIGURE 5-10 Complemented if...else Statements
Computer Science: A Structured Programming Approach Using C20 FIGURE 5-11 A Null else Statement
Computer Science: A Structured Programming Approach Using C21 FIGURE 5-12 A Null if Statement
Computer Science: A Structured Programming Approach Using C22 PROGRAM 5-3Two-way Selection
Computer Science: A Structured Programming Approach Using C23 PROGRAM 5-3Two-way Selection
Computer Science: A Structured Programming Approach Using C24 FIGURE 5-13 Nested if Statements
Computer Science: A Structured Programming Approach Using C25 PROGRAM 5-4Nested if Statements
Computer Science: A Structured Programming Approach Using C26 PROGRAM 5-4Nested if Statements
Computer Science: A Structured Programming Approach Using C27 else is always paired with the most recent unpaired if. Note
Computer Science: A Structured Programming Approach Using C28 FIGURE 5-14 Dangling else
Computer Science: A Structured Programming Approach Using C29 FIGURE 5-15 Dangling else Solution
Computer Science: A Structured Programming Approach Using C30 Table 5-3Simplifying the Condition
Computer Science: A Structured Programming Approach Using C31 FIGURE 5-16 Conditional Expression
Computer Science: A Structured Programming Approach Using C32 Table 5-4Examples of Marginal Tax Rates
Computer Science: A Structured Programming Approach Using C33 FIGURE 5-17 Design for Calculate Taxes
Computer Science: A Structured Programming Approach Using C34 FIGURE 5-18 Design for Program 5-5 (Part I)
Computer Science: A Structured Programming Approach Using C35 FIGURE 5-18 Design for Program 5-5 (Part II)
Computer Science: A Structured Programming Approach Using C36 FIGURE 5-18 Design for Program 5-5 (Part III)
Computer Science: A Structured Programming Approach Using C37 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C38 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C39 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C40 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C41 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C42 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C43 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C44 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C45 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C46 PROGRAM 5-5Calculate Taxes
Computer Science: A Structured Programming Approach Using C 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. The switch Statement The else-if Topics discussed in this section:
Computer Science: A Structured Programming Approach Using C48 FIGURE 5-19 switch Decision Logic
Computer Science: A Structured Programming Approach Using C49 FIGURE 5-20 switch Statement Syntax
Computer Science: A Structured Programming Approach Using C50 FIGURE 5-21 switch Flow
Computer Science: A Structured Programming Approach Using C51 PROGRAM 5-6Demonstrate the switch Statement
Computer Science: A Structured Programming Approach Using C52 FIGURE 5-22 switch Results
Computer Science: A Structured Programming Approach Using C53 FIGURE 5-23 A switch with break Statements
Computer Science: A Structured Programming Approach Using C54 PROGRAM 5-7Multivalued case Statements
Computer Science: A Structured Programming Approach Using C55 Table 5-5Summary of switch Statement Rules
Computer Science: A Structured Programming Approach Using C56 PROGRAM 5-8Student Grading
Computer Science: A Structured Programming Approach Using C57 PROGRAM 5-8Student Grading
Computer Science: A Structured Programming Approach Using C58 PROGRAM 5-8Student Grading
Computer Science: A Structured Programming Approach Using C59 FIGURE 5-24 The else-if Logic Design for Program 5-9
Computer Science: A Structured Programming Approach Using C60 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. Note
Computer Science: A Structured Programming Approach Using C61 PROGRAM 5-9Convert Score to Grade
Computer Science: A Structured Programming Approach Using C62 PROGRAM 5-9Convert Score to Grade
Computer Science: A Structured Programming Approach Using C63 PROGRAM 5-9Convert Score to Grade
Computer Science: A Structured Programming Approach Using C 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, C99 has two parallel but separate header files for manipulating characters: ctype.h and wctype.h. Standard Characters Functions A Classification Program Handling Major Errors Topics discussed in this section:
Computer Science: A Structured Programming Approach Using C65 FIGURE 5-25 Classifications of the Character Type
Computer Science: A Structured Programming Approach Using C66 Table 5-6Classifying Functions continued
Computer Science: A Structured Programming Approach Using C67 Table 5-6Classifying Functions (continued)
Computer Science: A Structured Programming Approach Using C68 Table 5-7Conversion Functions
Computer Science: A Structured Programming Approach Using C69 PROGRAM 5-10Demonstrate Classification Functions
Computer Science: A Structured Programming Approach Using C70 PROGRAM 5-10Demonstrate Classification Functions
Computer Science: A Structured Programming Approach Using C 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. Calculator Design Calculator Incremental Design Topics discussed in this section:
Computer Science: A Structured Programming Approach Using C72 FIGURE 5-26 Design for Menu-driven Calculator
Computer Science: A Structured Programming Approach Using C73 PROGRAM 5-11Menu-driven Calculator—First Increment
Computer Science: A Structured Programming Approach Using C74 PROGRAM 5-11Menu-driven Calculator—First Increment
Computer Science: A Structured Programming Approach Using C75 PROGRAM 5-11Menu-driven Calculator—First Increment
Computer Science: A Structured Programming Approach Using C76 PROGRAM 5-11Menu-driven Calculator—First Increment
Computer Science: A Structured Programming Approach Using C77 PROGRAM 5-12Menu-driven Calculator—Third Increment
Computer Science: A Structured Programming Approach Using C78 PROGRAM 5-12Menu-driven Calculator—Third Increment
Computer Science: A Structured Programming Approach Using C79 PROGRAM 5-12Menu-driven Calculator—Third Increment
Computer Science: A Structured Programming Approach Using C80 PROGRAM 5-12Menu-driven Calculator—Third Increment
Computer Science: A Structured Programming Approach Using C81 PROGRAM 5-12Menu-driven Calculator—Third Increment
Computer Science: A Structured Programming Approach Using C82 PROGRAM 5-12Menu-driven Calculator—Third Increment
Computer Science: A Structured Programming Approach Using C83 PROGRAM 5-12Menu-driven Calculator—Third Increment
Computer Science: A Structured Programming Approach Using C84 PROGRAM 5-13Menu-driven Calculator—Fifth Increment
Computer Science: A Structured Programming Approach Using C85 PROGRAM 5-13Menu-driven Calculator—Fifth Increment
Computer Science: A Structured Programming Approach Using C86 PROGRAM 5-13Menu-driven Calculator—Fifth Increment
Computer Science: A Structured Programming Approach Using C87 PROGRAM 5-13Menu-driven Calculator—Fifth Increment
Computer Science: A Structured Programming Approach Using C88 PROGRAM 5-13Menu-driven Calculator—Fifth Increment
Computer Science: A Structured Programming Approach Using C89 PROGRAM 5-13Menu-driven Calculator—Fifth Increment
Computer Science: A Structured Programming Approach Using C90 PROGRAM 5-13Menu-driven Calculator—Fifth Increment
Computer Science: A Structured Programming Approach Using C91 PROGRAM 5-13Menu-driven Calculator—Fifth Increment
Computer Science: A Structured Programming Approach Using C92 PROGRAM 5-13Menu-driven Calculator—Fifth Increment
Computer Science: A Structured Programming Approach Using C Software Engineering In this section, we discuss some software engineering issues related to decisions. Dependent Statements Negative Logic Rules for Selection Statements Selection in Structure Charts Topics discussed in this section:
Computer Science: A Structured Programming Approach Using C94 PROGRAM 5-14Examples of Poor and Good Nesting Styles
Computer Science: A Structured Programming Approach Using C95 Table 5-8Indentation Rules
Computer Science: A Structured Programming Approach Using C96 Avoid compound negative statements! Note
Computer Science: A Structured Programming Approach Using C97 Table 5-9Complementing Expressions
Computer Science: A Structured Programming Approach Using C98 Table 5-10Selection Rules
Computer Science: A Structured Programming Approach Using C99 FIGURE 5-27 Structure Chart Symbols for Selection
Computer Science: A Structured Programming Approach Using C100 FIGURE 5-28 Multiway Selection in a Structure Chart