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)
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
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
• 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
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
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
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
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
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
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.)
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
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
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.)
– 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
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
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
• 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
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
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.)
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
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.)
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.)
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
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.)
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
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
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
(Ebook) C++ Programming: From Problem Analysis to Program Design by D. S. Malik ISBN 9781133626381, 1133626386 - The full ebook version is ready for instant download
Solution Manual for Introduction to Algorithms, third edition By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein download pdf