PROBLEM SOLVING:
ALGORITHMS AND
FLOWCHARTS
CSC 110- Introduction To Computer
Systems
Problem Solving Concepts
Problem Solving Procedures:
Problem Identification Identify what the problem actually is.
Problem Analysis Break down the problem into subproblems.
Algorithm Design Design the step-by-step procedures of solving a problem.
Program Development Implement the algorithm as a computer program.
Debugging and Testing Find out and remove all possible errors in the solution.
Documentation Prepare documents that describe the solution.
Problem Solving Procedures
1. PROBLEM IDENTIFICATION
To clarify and define the problem so that we know exactly what should be done.
Example: Check whether a student passes a subject, based on the rule:
The final mark (exam + test, weighed 70% and 30%) should be at least 40.
What is the
problem? What do we
need to
solve?
What should Does any
the program constraint affect
provide? the solution of
the problem?
ALGORITHMS AND FLOWCHARTS
A typical programming task can be divided into two
phases:
Problem solving phase
- produce an ordered sequence of steps that describe solution
of problem
- this sequence of steps is called an algorithm
Implementation phase
- implement the program in some programming language
Steps in Problem Solving
First produce a general algorithm (one can use
pseudocode)
Refine the algorithm successively to get step by step
detailed algorithm that is very close to a computer
language.
Pseudocode is an artificial and informal language that
helps programmers to develop algorithms. Pseudocode
is very similar to everyday English.
Pseudocode & Algorithm
Example 1: Write an algorithm to determine a student’s final grade and
indicate whether it is passing or failing whereas minimum passing marks are
50. The final grade is calculated as the average of four marks.
Pseudocode & Algorithm
Pseudocode:
Input a set of 4 marks
Calculate their average by summing and dividing by 4
if average is below 50
Print “FAIL”
else
Print “PASS”
Pseudocode & Algorithm
Detailed Algorithm
Step 1: Input M1,M2,M3,M4
Step 2: GRADE (M1+M2+M3+M4)/4
Step 3: if (GRADE < 50) then
Print “FAIL”
else
Print “PASS”
endif
The Flowchart
(Dictionary) A schematic representation of a sequence of
operations, as in a manufacturing process or computer program.
(Technical) A graphical representation of the sequence of
operations in an information system or program. Information
system flowcharts show how data flows from source documents
through the computer to final distribution to users. Program
flowcharts show the sequence of instructions in a single program
or subroutine. Different symbols are used to draw each type of
flowchart.
The Flowchart
A Flowchart
- shows logic of an algorithm
- emphasizes individual steps and their interconnections
- e.g. control flow from one action to the next
Flowchart Symbols
Name Symbol Use in Flowchart
Oval Denotes the beginning or end of the program
Parallelogram Denotes an input operation
Rectangle Denotes a process to be carried out
e.g. addition, subtraction, division etc.
Diamond Denotes a decision (or branch) to be made.
The program should continue along one of
two routes. (e.g. IF/THEN/ELSE)
Hybrid Denotes an output operation
Flow line Denotes the direction of logic flow in the program
Example
START
Step 1: Input M1,M2,M3,M4
Step 2: GRADE (M1+M2+M3+M4)/4
Input
M1,M2,M3,M4
Step 3: if (GRADE <50) then
Print “FAIL”
else
GRADE(M1+M2+M3+M4)/4 Print “PASS”
endif
N IS Y
GRADE<5
0
PRINT PRINT
“PASS” “FAIL”
STOP
Example 2
Write an algorithm and draw a flowchart to convert the length in feet to
centimeter.
Pseudocode:
Input the length in feet (Lft)
Calculate the length in cm (Lcm) by multiplying LFT with 30
Print length in cm (LCM)
Example 2
(Draw it !!!)
Algorithm
Step 1: Input Lft
Flowchart
Step 2: Lcm Lft x 30 START
Step 3: Print Lcm
Input
Lft
Lcm Lft x 30
Print
Lcm
STOP
Example 3
Write an algorithm and draw a flowchart that will
read the two sides of a rectangle and calculate its
area.
Pseudocode
Input the width (W) and Length (L) of a rectangle
Calculate the area (A) by multiplying L with W
Print A
Example 3
Algorithm
START
Step 1: Input W,L
Step 2: A L x W Input
Step 3: Print A W, L
ALxW
Print
A
STOP
Example 4
Write an algorithm and draw a flowchart that will
calculate the roots of a quadratic equation
ax 2 bx c 0
Hint: d = sqrt (b 2 4ac ), and the roots are:
x1 = (–b + d)/2a and x2 = (–b – d)/2a
Write Pseudocode and Draw Flowchart
Example 4
Pseudocode:
Input the coefficients (a, b, c) of the quadratic equation
Calculate d
Calculate x1
Calculate x2
Print x1 and x2
Example 4
START
Algorithm:
Step 1: Input a, b, c Input
a, b, c
Step 2: d sqrt ( b b 4 a ) c
Step 3: x1 (–b + d) / (2 x a) d sqrt(b x b – 4 x a x c)
Step 4: x2 (–b – d) / (2 x a)
x1 (–b + d) / (2 x a)
Step 5: Print x1, x2
X2 (–b – d) / (2 x a)
Print
x1 ,x2
STOP