77
Problem Solving Algorithms

Alogorithm & Prolem Solving

Embed Size (px)

DESCRIPTION

Alogorithm OR PSUEDOCODES

Citation preview

Page 1: Alogorithm & Prolem Solving

Problem Solving

Algorithms

Page 2: Alogorithm & Prolem Solving

PSPD Using C Slide 2 of 40

Design

Topic & Structure of the lesson

In this chapter you will learn about:

• Problem Solving

• Algorithm

• Pseudocodes

• Flowcharts

Page 3: Alogorithm & Prolem Solving

PSPD Using C Slide 3 of 40

Design

Key Terms you must be able to use

If you have mastered this topic, you should be able to use the following terms correctly in your assignments and exams:

• program

• pseudocode

• flowchart

• algorithm

Page 4: Alogorithm & Prolem Solving

PSPD Using C Slide 4 of 40

Design

Problem Solving Techniques

In this chapter you will learn about:

What problem solving is The software development method of

problem solving using computers Basic algorithm control structures

The sequence structure The selection structure The repetition structure

Page 5: Alogorithm & Prolem Solving

PSPD Using C Slide 5 of 40

Design

Problem Solving Techniques

By the time you have completed this chapter,you will have acquired the ability to:

Apply the software development method to solve problems

Difference between the Algorithm & the Flowchart

Knowing about the control structures

Page 6: Alogorithm & Prolem Solving

PSPD Using C Slide 6 of 40

Design

Problem Solving

First:

You have to understand the problem.

UNDERSTANDING THE PROBLEM

What is the unknown? What are the data?What is the condition?

Is it possible to satisfy the condition?Is the condition sufficient to determine the unknown?Or is it sufficient?Or Redundant? Or Contradictory?

Draw a figure.Introduce suitable notation.Separate the various parts of the condition.Can you write them down?

Page 7: Alogorithm & Prolem Solving

PSPD Using C Slide 7 of 40

Design

Problem Solving

Second:

Find the connection between the data and the unknown.

Auxiliary problems may be devised if needed.

You should obtain eventually a plan of the solution.

DEVISING A PLANHave you seen it before? Or have you seen the same problem in slightly different form?

Do you know a related problem?

Look at the unknown! Try to think of a familiar problem having the same or similar unknown. Split the problem into smaller, simple sub-problems. If you cannot solve the proposed problem try to solve first some related problem. Or solve more general problem. Or special case of the problem. Or solve the part of the problem.

Page 8: Alogorithm & Prolem Solving

PSPD Using C Slide 8 of 40

Design

Problem Solving

Third:

Carry out your plan.

CARRYING OUT THE PLAN

Carrying out your plan of the solution,check each step. Can you see clearly that step is correct? Can you prove that it is correct?

Fourth:

Examine the solution obtained.

LOOKING BACK

Can you check the result? Can you derive the result differently? Can you use the result, or the method, for some other problem?

Page 9: Alogorithm & Prolem Solving

PSPD Using C Slide 9 of 40

Design

Problem Solving

The software development method

The software development method consists of the following steps:

Requirements specification

Analysis

Design

Implementation

Testing and verification

Documentation

Page 10: Alogorithm & Prolem Solving

PSPD Using C Slide 10 of 40

Design

Algorithmic Problem Solving

Algorithmic problem:

Any problem whose solution can be expressed as a set of executable instructions.

Algorithm:

A well defined computational procedure consisting of a set of instructions, that takes some value or set of values, as input, and produces some value or set of values, as output.

Page 11: Alogorithm & Prolem Solving

PSPD Using C Slide 11 of 40

Design

Algorithmic Problem Solving

Derived from the name of Mohammed al-khowarizmi, a Persian mathematician in the ninth century.

Al-khowarizmi--Algorismus(in Latin)--Algorithm An algorithm is like a recipe, that converts the

ingredients into some culinary dish. The formal written version is a program. Algorithms/programs are the software.The machine

that runs the programs is the hardware.

Page 12: Alogorithm & Prolem Solving

PSPD Using C Slide 12 of 40

Design

Algorithmic Problem Solving

 

 

 

Ingredient

Recipe(software)

Cooking utensils(hardware)

Al-gongBah-kut-the

Page 13: Alogorithm & Prolem Solving

PSPD Using C Slide 13 of 40

Design

Characteristics of an Algorithm

 

 

  Each step of an algorithm must be exact,

preciously and ambiguously described.

It must terminate, i.e. it contains a finite number of steps.

It must be effective, i.e.., produce the correct output.

It must be general, i.e.. to solve every instance of the problem.

Page 14: Alogorithm & Prolem Solving

PSPD Using C Slide 14 of 40

Design

Characteristics of an Algorithm

 

 

 

An Algorithm is implemented in some programming language.

program = Algorithm + Data Structures.

Data Structures refer to the types of data used and how the data are organized in the program.

An algorithm is usually presented in the form of some pseudo-code, which is a mixture of English statement,some mathematical notations,and selected keywords from a programming language.

Page 15: Alogorithm & Prolem Solving

PSPD Using C Slide 15 of 40

Design

Characteristics of an Algorithm

 

 

 

PROBLEM:

You are required to design a complete system which will enable the sum of two values to be calculated.

An Algorithm should emphasize the WHAT’s and not the HOW’s. Consider the problem below:

Page 16: Alogorithm & Prolem Solving

PSPD Using C Slide 16 of 40

Design

Problem Solving

To grapple with this problem, we have to understand the problem from the human perspective.

A question to ask yourself is this,

“How Would You Calculate the Sum of Two Values?”

Page 17: Alogorithm & Prolem Solving

PSPD Using C Slide 17 of 40

Design

Problem Solving

As the computer is also a device similar to the way in which the human brain functions, the process of calculating the sum of two values can also be easily performed by the computer.

=

Page 18: Alogorithm & Prolem Solving

PSPD Using C Slide 18 of 40

Design

Problem Solving

Input

Processing(Brains)

Output

Page 19: Alogorithm & Prolem Solving

PSPD Using C Slide 19 of 40

Design

Problem Solving

Input Device

Output Device

CPU(Brains)

Page 20: Alogorithm & Prolem Solving

PSPD Using C Slide 20 of 40

Design

Problem Solving

5 10

15

5 + 10 = 15

Input

Processing

OutputLet us assume we are interested in calculating the sum of 5 and 10.

Page 21: Alogorithm & Prolem Solving

PSPD Using C Slide 21 of 40

Design

Problem Solving

As shown previously, the example values (5 and 10) have been specified explicitly.

As the brain is flexible enough in calculating a wide range of numbers, the two input values have to be generalised.

Page 22: Alogorithm & Prolem Solving

PSPD Using C Slide 22 of 40

Design

Problem Solving

Value1Value2

Sum

Sum = Value1 + Value2

Notice that instead of using specific numbers, variables are used to represent these values.

Page 23: Alogorithm & Prolem Solving

PSPD Using C Slide 23 of 40

Design

What Are Variables?

Variables are memory locations within the computer which allows pieces of data to be stored.

The word variable comes from the word vary, which means that whatever you place within a variable can be changed.

A variable can be viewed as a container used to store things.

Data (for example, name, age, salary) can be stored in these containers.

Page 24: Alogorithm & Prolem Solving

PSPD Using C Slide 24 of 40

Design

What Are Variables?

Page 25: Alogorithm & Prolem Solving

PSPD Using C Slide 25 of 40

Design

Problem Solving

Now that we have an exact idea about how the problem is solved, let us represent this in a clearer manner, using the defining diagram.

Input Processing Output

Value1

Value2

Sum

Page 26: Alogorithm & Prolem Solving

PSPD Using C Slide 26 of 40

Design

Problem Solving

The next step is to identify the actual processing steps required to convert the input to become the output.

Input Processing Output

Value1

Value2

Sum1) Read Value1, Value2

2) Calculate Sum

3) Display Sum

Page 27: Alogorithm & Prolem Solving

PSPD Using C Slide 27 of 40

Design

Algorithm Development

Once the defining diagram has been developed, the next logical step is to develop the algorithm (which is much more detailed).

Input Processing Output

Value1

Value2

Sum1) Read Value1, Value2

2) Calculate Sum

3) Display Sum

The developed processing steps have to be more detailed in the algorithm.

Page 28: Alogorithm & Prolem Solving

PSPD Using C Slide 28 of 40

Design

Algorithm Development

The basic mathematical operators used in algorithms are as follows:-

+ addition

- subtraction

* multiplication

/ division

= assignment

( ) brackets for grouping calculations

Page 29: Alogorithm & Prolem Solving

PSPD Using C Slide 29 of 40

Design

Algorithm Development

Example of an algorithm (using pseudocodes) which can be used to carry out the tasks outlined in the defining diagram is as follows:-

1) Read Value1, Value2

2) Calculate

Sum = Value1 + Value2

3) Display Sum

Page 30: Alogorithm & Prolem Solving

PSPD Using C Slide 30 of 40

Design

Pseudocoding

 

 

 

A Pseudocode language is semiformal, English-like language with a limited vocabulary that can be used to design and describe algorithms.

The pseudocode language can be used for:

Designing algorithms

Communicating algorithms as programs

Implementing algorithms as programs

Debugging logic errors in program

Page 31: Alogorithm & Prolem Solving

PSPD Using C Slide 31 of 40

Design

Pseudocode for the Control Structures

 

 

 

The Sequence Control Structure:

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.

For Example:

read taxable income

read filing status

compute income tax

Page 32: Alogorithm & Prolem Solving

PSPD Using C Slide 32 of 40

Design

Cont’d

 

 

 

The Selection Control Structure:

The selection control structure defines two courses of action, depending on the outcome of a condition. A condition is an expression that, when evaluated, computes to either true or false.

Syntax is: if condition

then-part

else

else-part

end-if

Page 33: Alogorithm & Prolem Solving

PSPD Using C Slide 33 of 40

Design

Decision Making

Being able to mimic the way the human brain works, the computer also has the ability to make decisions.

Decision making can be represented in pseudocodes using the IF...THEN construct.

IF (expression) THEN::

ENDIF

Page 34: Alogorithm & Prolem Solving

PSPD Using C Slide 34 of 40

Design

Decision Making

IF (expression) THEN::

ENDIF

The expression is a comparison between two values which evaluates to either true of false.

Statements are placed here.

Page 35: Alogorithm & Prolem Solving

PSPD Using C Slide 35 of 40

Design

Decision Making

Example:-

We are looking for a job which pays more than RM4000.

IF (Salary>4000) THENSay "I Will Take The Job!!"

ENDIF

Example of an Expression

Page 36: Alogorithm & Prolem Solving

PSPD Using C Slide 36 of 40

Design

Decision Making

Commonly used relational operators in expressions:-

> Greater Than

< Less Than

= Equals To

< > Not Equals To

>= Greater Than or Equals To

<= Less Than or Equals To

( ) Brackets used for prioritising certain calculations

Page 37: Alogorithm & Prolem Solving

PSPD Using C Slide 37 of 40

Design

Decision Making

Since all expressions works out to be either true or false, what the IF..THEN statement represents is a two-state condition.

For example,

A potential employer is waiting for you to give a reply (on the spot) about the job offer with a salary of RM2000. Your decision would be to only take a job worth more than RM4000. What would you say?

IF (Salary>4000) THENSay “YES!”

ELSESay “NO!”

ENDIF

Page 38: Alogorithm & Prolem Solving

PSPD Using C Slide 38 of 40

Design

Decision Making

Certain conditions may give rise to more than one expression being evaluated. These are known as compound expressions.

Example:-

You are interested in taking up a job which pays more than RM4000 and that the company must also provide a credit card.

IF (Salary>4000) And (CreditCard=YES) THENTake Job!!

ENDIF

Page 39: Alogorithm & Prolem Solving

PSPD Using C Slide 39 of 40

Design

Decision Making

Compound expressions can be represented using the following operators:-

AND Every expression must evaluate to be true in order for the whole expression to be true.

OR As long as any one of the expression can be true, the entire IF statement will be true.

NOT The inverse (opposite) of the entire expression.

Page 40: Alogorithm & Prolem Solving

PSPD Using C Slide 40 of 40

Design

Decision Making

IF statements can be nested, that is, placed within another IF statement.

This is used in situations when the expression is more complex than the simple decisions (as seen earlier).

Page 41: Alogorithm & Prolem Solving

PSPD Using C Slide 41 of 40

Design

Decision Making

IF (Salary>4000) And (CreditCard=YES) THENSay “Yes I Will Take The Job!!”

ENDIF

For example, this statement.........

can be represented like this.........IF (Salary>4000) THEN

IF (CreditCard=YES) THENSay “Yes I Will Take The Job!!”

ELSESay “No Credit Card?”Say “Sorry!!”

ENDIFELSE

Say “Not Enough Pay!!”ENDIF

........ whereby more possibilities can be represented.

Page 42: Alogorithm & Prolem Solving

PSPD Using C Slide 42 of 40

Design

Decision Making

For good practice...........

IF (Salary>4000) THENIF (CreditCard=YES) THEN

Say “Yes I Will Take The Job!!”ELSE

Say “No Credit Card?”Say “Sorry!!”

ENDIFELSE

Say “Not Enough Pay!!”ENDIF

........ ensure that statements are properly indented to indicate block of statements which belong together.

Page 43: Alogorithm & Prolem Solving

PSPD Using C Slide 43 of 40

Design

Cont’d

 

 

 

For Example:

if a is greater than b then

print “A is greater”

else

print “B is greater”

end if

Page 44: Alogorithm & Prolem Solving

PSPD Using C Slide 44 of 40

Design

Cont’d

 

 

 

Repetition Control Structure:

The repetition control structure specifies a block of one or more statements that are repeatedly executed until a condition is satisfied.

Syntax is:

while condition

loop-body

end-while

Page 45: Alogorithm & Prolem Solving

PSPD Using C Slide 45 of 40

Design

Looping Constructs

Looping constructs (also known as repetition or iteration constructs) are a kind of construct found in pseudocodes which allows statements (or a group of statements) to be repeated.

The main reason why looping constructs are provided is because most of the problems which we encounter everyday requires some degree of repetition.

Page 46: Alogorithm & Prolem Solving

PSPD Using C Slide 46 of 40

Design

Looping Constructs

An example of a process which is iterative:-

Payroll processing is very much an iterative process as the person processing the payroll applies the same calculations for each employee to produce the pay slip.

Page 47: Alogorithm & Prolem Solving

PSPD Using C Slide 47 of 40

Design

Looping Constructs

The looping constructs available in pseudocodes are as follows:-

DOWHILE...ENDDO

FOR…NEXT

REPEAT...UNTIL

Page 48: Alogorithm & Prolem Solving

PSPD Using C Slide 48 of 40

Design

Looping Constructs

The format of the DOWHILE...ENDDO construct is shown below:-

DOWHILE (expression):::

ENDDO

Group of statements

An expression which determines whether the loop will continue.

Page 49: Alogorithm & Prolem Solving

PSPD Using C Slide 49 of 40

Design

Looping Constructs

The format of the FOR...NEXT construct is shown below:-

FOR (initialze TO expression) STEP increment:::

ENDDO

Group of statements

An expression which determines whether the loop will continue.

Page 50: Alogorithm & Prolem Solving

PSPD Using C Slide 50 of 40

Design

Looping Constructs

The format of the REPEAT...UNTIL construct is shown below:-

REPEAT:::

UNTIL (expression)

Group of statements

An expression which determines whether the loop will continue.

Page 51: Alogorithm & Prolem Solving

PSPD Using C Slide 51 of 40

Design

Looping Constructs

Take a look at the following example:-

You are required to develop a complete system which will allow the total payroll to be calculated.

The system is required to read in the amount to be paid for each employee.

The moment the system receives an input value of -99, the system is required to stop and display the total payroll.

Page 52: Alogorithm & Prolem Solving

PSPD Using C Slide 52 of 40

Design

Looping Constructs

Input Processing Output

Salary Total1) Read Salary

2) Calculate Total

3) Display Total

The Defining Diagram

Page 53: Alogorithm & Prolem Solving

PSPD Using C Slide 53 of 40

Design

Looping Constructs

Algorithm (Using Pseudocodes)

1) Display "Enter Salary"

2) Read Salary

3) Total = 0

4) DOWHILE (Salary<>-99)

Total = Total + Salary

Display "Enter Salary"

Read Salary

ENDDO

5) Display "Total Payroll = ", Total

Page 54: Alogorithm & Prolem Solving

PSPD Using C Slide 54 of 40

Design

Cont’d

 

 

 Example:

Dowhile (income is less than 50000)

print “Enter taxable income;should be

greater than or equal to 50000”

read income

Enddo

Page 55: Alogorithm & Prolem Solving

PSPD Using C Slide 55 of 40

Design

Desk Check Table

A desk check table is used to verify the correctness of the design. This is to ensure that the program which will eventually be developed is going to produce the answer which is required.

The desk check table is developed based on the following steps:-

1) Identify the data sets.

2) Identify the expected results.

3) Trace through the algorithm with the data sets using a trace table.

4) Analyse & compare the results produced in step (3) and the expected results in step (2).

Page 56: Alogorithm & Prolem Solving

PSPD Using C Slide 56 of 40

Design

Desk Check Table

Identify Data Sets

Input Processing Output

Value1

Value2

Sum1) Read Value1, Value2

2) Calculate Sum

3) Display Sum

Focus on the input section of the defining diagram and identify some possible values (data sets) which can be used to test the system.

Page 57: Alogorithm & Prolem Solving

PSPD Using C Slide 57 of 40

Design

Desk Check Table

Identify Expected Results

Input Processing Output

Value1

Value2

Sum1) Read Value1, Value2

2) Calculate Sum

3) Display Sum

Focus on the output section of the defining diagram and identify some possible values which the system will produce based on the data sets.

Page 58: Alogorithm & Prolem Solving

PSPD Using C Slide 58 of 40

Design

Desk Check TableTrace Table - Data Set 1

Read

Value1 Value2

5 3

Sum

Calculate 8

Display

Do the results match the expected results?

Page 59: Alogorithm & Prolem Solving

PSPD Using C Slide 59 of 40

Design

Desk Check Table

Trace Table - Data Set 2

Read

Value1 Value2

8 13

Sum

Calculate 21

Display

Do the results match the expected results?

Page 60: Alogorithm & Prolem Solving

PSPD Using C Slide 60 of 40

Design

Desk Check Table

Trace Table - Data Set 3

Read

Value1 Value2

15 9

Sum

Calculate 24

Display

Do the results match the expected results?

Page 61: Alogorithm & Prolem Solving

PSPD Using C Slide 61 of 40

Design

Program Flowcharts

As humans are more inclined towards understanding diagrams and pictures rather than words, pseudocodes tends to become tedious to understand if too lengthy.

Program flowcharts, because they are represented graphically, makes understanding easier.

Page 62: Alogorithm & Prolem Solving

PSPD Using C Slide 62 of 40

Design

Program Flowcharts

The following are the commonly used symbols for drawing program flowcharts.

terminator off-page connector

process storage

decisionmaking

document

input/output connector

arrowheads

Page 63: Alogorithm & Prolem Solving

PSPD Using C Slide 63 of 40

DesignBegin

Read Value1,Value2

Program Flowcharts

CalculateSum = Value1 + Value2

DisplaySum

End

Page 64: Alogorithm & Prolem Solving

PSPD Using C Slide 64 of 40

DesignBegin

Read Amount

Program Flowcharts

End

Amount>20.00?

CalculateActual=Amount * 0.80

CalculateActual=Amount

NOYES

Page 65: Alogorithm & Prolem Solving

PSPD Using C Slide 65 of 40

Design

Flowcharting

 

 

 

Another technique used in designing and representing algorithms.

Alternative to pseudocoing

A pseudocode description is verbal, a flowchart is graphical in nature.

Definition:

A flowchart is a graph consisting of geometrical shapes that are connected by flow lines.

Page 66: Alogorithm & Prolem Solving

PSPD Using C Slide 66 of 40

Design

Sequence Structure

 

 

 

Pseudocode: Flowchart:

statement_1

statement_2

------------

statement_n

Statement -1

Statement -2

Statement -n

Page 67: Alogorithm & Prolem Solving

PSPD Using C Slide 67 of 40

Design

Selection Structure

 

 

 

Pseudocode: Flowchart:

if condition

then-part

else

else-part

end_if

condition

else-part then-part

truefalse

Page 68: Alogorithm & Prolem Solving

PSPD Using C Slide 68 of 40

Design

Selection Structure

 

 

 

Pseudocode: Flowchart:

if condition

then-part

end_if

condition

then-part

true

false

Y

N

Page 69: Alogorithm & Prolem Solving

PSPD Using C Slide 69 of 40

Design

Repetition Structure

Pseudocode: Flowchart:

while condition

loop-body

end-while

condition loop-body

F

TY

N

Page 70: Alogorithm & Prolem Solving

PSPD Using C Slide 70 of 40

Design

Summary

Problem Solving– the process of transforming the description of a problem to its solution.

To Solve complex problems, we use computers as a tool and develop computer programs that give us solutions.

A commonly used method for problem solving using computers is the software development method,which consists of six steps.

Page 71: Alogorithm & Prolem Solving

PSPD Using C Slide 71 of 40

Design

Summary

1. The Requirements specification, provides us with a precise definition of the problem. 

2. In the analysis phase we identify problem inputs,outputs,special constraints, and formulas and equations to be used.

3. The design phase is concerned with developing an algorithm for the solution of the problem.

Page 72: Alogorithm & Prolem Solving

PSPD Using C Slide 72 of 40

Design

Summary

4. The implementation of an algorithm is a computer program.When executed, it should produce the solution to the problem.

5. Program Verification is the process of ensuring that a program meets user requirements.

6. Program testing, on the other hand, is the process of executing a program to demonstrate its correctness.

7. Program Documentation facilitates the use of the program,future program maintenance efforts,and program debugging.

Page 73: Alogorithm & Prolem Solving

PSPD Using C Slide 73 of 40

Design

Summary

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

A pseudocode language is a semiformal,English-like language with a limited vocabulary that can be used to design and describe algorithms.

Page 74: Alogorithm & Prolem Solving

PSPD Using C Slide 74 of 40

Design

Summary

Any algorithm can be described in terms of three basic control structures.They are the sequence,selection and repetition structures.

The top-down stepwise refinement of algorithms is a fundamental problem-solving strategy.

A Flowchart is a graphical representation of an algorithm.

Page 75: Alogorithm & Prolem Solving

PSPD Using C Slide 75 of 40

Design

Quick Review Question

1. State the difference between the Dowhile – Enddo structure and the Repeat – Until structure.

2. Write an algorithm that will display the first hundred even numbers using the Do-While loop.

Page 76: Alogorithm & Prolem Solving

PSPD Using C Slide 76 of 40

Design

Follow Up Assignment

• This is an individual piece of work.

• Your source code will be discussed at the end of the next lesson.

Page 77: Alogorithm & Prolem Solving

PSPD Using C Slide 77 of 40

Design

Summary of Main Teaching Points

• Problem Solving

• Pseudocodes• Flowcharts

• Basic control structures

• The sequence structure• The selection structure• The repetition structure