50
1 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 Chapter 5 Chapter 5 Selection—Making Decisions Selection—Making Decisions

1 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

Embed Size (px)

Citation preview

Page 1: 1 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

1

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 5Chapter 5 Selection—Making DecisionsSelection—Making Decisions

Page 2: 1 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

2

5-1 Logical Data and Operators

A piece of data is called logical if it conveys the idea of A piece of data is called logical if it conveys the idea of true or false. In real life, logical data (true or false) true or false. In real life, logical data (true or false) are created in answer to a question that needs a yes–are created in answer to a question that needs a yes–no answer. In computer science, we do not use yes or no answer. In computer science, we do not use yes or no, we use true or false.no, we use true or false.

Logical Data in CLogical OperatorsEvaluating Logical ExpressionsComparative Operators

Topics discussed in this section:Topics discussed in this section:

Page 3: 1 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

3

FIGURE 5-1 true and false on the Arithmetic Scale

Page 4: 1 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

4

FIGURE 5-2 Logical Operators Truth Table

Page 5: 1 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

5

FIGURE 5-3 Short-circuit Methods for and /or

Page 6: 1 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

6

PROGRAM 5-1 Logical Expressions

Page 7: 1 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

7

FIGURE 5-4 Relational Operators (關係運算子 )

Page 8: 1 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

8

FIGURE 5-5 Comparative Operator Complements (比較運算子的互補 )

Page 9: 1 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

9

Table 5-1 Examples of Simplifying Operator Complements

Page 10: 1 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

10

PROGRAM 5-2 Comparative Operators (比較運算子 )

Page 11: 1 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

11

5-2 Two-Way Selection

The decision is described to the computer as a The decision is described to the computer as a conditional statement that can be answered either true conditional statement that can be answered either true or false. If the answer is true, one or more action or false. If the answer is true, one or more action statements are executed. If the answer is false, then a statements are executed. If the answer is false, then a different action or set of actions is executed. different action or set of actions is executed.

if…else and Null else StatementNested if Statements and Dangling else ProblemSimplifying if StatementsConditional Expressions

Topics discussed in this section:Topics discussed in this section:

Page 12: 1 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

12

FIGURE 5-7 if...else Logic Flow

Page 13: 1 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

13

Table 5-2 Syntactical Rules for if…else Statements

Page 14: 1 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

14

FIGURE 5-8 A Simple if...else Statement

Page 15: 1 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

15

FIGURE 5-9 Compound Statements in an if...else

Page 16: 1 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

16

FIGURE 5-10 Complemented if...else Statements

Page 17: 1 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

17

FIGURE 5-11 A Null else Statement

Page 18: 1 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

18

FIGURE 5-12 A Null if Statement

Page 19: 1 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

19

PROGRAM 5-3 Two-way Selection

Page 20: 1 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

20

FIGURE 5-13 Nested if Statements

Page 21: 1 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

21

PROGRAM 5-4 Nested if Statements

Page 22: 1 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

22

FIGURE 5-14 Dangling else

else is always paired with the most recent unpaired if.

NoteNote

Page 23: 1 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

23

FIGURE 5-15 Dangling else Solution

Page 24: 1 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

24

Table 5-3 Simplifying the Condition

Page 25: 1 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

25

FIGURE 5-16 Conditional Expression

Page 26: 1 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

26

Table 5-4 Examples of Marginal Tax Rates

Page 27: 1 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

27

FIGURE 5-17 Design for Calculate Taxes

Page 28: 1 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

28

FIGURE 5-18 Design for Program 5-5 (Part I)

Page 29: 1 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

29

FIGURE 5-18 Design for Program 5-5 (Part II)

Page 30: 1 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

30

FIGURE 5-18 Design for Program 5-5 (Part III)

Page 31: 1 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

31

PROGRAM 5-5

Calculate Taxes

Page 32: 1 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

32

• 所得總額• 所得淨額 (可扣稅所

得 )• 預扣稅額 (已繳稅額 )• 應繳、應退稅額• 各級稅率• 基本扣除額

Page 33: 1 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

33

Page 34: 1 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

34

5-3 Multiway Selection

In addition to two-way selection, most programming In addition to two-way selection, most programming languages provide another selection concept known as languages provide another selection concept known as multiway selection. Multiway selection chooses among multiway selection. Multiway selection chooses among several alternatives. C has two different ways to several alternatives. C has two different ways to implement multiway selection: the implement multiway selection: the switchswitch statement statement and and else-ifelse-if construct. construct.

The switch StatementThe else-if

Topics discussed in this section:Topics discussed in this section:

Page 35: 1 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

35

FIGURE 5-19 switch Decision Logic

Page 36: 1 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

36

FIGURE 5-20 switch Statement Syntax

Page 37: 1 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

37

FIGURE 5-21 switch Flow

Page 38: 1 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

38

PROGRAM 5-6 Demonstrate the switch Statement

Page 39: 1 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

39

FIGURE 5-22 switch Results

Page 40: 1 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

40

FIGURE 5-23 A switch with break Statements

Page 41: 1 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

41

PROGRAM 5-7 Multivalued case Statements

Page 42: 1 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

42

PROGRAM 5-8 Student Grading

Page 43: 1 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

43

FIGURE 5-24 The else-if Logic Design for Program 5-9

Page 44: 1 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

44

The else-if is an artificial C construct that is only used when1. The selection variable is not an integral, and2. The same variable is being tested in the expressions.

NoteNote

Page 45: 1 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

45

PROGRAM 5-9

Convert Score to Grade

2015/04/02

Page 46: 1 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

46

5-4 More Standard Functions

One of the assets of the C language is its rich set of One of the assets of the C language is its rich set of standard functions that make programming much standard functions that make programming much easier. For example, C99 has two parallel but separate easier. For example, C99 has two parallel but separate header files for manipulating characters: ctype.h and header files for manipulating characters: ctype.h and wctype.h.wctype.h.

Standard Characters FunctionsA Classification ProgramHandling Major Errors

Topics discussed in this section:Topics discussed in this section:

Page 47: 1 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

47

FIGURE 5-25 Classifications of the Character Type

Page 48: 1 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

48

Table 5-6 Classifying Functions

continued

Page 49: 1 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

49

Table 5-6 Classifying Functions (continued)

Conversion FunctionsTable 5-7

Page 50: 1 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

50

PROGRAM 5-10

Demonstrate Classification Functions