Chapter 2 - Personal Web Pages

advertisement
An Introduction to
Programming with C++
Fifth Edition
Chapter 2
Beginning the Problem-Solving Process
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
An Introduction to Programming with C++, Fifth Edition
2
Concept Lesson
•
•
•
•
•
•
•
•
Problem Solving
Solving Everyday Problems
Creating Computer Solutions to Problems
Analyzing the Problem
Planning the Algorithm
Desk-Checking the Algorithm
The Gas Mileage Problem
Summary
An Introduction to Programming with C++, Fifth Edition
3
Problem Solving
• In this lesson, you will:
– Explore the thought process followed when solving
problems
– Learn how to use a similar process to create a
computer solution to a problem
• Called a computer program
An Introduction to Programming with C++, Fifth Edition
4
Solving Everyday Problems
• First step in solving a problem: analyze it
– E.g., problem of being hungry
• Next, you plan, review, implement, evaluate, and
modify (if necessary) the solution
– E.g., if you are still hungry
An Introduction to Programming with C++, Fifth Edition
5
Solving Everyday Problems
(continued)
An Introduction to Programming with C++, Fifth Edition
6
Solving Everyday Problems
(continued)
An Introduction to Programming with C++, Fifth Edition
7
Creating Computer Solutions to
Problems
• Analysis tools: IPO charts, pseudocode, flowcharts
• To desk-check or hand-trace, use pencil, paper,
and sample data to walk through algorithm
• A coded algorithm is called a program
An Introduction to Programming with C++, Fifth Edition
8
Creating Computer Solutions to
Problems (continued)
An Introduction to Programming with C++, Fifth Edition
9
Analyzing the Problem
• 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
An Introduction to Programming with C++, Fifth Edition
10
Analyzing the Problem (continued)
An Introduction to Programming with C++, Fifth Edition
11
IPO Charts
• Use an IPO chart to organize and summarize the
results of a problem analysis
– IPO: Input, Processing, and Output
An Introduction to Programming with C++, Fifth Edition
12
IPO Charts (continued)
An Introduction to Programming with C++, Fifth Edition
13
IPO Charts (continued)
An Introduction to Programming with C++, Fifth Edition
14
Analyzing the Problem (continued)
• First, reduce the amount of information you need to
consider in your analysis:
An Introduction to Programming with C++, Fifth Edition
15
Analyzing the Problem (continued)
• Worse than having too much information is not
having enough information to solve problem:
An Introduction to Programming with C++, Fifth Edition
16
Analyzing the Problem (continued)
• Distinguish between information that is missing and
information that is implied:
An Introduction to Programming with C++, Fifth Edition
17
Planning the Algorithm
• Algorithm: set of instructions that will transform the
problem’s input into its output
– Record it in the Processing column of the IPO chart
• Processing item: intermediate value used by
algorithm when processing input into output
• Pseudocode is a tool programmers use to help
them plan an algorithm
– Short English statements
An Introduction to Programming with C++, Fifth Edition
18
Planning the Algorithm (continued)
An Introduction to Programming with C++, Fifth Edition
19
Planning the Algorithm (continued)
• Flowcharts are also used to plan an algorithm
–
–
–
–
Use standardized symbols
Symbols connected with flowlines
Oval: start/stop symbol
Rectangle: process symbol
• Represents tasks such as calculations
– Parallelogram: input/output symbol
• Represents I/O tasks
An Introduction to Programming with C++, Fifth Edition
20
Planning the Algorithm (continued)
An Introduction to Programming with C++, Fifth Edition
21
Planning the Algorithm (continued)
• A problem can have more than one solution:
An Introduction to Programming with C++, Fifth Edition
22
Hints for Writing Algorithms
This problem specification is almost identical to the one shown
earlier in Figure 2-4
An Introduction to Programming with C++, Fifth Edition
23
Hints for Writing Algorithms
(continued)
You may use a portion of a previous solution to solve current problem
An Introduction to Programming with C++, Fifth Edition
24
Desk-Checking the Algorithm
An Introduction to Programming with C++, Fifth Edition
25
Desk-Checking the Algorithm
(continued)
An Introduction to Programming with C++, Fifth Edition
26
Desk-Checking the Algorithm
(continued)
• Valid data is data that the programmer is
expecting the user to enter
• Invalid data is data that he or she is not expecting
the user to enter
• You should test an algorithm with invalid data
– Users may make mistakes when entering data
An Introduction to Programming with C++, Fifth Edition
27
The Gas Mileage Problem
An Introduction to Programming with C++, Fifth Edition
28
The Gas Mileage Problem (continued)
• After planning the algorithm, you desk-check it:
An Introduction to Programming with C++, Fifth Edition
29
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
– During analysis, you determine the output and input
– During planning, you write the steps that will transform
the input into the output
An Introduction to Programming with C++, Fifth Edition
30
Summary (continued)
• After the analysis and planning, you desk-check
the algorithm
– Follow each of the steps in algorithm by hand
• Coding refers to translating the algorithm into a
language that the computer can understand
• Before writing an algorithm, consider whether you
have already solved a similar problem
An Introduction to Programming with C++, Fifth Edition
31
Application Lesson: Using the First
Steps in the Problem-Solving Process
• Lab 2.1: Stop and Analyze
• Lab 2.2:
– Create a program that the salesclerks can use to
calculate and display the required number of rolls
• Lab 2.3:
– The program must now display the number of single
and double rolls of wallpaper
• Lab 2.4: Desk-Check Lab
• Lab 2.5: Debugging Lab
An Introduction to Programming with C++, Fifth Edition
32
Download