1 Chapter 2 Problem Solving Techniques. 2 2.1 INTRODUCTION 2.2 PROBLEM SOLVING 2.3 USING COMPUTERS...

Post on 22-Dec-2015

219 views 2 download

Tags:

Transcript of 1 Chapter 2 Problem Solving Techniques. 2 2.1 INTRODUCTION 2.2 PROBLEM SOLVING 2.3 USING COMPUTERS...

1

Chapter 2

Problem Solving Techniques

2

2.1 INTRODUCTION

2.2 PROBLEM SOLVING

2.3 USING COMPUTERS IN PROBLEM SOLVING : THE SOFTWARE DEVELOPMENT METHOD

3

consists of the following steps :

1. Requirements specification

2. Analysis

3. Design

4. Implementation

5. Testing and verification

6. Documentation

divide and conquer split the problem into several simpler subproblems, solve each individually, and then combine these solutions.

4

2.4 REQUIREMENTS SPECIFICATION

understanding exactly what the problem is, what is needed to solve it, what the solution should provide.

2.5 ANALYSIS

identify the following :

1. Inputs to the problem

2. Outputs expected from the solution

3. Any special constraints or conditions

4. Formulas or equations to be used

5

2.6 DESIGN AND REPRESENTATION OF ALGORITHMS

An algorithm is a sequence of a finite number of steps arranged in a specific logical order, which, when executed, produce the solution for a problem.

An algorithm is a procedure that takes a set of values as input and transforms them into a set of values as output

In practice we expect algorithms to be efficient.

6

PseudocodingThe main purpose of a pseudocode language is to define the procedural logic of an algorithm requirements:1. Have a limited vocabulary 2. Be easy to learn3. Produce simple, English-link narrative

notation4. Be capable of describing all algorithms

7

The Sequence Control Structure

is a series of steps or statements that are executed in the order in which they are written in an algorithm

read taxable income

read filing status

compute income tax

print income tax

Figure 2.1 A sequence control structure

8

The Selection Control Structuredefine two courses of action, depending on the outcome of a condition.

if conditionthen-part

elseelse-part

end_if

the else-part may be missing.

9

A nested selection structure contains other if/else structures in its then-part or else-part.

if status is equal to 1

print “single”

else if status is equal to 2

print “Married filing jointly”

end_if

10

if status is equal to 1

print “Single”

end_if

if status is equal to 2

print “Married filing jointly”

end_if

11

The Repetition Control Structurespecifies a block of one of one or more statements that are repeatedly executed until a condition is satisfied.

while condition loop-body

end_while

loop-body is a single statement or a block of statements

12

Print “Enter taxable income; should be greater than or equal to $50,000.00” read income

while income is less than 50000.00

begin

print “Enter taxable income; should be greater than or equal to $50,000.00”

read income

end

end_while

13

Conventions for Pseudocoding1. Each pseudocode statement includes keywords2. Each pseudocode statement should be written on

a separate line.3. Statements in a sequence structure can be groupe

d into a block 4. For the selection control structure, use an if/else

statement.5. For the repetition control structure, use the while

statement6. All words in a pseudocode statement must be un

ambiguous and as easy as possible for nonprogrammers to understand.

14

Structure chart, as in figure 2.6. This chart indicates that the original problem is solved if the four subproblems at the lover level of hierarchy are solved from left to right.

15

set correctStatusInput to “no”print “FILING STATUS MENU:”print “Single ----1”print “Married filing jointly ----2”print “Married filing separately ----3”print “Head of household ----4”while correctStatusInput is equal to “no”

begin print “Enter filing status; should be between 1 and 4:” read filingStatus if filingStatus is greater than 0

if filingStatus is less than 5set correctstatusInput to “yes”

end_if end_ifend

end_while

Figure 2.7 Final refinement of read and verify filing status

16

if filingStatus is 1

compute tam = 11158.50 + 0.31 * (income – 49300.00)else if filingStatus is 2

if income is less than or equal to 82,150 compute tax = 5100.00 + 0.28 * (income – 34000.00)else compute tax = 18582.00 + 0.31 * (income – 82150.00)end_if

else if filingStatus is 3compute tax = 9291.00 + 0.31 * (income – 41075.00)

else if status is 4if income is less than or equal to 70450.00 compute tax = 4095.00 + 0.28 * (income – 27300.00)else compute tax = 16177.00 + 0.31 * (income – 70450.00)end_if

end_if

Figure 2.8 Final refinement of compute tax (continued)

17

print income if filingStatus is equal to 1

print “Single”else if filingStatus is equal to 2

print “Married filing jointly”else if filingStatus is equal to 3

print “ married filing separately”else if filingStatus is equal to 4

print “Head of household”end_ifprint tax

Figure 2.9 Final refinement of print income, filing status, and tax

18

Algorithm design technique

1. Use the divide-and-conquer strategy to split the original problem into a series of subproblems.

2. Consider each subproblem separately and further split them into subproblems, until no further refinement is possible. Stop the process when you have a pseudocode that can be directly translated into a C program.

3. Combine all final refinements

19

Flowcharting alternative to pseudocoding;flowchart is a graph consisting of geometrical shapes

the geometrical shapes in a flowchart represent the types of statements in an algorithm. The details of statements are written inside the shapes. The flow lines show the order in which the statements of an algorithm are executed. Two geometrical shapes used in flowcharting are the rectangle, which represents processes such as computations, assignments, and initializations, and the diamond-shaped box, which stands for the keyword if in pseudocode, with the if condition written inside the box.

20

21

22

23

24

25

2.7 IMPLEMENTATIONtranslate each step of the algorithm into a statement in that particular language

Programming Errorsdebuggingthree types of programming errors :1. design errors : occur during the analysis,design, and implementation phases.2. Syntax error : detected by the compiler during

the compilation process.3. Run-time errors : detected by the computer while

your program is being executed. Divide a number by zero.

26

2.8 TESTING AND VERIFICATION

A program must be tested using a sufficiently large sample of care fully designed test data sets such that every logical path in the program is traversed at least once.

27

2.9 PROGRAM DOCUMENTATION

1. A concise requirements specification2. Descriptions of problem inputs, expected outputs, constraints, and applicable formula.3. A pseudocode or flowchart for its algorithm4. A source program listing5. A hard copy of a sample test run of the program6. A user’s guide explaining to nonprogrammer

users how the program should be used (optional)