Problem Solving - PowerPoint PPT Presentation

About This Presentation
Title:

Problem Solving

Description:

Algorithms Problem Solving – PowerPoint PPT presentation

Number of Views:151
Avg rating:3.0/5.0
Slides: 78
Provided by: API114
Category:

less

Transcript and Presenter's Notes

Title: Problem Solving


1
Problem Solving
Algorithms
2
Topic Structure of the lesson
  • In this chapter you will learn about
  • Problem Solving
  • Algorithm
  • Pseudocodes
  • Flowcharts

3
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

4
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

5
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

6
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?
7
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 PLAN Have 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.
8
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?
9
Problem Solving
  • The software development method
  • The software development method consists of the
    following steps
  • Requirements specification
  • Analysis
  • Design
  • Implementation
  • Testing and verification
  • Documentation

10
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.

11
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.

12
Algorithmic Problem Solving
Ingredient
  •  
  •  
  •  

Recipe (software)
Cooking utensils (hardware)
Al-gong Bah-kut-the
13
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.

14
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.

15
Characteristics of an Algorithm
  •  
  •  
  •  
  • An Algorithm should emphasize the WHATs and not
    the HOWs. Consider the problem below

PROBLEM You are required to design a
complete system which will enable the sum of two
values to be calculated.
16
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?
17
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.

18
Problem Solving
Processing (Brains)
Input
Output
19
Problem Solving
Output Device
CPU (Brains)
Input Device
20
Problem Solving
Processing
10
5
5 10 15
15
Input
Output
Let us assume we are interested in calculating
the sum of 5 and 10.
21
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.
22
Problem Solving
Value2
Value1
Sum Value1 Value2
Sum
Notice that instead of using specific numbers,
variables are used to represent these values.
23
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.
24
What Are Variables?
25
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
26
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
Sum
1) Read Value1, Value2 2) Calculate
Sum 3) Display Sum
27
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
Sum
1) Read Value1, Value2 2) Calculate
Sum 3) Display Sum
The developed processing steps have to be more
detailed in the algorithm.
28
Algorithm Development
The basic mathematical operators used in
algorithms are as follows-
addition - subtraction multiplication / divisi
on assignment ( ) brackets for grouping
calculations
29
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
30
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

31
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
32
Contd
  •  
  •  
  •  

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
33
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
34
Decision Making
The expression is a comparison between two values
which evaluates to either true of false.
IF (expression) THEN ENDIF
Statements are placed here.
35
Decision Making
Example- We are looking for a job which pays
more than RM4000.
Example of an Expression
IF (Salarygt4000) THEN Say "I Will Take The
Job!!" ENDIF
36
Decision Making
Commonly used relational operators in
expressions-
gt Greater Than lt Less Than Equals To lt gt Not
Equals To gt Greater Than or Equals To lt Less
Than or Equals To ( ) Brackets used for
prioritising certain calculations
37
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 (Salarygt4000) THEN Say YES! ELSE Say
NO! ENDIF
38
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 (Salarygt4000) And (CreditCardYES) THEN Take
Job!! ENDIF
39
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.
40
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).
41
Decision Making
For example, this statement.........
IF (Salarygt4000) And (CreditCardYES) THEN Say
Yes I Will Take The Job!! ENDIF
can be represented like this.........
IF (Salarygt4000) THEN IF (CreditCardYES)
THEN Say Yes I Will Take The
Job!! ELSE Say No Credit Card? Say
Sorry!! ENDIF ELSE Say Not Enough
Pay!! ENDIF
........ whereby more possibilities can be
represented.
42
Decision Making
For good practice...........
IF (Salarygt4000) THEN IF (CreditCardYES)
THEN Say Yes I Will Take The
Job!! ELSE Say No Credit Card? Say
Sorry!! ENDIF ELSE Say Not Enough
Pay!! ENDIF
........ ensure that statements are properly
indented to indicate block of statements which
belong together.
43
Contd
  •  
  •  
  •  

For Example if a is greater than
b then print A is
greater else
print B is greater end if
44
Contd
  •  
  •  
  •  

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
45
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.
46
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.
47
Looping Constructs
The looping constructs available in pseudocodes
are as follows- DOWHILE...ENDDO FORNEXT REPEAT.
..UNTIL
48
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.
49
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.
50
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.
51
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.
52
Looping Constructs
The Defining Diagram
Input
Processing
Output
Salary
Total
1) Read Salary 2) Calculate Total 3) Display Total
53
Looping Constructs
Algorithm (Using Pseudocodes)
1) Display "Enter Salary" 2) Read Salary 3) Total
0 4) DOWHILE (Salaryltgt-99) Total Total
Salary Display "Enter Salary" Read
Salary ENDDO 5) Display "Total Payroll ",
Total
54
Contd
  •  
  •  
  •  

Example Dowhile (income is less than
50000) print Enter taxable incomeshould
be greater than or equal to 50000 read
income Enddo
55
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).
56
Desk Check Table
Identify Data Sets
Focus on the input section of the defining
diagram and identify some possible values (data
sets) which can be used to test the system.
57
Desk Check Table
Identify Expected Results
Focus on the output section of the defining
diagram and identify some possible values which
the system will produce based on the data sets.
58
Desk Check Table
Trace Table - Data Set 1
Do the results match the expected results?
59
Desk Check Table
Trace Table - Data Set 2
Do the results match the expected results?
60
Desk Check Table
Trace Table - Data Set 3
Do the results match the expected results?
61
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.
62
Program Flowcharts
The following are the commonly used symbols for
drawing program flowcharts.
off-page connector
terminator
process
storage
decision making
document
input/output
connector
arrowheads
63
Program Flowcharts
Begin
Read Value1, Value2
Calculate Sum Value1 Value2
Display Sum
End
64
Program Flowcharts
Begin
Read Amount
NO
YES
Amountgt20.00?
Calculate ActualAmount 0.80
Calculate ActualAmount
End
65
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.

66
Sequence Structure
  •  
  •  
  •  

Pseudocode Flowchart
statement_1 statement_2 ------------ statement_n

Statement -1
Statement -2
Statement -n
67
Selection Structure
  •  
  •  
  •  

Pseudocode Flowchart if condition then-part e
lse else-part end_if
false
condition
true
then-part
else-part
68
Selection Structure
  •  
  •  
  •  

Pseudocode Flowchart if condition then-part
end_if
Y
true
condition
N
then-part
false
69
Repetition Structure
Pseudocode Flowchart while
condition loop-body end-while
T
condition
Y
loop-body
F
N
70
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.

71
Summary
  • The Requirements specification, provides us with
    a precise definition of the problem. 
  • In the analysis phase we identify problem
    inputs,outputs,special constraints, and formulas
    and equations to be used.
  • The design phase is concerned with developing an
    algorithm for the solution of the problem.

72
Summary
  • The implementation of an algorithm is a computer
    program.When executed, it should produce the
    solution to the problem.
  • Program Verification is the process of ensuring
    that a program meets user requirements.
  • Program testing, on the other hand, is the
    process of executing a program to demonstrate its
    correctness.
  • Program Documentation facilitates the use of the
    program,future program maintenance efforts,and
    program debugging.

73
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.

74
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.

75
Quick Review Question
  • State the difference between the Dowhile Enddo
    structure and the
  • Repeat Until structure.
  • Write an algorithm that will display the first
    hundred even numbers
  • using the Do-While loop.

76
Follow Up Assignment
  • This is an individual piece of work.
  • Your source code will be discussed at the
  • end of the next lesson.

77
Summary of Main Teaching Points
  • Problem Solving
  • Pseudocodes
  • Flowcharts
  • Basic control structures
  • The sequence structure
  • The selection structure
  • The repetition structure
Write a Comment
User Comments (0)
About PowerShow.com