0% found this document useful (0 votes)
47 views

Lecture 2 - Problem Solving Process

Uploaded by

Shahil Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views

Lecture 2 - Problem Solving Process

Uploaded by

Shahil Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 32

An Introduction to Programming with C++

Eighth Edition

Chapter 2:
Beginning the Problem-Solving Process

© 2016 Cengage Learning®. May not be scanned, copied or


duplicated, or posted to a publicly accessible website, in whole
or in part.
Chapter Objectives

• Explain the problem-solving process used to create a


computer program
• Analyze a problem
• Complete an IPO chart
• Plan an algorithm using pseudocode and flowcharts
• Desk-check an algorithm

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 2
or in part.
Problem Solving

• People solve hundreds of simple problems every day


without thinking about how they do it
• Understanding the thought process involved can help in
solving more complex problems
• You can also use a similar process to design a computer
solution to a problem (computer program)

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 3
or in part.
Solving Everyday Problems

• First step in solving a problem: analyze it


– Example: paying and mailing a bill
• Next, you plan, review, implement, and evaluate the
solution
• After this, it may be necessary to modify the solution

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 4
or in part.
Solving Everyday Problems (cont’d.)

Figure 2-1 Summary of the analysis and planning steps for


the bill paying problem
© 2016 Cengage Learning®. May not be scanned, copied or
An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 5
or in part.
Solving Everyday Problems (cont’d.)

Figure 2-2 Modified algorithm for the bill paying problem


© 2016 Cengage Learning®. May not be scanned, copied or
An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 6
or in part.
Creating Computer Solutions to Problems

• A similar process to everyday problem solving is used to


create computer programs
• A computer program is a solution implemented on a
computer
• There are six steps to creating a computer solution to a
problem

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 7
or in part.
Creating Computer Solutions to Problems
(cont’d.)

Figure 2-3 How to create a computer solution to a problem

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 8
or in part.
Step 1−Analyzing the Problem

• It is essential to understand a problem before creating a


solution to it
• Analyze a problem to:
– Determine the goal of solving it (Output)
– Determine the items needed to achieve that goal (Input)
• Always search first for the output

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 9
or in part.
Step 1−Analyzing the Problem (cont’d.)

Figure 2-4 Problem specification for Addison O’Reilly

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 10
or in part.
Step 1−Analyzing the Problem (cont’d.)

• Some programmers use an IPO chart to organize and


summarize the results of a problem analysis
– IPO: Input, processing, and output

Figure 2-5 Partially completed IPO chart


showing the input and output items

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 11
or in part.
Hints for Analyzing Problems

• Several readings of the problem may be necessary to


fully understand the problem
• Cross out irrelevant information in the problem
description

Figure 2-6 Problem specification with


unimportant information crossed out

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 12
or in part.
Hints for Analyzing Problems (cont’d.)

• Some problem specifications contain incomplete


information

Figure 2-7 Problem specification that does


not contain enough information

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 13
or in part.
Hints for Analyzing Problems (cont’d.)

• Distinguish between information that is missing and


information that is implied

Figure 2-8 Problem specification in


which the input is not explicitly stated

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 14
or in part.
Step 2−Planning the Algorithm

• Algorithm: set of instructions that will transform the


problem’s input into its output
– Record in the Processing column of the IPO chart
– Can be written as pseudocode or a flowchart
• Pseudocode: tool programmers use to help plan an
algorithm
– Short English statements
– Not standardized
– Not understandable by a computer

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 15
or in part.
Step 2−Planning the Algorithm (cont’d.)

Figure 2-9 Problem specification and IPO


chart for the Addison O’Reilly problem
© 2016 Cengage Learning®. May not be scanned, copied or
An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 16
or in part.
Step 2−Planning the Algorithm (cont’d.)

• Flowcharts are also used to plan an algorithm


– Use standardized symbols
– Symbols connected with flowlines
– Oval: start/stop symbol
• Represents beginning and end of algorithm
– Rectangle: process symbol
• Represents tasks such as calculations
– Parallelogram: input/output symbol
• Represents I/O tasks

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 17
or in part.
Step 2−Planning the Algorithm (cont’d.)

Figure 2-10 Figure 2-9’s algorithm in flowchart form


© 2016 Cengage Learning®. May not be scanned, copied or
An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 18
or in part.
Step 2−Planning the Algorithm (cont’d.)

Figure 2-11 A different solution to the


Addison O’Reilly problem (pseudocode)

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 19
or in part.
Step 2−Planning the Algorithm (cont’d.)

• Processing item: an intermediate


value (neither input nor output)
the algorithm uses to transform
input into output

Figure 2-11 A different solution to the


Addison O’Reilly problem (flowchart)
© 2016 Cengage Learning®. May not be scanned, copied or
An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 20
or in part.
Step 3−Desk-Checking the Algorithm

• Desk-checking an algorithm verifies that it is correct


– Refers to checking an algorithm by hand, rather than
with a computer
– Also called hand-tracing
• Choose sample data and manually compute the expected
output value
• Creating a desk-check table can be helpful

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 21
or in part.
Step 3−Desk-Checking the Algorithm
(cont’d.)

Figure 2-12 Manual cost calculation for the first desk-check

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 22
or in part.
Step 3−Desk-Checking the Algorithm
(cont’d.)

Figure 2-13 Addison O’Reilly solution and


partially completed desk-check table

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 23
or in part.
Step 3−Desk-Checking the Algorithm
(cont’d.)

Figure 2-14 Input values entered in the desk-check table

Figure 2-16 Output value entered in the desk-check table

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 24
or in part.
Step 3−Desk-Checking the Algorithm
(cont’d.)

Figure 2-17 Manual cost calculation for


the second desk-check

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 25
or in part.
Step 3−Desk-Checking the Algorithm
(cont’d.)

Figure 2-18 Second set of input values


entered in the desk-check table

Figure 2-19 Value of the second desk-check’s


processing item entered in the desk-check table

Figure 2-20 Value of the second desk-check’s


output item entered in the desk-check table
© 2016 Cengage Learning®. May not be scanned, copied or
An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 26
or in part.
Step 3−Desk-Checking the Algorithm
(cont’d.)
• Valid data: data that the algorithm is expecting the user
to enter
• Invalid data: data that the algorithm is not expecting
the user to enter
• You should test an algorithm with invalid data
– Users may make mistakes when entering data

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 27
or in part.
The Gas Mileage Problem

Figure 2-21 Problem specification for the gas mileage problem

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 28
or in part.
The Gas Mileage Problem (cont’d.)

• Plan the algorithm with an IPO chart

Figure 2-22 IPO chart for the gas mileage problem

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 29
or in part.
The Gas Mileage Problem (cont’d.)

• Then desk-check the algorithm

Figure 2-23 Desk-check table for the gas mileage problem

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 30
or in part.
Summary

• Problem solving typically involves analyzing the


problem and then planning, reviewing, implementing,
evaluating, and modifying (if necessary) the solution
• Programmers use tools (IPO charts, pseudocode,
flowcharts) to help them analyze problems and develop
algorithms
• The first step in problem solving is to analyze the
problem
– First determine the output and then the input

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 31
or in part.
Summary (cont’d.)

• The second step is to plan the algorithm


– Write the steps that will transform the input into the
output
– Most algorithms begin with entering input data, then
processing the data, then displaying the output
• The third step is to desk-check the algorithm
– Choose sample data and manually compute the expected
output
– Create a desk-check table to fill in values step by step

© 2016 Cengage Learning®. May not be scanned, copied or


An Introduction to Programming with C++, Eighth Edition duplicated, or posted to a publicly accessible website, in whole 32
or in part.

You might also like