SlideShare une entreprise Scribd logo
1  sur  46
Programming Logic and Design
Eighth Edition
Chapter 4
Making Decisions
Objectives
In this chapter, you will learn about:
• Boolean expressions and the selection structure
• The relational comparison operators
• AND logic
• OR logic
• NOT logic
• Making selections within ranges
• Precedence when combining AND and OR operators
2Programming Logic and Design, Eighth Edition
Boolean Expressions
and the Selection Structure
• Boolean expressions can be only true or false
• Every computer decision yields a true-or-false,
yes-or-no, 1-or-0 result
• Used in every selection structure
3Programming Logic and Design, Eighth Edition
Boolean Expressions and the
Selection Structure (continued)
• Dual-alternative (or binary) selection structure
– Provides an action for each of two possible outcomes
4Programming Logic and Design, Eighth Edition
Figure 4-1 The dual-alternative selection structure
Boolean Expressions and the
Selection Structure (continued)
• Single-alternative (or unary) selection structure
– Action is provided for only one outcome
– if-then
5Programming Logic and Design, Eighth Edition
Figure 4-2 The single-alternative selection structure
6Programming Logic and Design, Eighth Edition
Figure 4-3 Flowchart and pseudocode for overtime payroll program
Boolean Expressions and the
Selection Structure (continued)
• if-then-else decision
–if-then clause
• Holds the action or actions that execute
when the tested condition in the
decision is true
–else clause
• Executes only when the tested condition
in the decision is false
7Programming Logic and Design, Eighth Edition
Using Relational
Comparison Operators
• Relational comparison operators
– Six types supported by all modern programming
languages
– Two values compared can be either variables or
constants
• Trivial expressions
– Will always evaluate to the same result
– Examples:
• 20 = 20? TRUE
• 30 = 40? FALSE
8Programming Logic and Design, Eighth Edition
9Programming Logic and Design, Eighth Edition Table 4-2 Relational comparison operators
Using Relational Comparison
Operators (continued)
• Any decision can be made with only three types
of comparisons: =, >, and <
• “Not equal” operator <>
–Involves thinking in double negatives
–Best to restrict usage to “if without an else”—
that is, only take action when some
comparison is false
10Programming Logic and Design, Eighth Edition
Using Relational Comparison
Operators (continued)
11Programming Logic and Design, Eighth Edition
Figure 4-5 Using a negative comparison
Using Relational Comparison
Operators (continued)
12Programming Logic and Design, Eighth Edition
Figure 4-6 Using the positive equivalent of the negative comparison in Figure 4-5
Avoiding a Common Error with
Relational Operators
• Common errors
–Using the wrong operator
•BIG > small
•small < BIG
–Missing the boundary or limit
required for a selection
13Programming Logic and Design, Eighth Edition
Understanding AND Logic
• Compound condition
–Asks multiple questions before an outcome
is determined
• AND decision
–Requires that both of two tests evaluate to
true
–Requires a nested decision (nested if) or
a cascading if statement
14Programming Logic and Design, Eighth Edition
15Programming Logic and Design, Eighth Edition
Figure 4-7 Flowchart and pseudocode
for cell phone billing program
Nesting AND Decisions
for Efficiency
• When nesting decisions
– Either selection can come first
• Performance time can be improved by asking
questions in the proper order
• In an AND decision, first ask the question that is less
likely to be true
– Eliminates as many instances of the second
decision as possible
– Speeds up processing time
16Programming Logic and Design, Eighth Edition
Using the AND Operator
• Conditional AND operator
– Ask two or more questions in a single comparison
– Each Boolean expression must be true for entire
expression to evaluate to true
• Truth tables
– Describe the truth of an entire expression based
on the truth of its parts
• Short-circuit evaluation
– Expression evaluated only as far as necessary to
determine truth
17Programming Logic and Design, Eighth Edition
Using the AND Operator (continued)
18Programming Logic and Design, Eighth Edition
Table 4-3 Truth table for the AND operator
19Programming Logic and Design, Eighth Edition Figure 4-9 Using an AND operator and the logic behind it
Using the
AND
Operator
(continued)
Avoiding Common Errors
in an AND Selection
• Second decision must be made entirely within the
first decision
• In most programming languages, logical AND is a
binary operator
– Requires a complete Boolean expression on both
sides
20Programming Logic and Design, Eighth Edition
Understanding OR Logic
• OR decision
–Take action when one or the other of two
conditions is true
–Example
• “Are you free for dinner Friday or
Saturday?”
21Programming Logic and Design, Eighth Edition
Writing OR Selections for Efficiency
• May ask either question first
–Both produce the same output but vary
widely in number of questions asked
• If first question is true, no need to ask second
• In an OR decision, first ask the question that
is more likely to be true
–Eliminate as many extra decisions as
possible
22Programming Logic and Design, Eighth Edition
Using the OR Operator
• Conditional OR operator
– Ask two or more questions in a single
comparison
• Only one Boolean expression in an OR selection
must be true to produce a result of true
• Question placed first will be asked first
– Consider efficiency
• Computer can ask only one question at a time
23Programming Logic and Design, Eighth Edition
Using the OR Operator
(continued)
24Programming Logic and Design, Eighth Edition
Table 4-4 Truth table for the OR operator
25Programming Logic and Design, Eighth Edition
Figure 4-13 Using an OR operator and the logic behind it
Using the OR Operator
(continued)
Avoiding Common Errors
in an OR Selection
• Second question must be a self-contained structure with
one entry and exit point
• Request for A and B in English logically means a request for
A or B
– Examples
• “Add $20 to the bill of anyone who makes more than
100 calls and to anyone who has used more than 500
minutes”
• “Add $20 to the bill of anyone who has made more
than 100 calls or has used more than 500 minutes”
26Programming Logic and Design, Eighth Edition
Avoiding Common Errors
in an OR Selection (continued)
27Programming Logic and Design, Eighth Edition
Figure 4-14 Unstructured flowchart for determining customer cell phone bill
Avoiding Common Errors
in an OR Selection (continued)
28Programming Logic and Design, Eighth Edition
Figure 4-15 Incorrect logic that attempts to provide a discount for young and old movie patrons
Avoiding Common Errors
in an OR Selection (continued)
29Programming Logic and Design, Eighth Edition
Figure 4-16 Correct logic that provides a discount for young and old movie patrons
Avoiding Common Errors
in an OR Selection (continued)
30Programming Logic and Design, Eighth Edition
Figure 4-17 Incorrect logic that attempts to charge full price for patrons whose age is
over 12 and under 65
Avoiding Common Errors
in an OR Selection (continued)
31Programming Logic and Design, Eighth Edition
Figure 4-18 Correct logic that charges full price for patrons whose age is over 12 and under 65
Understanding NOT Logic
• Logical NOT operator
– Reverses the meaning of a Boolean expression
32Programming Logic and Design, Eighth Edition
Table 4-5 Truth table for the NOT operator
if NOT (age < 18) then
output "Can register to vote"
endif
Avoiding a Common Error
in a NOT Expression
• Be careful not to create trivial expressions when using NOT
logic
• Examples (bad and good)
if NOT employeeDept = 1 OR NOT employeeDept = 2 then
output "Employee is not in Department 1 or 2“
Endif
if NOT (employeeDept = 1 OR employeeDept = 2) then
output "Employee is not in Department 1 or 2"
endif
33Programming Logic and Design, Eighth Edition
Making Selections Within Ranges
• Range check
– Compare a variable to a series of values between
limits
• Use the lowest or highest value in each range
• Adjust the question logic when using highest versus
lowest values
• Should end points of the range be included?
– Yes: use >= or <=
– No: use < or >
34Programming Logic and Design, Eighth Edition
Making Selections Within Ranges
(continued)
35Programming Logic and Design, Eighth Edition
Figure 4-19 Discount rates based on items ordered
36Programming Logic and Design, Eighth Edition
Figure 4-20 Flowchart and pseudocode of logic that selects correct discount based on items
Making
Selections
Within
Ranges (continued)
Avoiding Common Errors When
Using Range Checks
• Avoid a dead or unreachable path
–Don’t check for values that can never occur
–Requires some prior knowledge of the data
• Never ask a question if there is only one
possible outcome
• Avoid asking a question when the logic has
already determined the outcome
37Programming Logic and Design, Eighth Edition
38Programming Logic and Design, Eighth Edition
Figure 4-21 Inefficient range selection
including unreachable path
Eliminating Dead
Paths
39Programming Logic and Design, Eighth Edition
Figure 4-22 Inefficient range selection
including unnecessary questions
Avoid Testing the
Same Range Limit
Multiple Times
Understanding Precedence When
Combining AND and OR Operators
• Combine multiple AND and OR operators in an
expression
• When multiple conditions must all be true, use
multiple ANDs
if score1 >= MIN_SCORE AND score2 >=
MIN_SCORE AND score 3 >= MIN_SCORE then
classGrade = "Pass"
else
classGrade = "Fail"
endif
40Programming Logic and Design, Eighth Edition
Understanding Precedence When
Combining AND and OR Operators (continued)
• When only one of multiple conditions must be true,
use multiple ORs
if score1 >= MIN_SCORE OR score2 >=
MIN_SCORE OR score3 >= MIN_SCORE then
classGrade = "Pass"
else
classGrade = "Fail"
endif
41Programming Logic and Design, Eighth Edition
• When AND and OR operators are combined
in the same statement, AND operators are
evaluated first
if age <= 12 OR age >= 65 AND
rating = "G"
• Use parentheses to correct logic and force
evaluations to occur in the order desired
if (age <= 12 OR age >= 65)
AND rating = "G"
42Programming Logic and Design, Eighth Edition
Understanding Precedence When
Combining AND and OR Operators (continued)
• Mixing AND and OR operators makes logic
more complicated
• Can avoid mixing AND and OR decisions
by nesting if statements
43Programming Logic and Design, Eighth Edition
Understanding Precedence When
Combining AND and OR Operators (continued)
44Programming Logic and Design, Eighth Edition
Figure 4-23 Nested decisions that determine movie patron discount
Understanding
Precedence
When
Combining
AND and OR
Operators (continued)
Summary
• Decisions involve evaluating Boolean expressions
• Use relational operators to compare values
• An AND decision requires that both conditions be
true to produce a true result
• In an AND decision, first ask the question that is less
likely to be true
• An OR decision requires that either of the
conditions be true to produce a true result
45Programming Logic and Design, Eighth Edition
Summary (continued)
• In an OR decision, first ask the question that is more
likely to be true
• For a range check:
– Make comparisons with the highest or lowest values in
each range
– Eliminate unnecessary or previously answered questions
• The AND operator takes precedence over the OR
operator
46Programming Logic and Design, Eighth Edition

Contenu connexe

Tendances

Program logic and design
Program logic and designProgram logic and design
Program logic and design
Chaffey College
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9
Ian Sommerville
 
Software development slides
Software development slidesSoftware development slides
Software development slides
iarthur
 
Introduction to Programming
Introduction to ProgrammingIntroduction to Programming
Introduction to Programming
Chaffey College
 

Tendances (20)

CIS110 Computer Programming Design Chapter (7)
CIS110 Computer Programming Design Chapter  (7)CIS110 Computer Programming Design Chapter  (7)
CIS110 Computer Programming Design Chapter (7)
 
Spiral model of SDLC
Spiral model of SDLCSpiral model of SDLC
Spiral model of SDLC
 
Ch01 SE
Ch01 SECh01 SE
Ch01 SE
 
Programming Logic and Design: Working with Data
Programming Logic and Design: Working with DataProgramming Logic and Design: Working with Data
Programming Logic and Design: Working with Data
 
Program logic and design
Program logic and designProgram logic and design
Program logic and design
 
Logic Formulation 1
Logic Formulation 1Logic Formulation 1
Logic Formulation 1
 
Program design and problem solving techniques
Program design and problem solving techniquesProgram design and problem solving techniques
Program design and problem solving techniques
 
Model based development(MBD)
Model based development(MBD) Model based development(MBD)
Model based development(MBD)
 
Fundamentals of programming final
Fundamentals of programming finalFundamentals of programming final
Fundamentals of programming final
 
Engineering design process
Engineering design processEngineering design process
Engineering design process
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9
 
Concept in engineering design
Concept in engineering designConcept in engineering design
Concept in engineering design
 
Ch7
Ch7Ch7
Ch7
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 
Ch10-Program Design
Ch10-Program DesignCh10-Program Design
Ch10-Program Design
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Introduction to Systems Analysis and Design
Introduction to Systems Analysis and DesignIntroduction to Systems Analysis and Design
Introduction to Systems Analysis and Design
 
Introduction to Programming
Introduction to ProgrammingIntroduction to Programming
Introduction to Programming
 
Economics In Software Engineering
Economics In Software EngineeringEconomics In Software Engineering
Economics In Software Engineering
 
Iterative Incremental development
Iterative Incremental developmentIterative Incremental development
Iterative Incremental development
 

Similaire à CIS110 Computer Programming Design Chapter (4)

Csc153 chapter 04
Csc153 chapter 04Csc153 chapter 04
Csc153 chapter 04
PCC
 
Lecture 5 numbers and built in functions
Lecture 5  numbers and built in functionsLecture 5  numbers and built in functions
Lecture 5 numbers and built in functions
alvin567
 
Testcase design techniques final
Testcase design techniques finalTestcase design techniques final
Testcase design techniques final
shraavank
 

Similaire à CIS110 Computer Programming Design Chapter (4) (20)

Csc153 chapter 04
Csc153 chapter 04Csc153 chapter 04
Csc153 chapter 04
 
LP.ppt
LP.pptLP.ppt
LP.ppt
 
Pareto-Optimal Search-Based Software Engineering (POSBSE): A Literature Survey
Pareto-Optimal Search-Based Software Engineering (POSBSE): A Literature SurveyPareto-Optimal Search-Based Software Engineering (POSBSE): A Literature Survey
Pareto-Optimal Search-Based Software Engineering (POSBSE): A Literature Survey
 
Lpp through graphical analysis
Lpp through graphical analysis Lpp through graphical analysis
Lpp through graphical analysis
 
QA CHAPTER II.pptx
QA CHAPTER II.pptxQA CHAPTER II.pptx
QA CHAPTER II.pptx
 
Chapter 4 5
Chapter 4 5Chapter 4 5
Chapter 4 5
 
Argumentation in Artificial Intelligence: From Theory to Practice (Practice)
Argumentation in Artificial Intelligence: From Theory to Practice (Practice)Argumentation in Artificial Intelligence: From Theory to Practice (Practice)
Argumentation in Artificial Intelligence: From Theory to Practice (Practice)
 
Cp04invitedslide
Cp04invitedslideCp04invitedslide
Cp04invitedslide
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
Pseudo code.pptx
Pseudo code.pptxPseudo code.pptx
Pseudo code.pptx
 
Operators in python
Operators in pythonOperators in python
Operators in python
 
Fdp session rtu session 1
Fdp session rtu session 1Fdp session rtu session 1
Fdp session rtu session 1
 
UNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptx
UNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptxUNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptx
UNIT-2 Quantitaitive Anlaysis for Mgt Decisions.pptx
 
Lecture 5 numbers and built in functions
Lecture 5  numbers and built in functionsLecture 5  numbers and built in functions
Lecture 5 numbers and built in functions
 
Database Design Thoughts
Database Design ThoughtsDatabase Design Thoughts
Database Design Thoughts
 
Lesson 5.2 logical operators
Lesson 5.2 logical operatorsLesson 5.2 logical operators
Lesson 5.2 logical operators
 
CNMES15 - Estimation con COSMIC - Alain Abran
CNMES15 - Estimation con COSMIC - Alain AbranCNMES15 - Estimation con COSMIC - Alain Abran
CNMES15 - Estimation con COSMIC - Alain Abran
 
problem solving and design By ZAK
problem solving and design By ZAKproblem solving and design By ZAK
problem solving and design By ZAK
 
Testcase design techniques final
Testcase design techniques finalTestcase design techniques final
Testcase design techniques final
 
PPS_Unit 1.pptx
PPS_Unit 1.pptxPPS_Unit 1.pptx
PPS_Unit 1.pptx
 

Plus de Dr. Ahmed Al Zaidy

Plus de Dr. Ahmed Al Zaidy (20)

Chapter 14 Exploring Object-based Programming
Chapter 14 Exploring Object-based ProgrammingChapter 14 Exploring Object-based Programming
Chapter 14 Exploring Object-based Programming
 
Chapter 13 Programming for web forms
Chapter 13 Programming for web formsChapter 13 Programming for web forms
Chapter 13 Programming for web forms
 
Chapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheetsChapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheets
 
Chapter 11 Working with Events and Styles
Chapter 11 Working with Events and StylesChapter 11 Working with Events and Styles
Chapter 11 Working with Events and Styles
 
Chapter 10 Exploring arrays, loops, and conditional statements
Chapter 10 Exploring arrays, loops, and conditional statementsChapter 10 Exploring arrays, loops, and conditional statements
Chapter 10 Exploring arrays, loops, and conditional statements
 
Chapter 9 Getting Started with JavaScript
Chapter 9 Getting Started with JavaScriptChapter 9 Getting Started with JavaScript
Chapter 9 Getting Started with JavaScript
 
Chapter 8 Enhancing a website with multimedia
Chapter 8 Enhancing a website with multimediaChapter 8 Enhancing a website with multimedia
Chapter 8 Enhancing a website with multimedia
 
Chapter 7 Designing a web form
Chapter 7 Designing a web formChapter 7 Designing a web form
Chapter 7 Designing a web form
 
Chapter 6 Working with Tables and Columns
Chapter 6 Working with Tables and ColumnsChapter 6 Working with Tables and Columns
Chapter 6 Working with Tables and Columns
 
Chapter 5 Designing for the mobile web
Chapter 5 Designing for the mobile webChapter 5 Designing for the mobile web
Chapter 5 Designing for the mobile web
 
Chapter 4 Graphic Design with CSS
Chapter 4 Graphic Design with CSSChapter 4 Graphic Design with CSS
Chapter 4 Graphic Design with CSS
 
Chapter 3 Designing a Page Layout
Chapter 3 Designing a Page LayoutChapter 3 Designing a Page Layout
Chapter 3 Designing a Page Layout
 
Chapter 2 Getting Started with CSS
Chapter 2 Getting Started with CSSChapter 2 Getting Started with CSS
Chapter 2 Getting Started with CSS
 
Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5
 
Integer overflows
Integer overflowsInteger overflows
Integer overflows
 
testing throughout-the-software-life-cycle-section-2
testing throughout-the-software-life-cycle-section-2testing throughout-the-software-life-cycle-section-2
testing throughout-the-software-life-cycle-section-2
 
Fundamental of testing
Fundamental of testingFundamental of testing
Fundamental of testing
 
Chapter 15 Risk Mitigation
Chapter 15 Risk MitigationChapter 15 Risk Mitigation
Chapter 15 Risk Mitigation
 
Chapter 14 Business Continuity
Chapter 14 Business ContinuityChapter 14 Business Continuity
Chapter 14 Business Continuity
 
Chapter 13 Vulnerability Assessment and Data Security
Chapter 13 Vulnerability Assessment and Data SecurityChapter 13 Vulnerability Assessment and Data Security
Chapter 13 Vulnerability Assessment and Data Security
 

Dernier

The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 

Dernier (20)

Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 

CIS110 Computer Programming Design Chapter (4)

  • 1. Programming Logic and Design Eighth Edition Chapter 4 Making Decisions
  • 2. Objectives In this chapter, you will learn about: • Boolean expressions and the selection structure • The relational comparison operators • AND logic • OR logic • NOT logic • Making selections within ranges • Precedence when combining AND and OR operators 2Programming Logic and Design, Eighth Edition
  • 3. Boolean Expressions and the Selection Structure • Boolean expressions can be only true or false • Every computer decision yields a true-or-false, yes-or-no, 1-or-0 result • Used in every selection structure 3Programming Logic and Design, Eighth Edition
  • 4. Boolean Expressions and the Selection Structure (continued) • Dual-alternative (or binary) selection structure – Provides an action for each of two possible outcomes 4Programming Logic and Design, Eighth Edition Figure 4-1 The dual-alternative selection structure
  • 5. Boolean Expressions and the Selection Structure (continued) • Single-alternative (or unary) selection structure – Action is provided for only one outcome – if-then 5Programming Logic and Design, Eighth Edition Figure 4-2 The single-alternative selection structure
  • 6. 6Programming Logic and Design, Eighth Edition Figure 4-3 Flowchart and pseudocode for overtime payroll program
  • 7. Boolean Expressions and the Selection Structure (continued) • if-then-else decision –if-then clause • Holds the action or actions that execute when the tested condition in the decision is true –else clause • Executes only when the tested condition in the decision is false 7Programming Logic and Design, Eighth Edition
  • 8. Using Relational Comparison Operators • Relational comparison operators – Six types supported by all modern programming languages – Two values compared can be either variables or constants • Trivial expressions – Will always evaluate to the same result – Examples: • 20 = 20? TRUE • 30 = 40? FALSE 8Programming Logic and Design, Eighth Edition
  • 9. 9Programming Logic and Design, Eighth Edition Table 4-2 Relational comparison operators
  • 10. Using Relational Comparison Operators (continued) • Any decision can be made with only three types of comparisons: =, >, and < • “Not equal” operator <> –Involves thinking in double negatives –Best to restrict usage to “if without an else”— that is, only take action when some comparison is false 10Programming Logic and Design, Eighth Edition
  • 11. Using Relational Comparison Operators (continued) 11Programming Logic and Design, Eighth Edition Figure 4-5 Using a negative comparison
  • 12. Using Relational Comparison Operators (continued) 12Programming Logic and Design, Eighth Edition Figure 4-6 Using the positive equivalent of the negative comparison in Figure 4-5
  • 13. Avoiding a Common Error with Relational Operators • Common errors –Using the wrong operator •BIG > small •small < BIG –Missing the boundary or limit required for a selection 13Programming Logic and Design, Eighth Edition
  • 14. Understanding AND Logic • Compound condition –Asks multiple questions before an outcome is determined • AND decision –Requires that both of two tests evaluate to true –Requires a nested decision (nested if) or a cascading if statement 14Programming Logic and Design, Eighth Edition
  • 15. 15Programming Logic and Design, Eighth Edition Figure 4-7 Flowchart and pseudocode for cell phone billing program
  • 16. Nesting AND Decisions for Efficiency • When nesting decisions – Either selection can come first • Performance time can be improved by asking questions in the proper order • In an AND decision, first ask the question that is less likely to be true – Eliminates as many instances of the second decision as possible – Speeds up processing time 16Programming Logic and Design, Eighth Edition
  • 17. Using the AND Operator • Conditional AND operator – Ask two or more questions in a single comparison – Each Boolean expression must be true for entire expression to evaluate to true • Truth tables – Describe the truth of an entire expression based on the truth of its parts • Short-circuit evaluation – Expression evaluated only as far as necessary to determine truth 17Programming Logic and Design, Eighth Edition
  • 18. Using the AND Operator (continued) 18Programming Logic and Design, Eighth Edition Table 4-3 Truth table for the AND operator
  • 19. 19Programming Logic and Design, Eighth Edition Figure 4-9 Using an AND operator and the logic behind it Using the AND Operator (continued)
  • 20. Avoiding Common Errors in an AND Selection • Second decision must be made entirely within the first decision • In most programming languages, logical AND is a binary operator – Requires a complete Boolean expression on both sides 20Programming Logic and Design, Eighth Edition
  • 21. Understanding OR Logic • OR decision –Take action when one or the other of two conditions is true –Example • “Are you free for dinner Friday or Saturday?” 21Programming Logic and Design, Eighth Edition
  • 22. Writing OR Selections for Efficiency • May ask either question first –Both produce the same output but vary widely in number of questions asked • If first question is true, no need to ask second • In an OR decision, first ask the question that is more likely to be true –Eliminate as many extra decisions as possible 22Programming Logic and Design, Eighth Edition
  • 23. Using the OR Operator • Conditional OR operator – Ask two or more questions in a single comparison • Only one Boolean expression in an OR selection must be true to produce a result of true • Question placed first will be asked first – Consider efficiency • Computer can ask only one question at a time 23Programming Logic and Design, Eighth Edition
  • 24. Using the OR Operator (continued) 24Programming Logic and Design, Eighth Edition Table 4-4 Truth table for the OR operator
  • 25. 25Programming Logic and Design, Eighth Edition Figure 4-13 Using an OR operator and the logic behind it Using the OR Operator (continued)
  • 26. Avoiding Common Errors in an OR Selection • Second question must be a self-contained structure with one entry and exit point • Request for A and B in English logically means a request for A or B – Examples • “Add $20 to the bill of anyone who makes more than 100 calls and to anyone who has used more than 500 minutes” • “Add $20 to the bill of anyone who has made more than 100 calls or has used more than 500 minutes” 26Programming Logic and Design, Eighth Edition
  • 27. Avoiding Common Errors in an OR Selection (continued) 27Programming Logic and Design, Eighth Edition Figure 4-14 Unstructured flowchart for determining customer cell phone bill
  • 28. Avoiding Common Errors in an OR Selection (continued) 28Programming Logic and Design, Eighth Edition Figure 4-15 Incorrect logic that attempts to provide a discount for young and old movie patrons
  • 29. Avoiding Common Errors in an OR Selection (continued) 29Programming Logic and Design, Eighth Edition Figure 4-16 Correct logic that provides a discount for young and old movie patrons
  • 30. Avoiding Common Errors in an OR Selection (continued) 30Programming Logic and Design, Eighth Edition Figure 4-17 Incorrect logic that attempts to charge full price for patrons whose age is over 12 and under 65
  • 31. Avoiding Common Errors in an OR Selection (continued) 31Programming Logic and Design, Eighth Edition Figure 4-18 Correct logic that charges full price for patrons whose age is over 12 and under 65
  • 32. Understanding NOT Logic • Logical NOT operator – Reverses the meaning of a Boolean expression 32Programming Logic and Design, Eighth Edition Table 4-5 Truth table for the NOT operator if NOT (age < 18) then output "Can register to vote" endif
  • 33. Avoiding a Common Error in a NOT Expression • Be careful not to create trivial expressions when using NOT logic • Examples (bad and good) if NOT employeeDept = 1 OR NOT employeeDept = 2 then output "Employee is not in Department 1 or 2“ Endif if NOT (employeeDept = 1 OR employeeDept = 2) then output "Employee is not in Department 1 or 2" endif 33Programming Logic and Design, Eighth Edition
  • 34. Making Selections Within Ranges • Range check – Compare a variable to a series of values between limits • Use the lowest or highest value in each range • Adjust the question logic when using highest versus lowest values • Should end points of the range be included? – Yes: use >= or <= – No: use < or > 34Programming Logic and Design, Eighth Edition
  • 35. Making Selections Within Ranges (continued) 35Programming Logic and Design, Eighth Edition Figure 4-19 Discount rates based on items ordered
  • 36. 36Programming Logic and Design, Eighth Edition Figure 4-20 Flowchart and pseudocode of logic that selects correct discount based on items Making Selections Within Ranges (continued)
  • 37. Avoiding Common Errors When Using Range Checks • Avoid a dead or unreachable path –Don’t check for values that can never occur –Requires some prior knowledge of the data • Never ask a question if there is only one possible outcome • Avoid asking a question when the logic has already determined the outcome 37Programming Logic and Design, Eighth Edition
  • 38. 38Programming Logic and Design, Eighth Edition Figure 4-21 Inefficient range selection including unreachable path Eliminating Dead Paths
  • 39. 39Programming Logic and Design, Eighth Edition Figure 4-22 Inefficient range selection including unnecessary questions Avoid Testing the Same Range Limit Multiple Times
  • 40. Understanding Precedence When Combining AND and OR Operators • Combine multiple AND and OR operators in an expression • When multiple conditions must all be true, use multiple ANDs if score1 >= MIN_SCORE AND score2 >= MIN_SCORE AND score 3 >= MIN_SCORE then classGrade = "Pass" else classGrade = "Fail" endif 40Programming Logic and Design, Eighth Edition
  • 41. Understanding Precedence When Combining AND and OR Operators (continued) • When only one of multiple conditions must be true, use multiple ORs if score1 >= MIN_SCORE OR score2 >= MIN_SCORE OR score3 >= MIN_SCORE then classGrade = "Pass" else classGrade = "Fail" endif 41Programming Logic and Design, Eighth Edition
  • 42. • When AND and OR operators are combined in the same statement, AND operators are evaluated first if age <= 12 OR age >= 65 AND rating = "G" • Use parentheses to correct logic and force evaluations to occur in the order desired if (age <= 12 OR age >= 65) AND rating = "G" 42Programming Logic and Design, Eighth Edition Understanding Precedence When Combining AND and OR Operators (continued)
  • 43. • Mixing AND and OR operators makes logic more complicated • Can avoid mixing AND and OR decisions by nesting if statements 43Programming Logic and Design, Eighth Edition Understanding Precedence When Combining AND and OR Operators (continued)
  • 44. 44Programming Logic and Design, Eighth Edition Figure 4-23 Nested decisions that determine movie patron discount Understanding Precedence When Combining AND and OR Operators (continued)
  • 45. Summary • Decisions involve evaluating Boolean expressions • Use relational operators to compare values • An AND decision requires that both conditions be true to produce a true result • In an AND decision, first ask the question that is less likely to be true • An OR decision requires that either of the conditions be true to produce a true result 45Programming Logic and Design, Eighth Edition
  • 46. Summary (continued) • In an OR decision, first ask the question that is more likely to be true • For a range check: – Make comparisons with the highest or lowest values in each range – Eliminate unnecessary or previously answered questions • The AND operator takes precedence over the OR operator 46Programming Logic and Design, Eighth Edition