Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
14 views

Lecture 7 - Algorithms and Flow Charts

Uploaded by

mansouranthony77
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Lecture 7 - Algorithms and Flow Charts

Uploaded by

mansouranthony77
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

ALGORITHMS

AND
FLOWCHARTS

Fall 2022
ALGORITHMS AND FLOWCHARTS

 A typical programming task can be divided into the


following phases:

 Problem Solving
 Produce an ordered sequence of steps that describe the
solution
 This sequence of steps is called an algorithm

 Implementation
 Implement the program in some programming language such as
Java, Python, C …
Program Development Life Cycle
Steps in Problem Solving

 First produce a general algorithm


 Pseudocode
 Anartificial and informal language that helps programmers
develop algorithms
 Pseudocode is very similar to everyday English

 Refine the algorithm successively


 Reach a step by step detailed algorithm
 Closer to a computer language
Pseudocode & Algorithm

Example 1: Write an algorithm to determine a


student’s final grade and indicate whether it is
passing or failing. The final grade is calculated as the
average of four marks.
Pseudocode & Algorithm

Pseudocode

 Input a set of 4 marks


 Calculate their average
 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

 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

Input
M1,M2,M3,M4
Step 1: Input M1,M2,M3,M4
Step 2: GRADE  (M1+M2+M3+M4)/4
GRADE(M1+M2+M3+M4)/4
Step 3: if (GRADE <50) then
Print “FAIL”
N IS Y else
GRADE<5 Print “PASS”
0 endif
PRINT PRINT
“PASS” “FAIL”

STOP
Example 2

Write an algorithm and draw a flowchart to convert


the length in feet to centimeter
Example 2

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

Algorithm Flowchart
 Step 1: Input Lft START

 Step 2: Lcm  Lft x 30 Input


Lft
 Step 3: Print Lcm
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
Example 3

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


Input
 Step 2: AL x W W, L

 Step 3: Print A
ALxW

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
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:
Input
 Step 1: Input a, b, c a, b, c
 Step 2: d  sqrt ( b  b  4  a  c )
d  sqrt(b x b – 4 x a x c)
 Step 3: x1  (–b + d) / (2 x a)
 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
DECISION STRUCTURES

 The expression A>B is a logical expression


 It describes a condition we want to test
 if A>B is true (if A is greater than B)
 We take the action on left
 Print the value of A

 if A>B is false (if A is not greater than B)


 We take the action on right
 Print the value of B
DECISION STRUCTURES

 The algorithm for the flowchart is as follows:


If A>B then
print A Y
is
N
else A>B

print B
Print Print
endif A B
IF–THEN–ELSE STRUCTURE

 The structure is as follows


If condition then
true alternative
else
false alternative
endif
Relational Operators

Relational Operators
Operator Description
> Greater than
< Less than
= Equal to
 Greater than or equal to
 Less than or equal to
 Not equal to
Example 5

Write an algorithm that reads two values, determines the largest


value and prints the largest value with an identifying message.
Example 5

ALGORITHM

Step 1: Input VALUE1, VALUE2


Step 2: if (VALUE1 > VALUE2) then
MAX  VALUE1
else
MAX  VALUE2
endif
Step 3: Print “The largest value is”, MAX
Example 5
START

Input
VALUE1,VALUE2

Y is N
VALUE1>VALUE2

MAX  VALUE1 MAX  VALUE2

Print
“The largest value is”, MAX

STOP
NESTED IFS

 One of the alternatives within an IF–THEN–ELSE


statement
 may involve further IF–THEN–ELSE statement
Example 6

Write an algorithm that reads three numbers and


prints the value of the largest number
Example 6

Step 1: Input N1, N2, N3


Step 2: if (N1>N2) then
if (N1>N3) then
MAX  N1 [N1>N2, N1>N3]
else
MAX  N3 [N3>N1>N2]
endif
else
if (N2>N3) then
MAX  N2 [N2>N1, N2>N3]
else
MAX  N3 [N3>N2>N1]
endif
endif
Step 3: Print “The largest number is”, MAX
Example 7

Write and algorithm and draw a flowchart to:


 Read an employee name (NAME), overtime hours
worked (OVERTIME), hours absent (ABSENT)
 Determine the bonus payment (PAYMENT)
Example 7

Bonus Schedule
OVERTIME – (2/3)*ABSENT Bonus Paid

>40 hours $50


>30 but  40 hours $40
>20 but  30 hours $30
>10 but  20 hours $20
 10 hours $10
Example 7
Step 1: Input NAME,OVERTIME,ABSENT
Step 2: if (OVERTIME–(2/3)*ABSENT > 40) then
PAYMENT  50
else if (OVERTIME–(2/3)*ABSENT > 30) then
PAYMENT  40
else if (OVERTIME–(2/3)*ABSENT > 20) then
PAYMENT  30
else if (OVERTIME–(2/3)*ABSENT > 10) then
PAYMENT 20
else
PAYMENT  10
endif
Step 3: Print “Bonus for”, NAME “is $”, PAYMENT
Example 7
 Flowchart: Draw the flowchart of the above
algorithm?

You might also like