Software Development Methodologies and Algorithm Design

 
1
 
 
 
 
CMPE108
CMPE108
 
 
 
 
 
 
 
Algorithms and Flowcharts
Algorithms and Flowcharts
 
Software Development Method
Software Development Method
 
1.
Requirements specification
 
Understanding what the problem is, what is needed to solve it, what the
 
solution should provide, existing constraints
2.
Analysis
 
Deciding on inputs(data to work with it) /outputs (desired results) , formulas,
 
equations to be used
3.
Design
 
Development of an algorithm (
pseudocodes
 and 
flowcharts
)
4.
Implementation
 
Writing the software in a programming language using algorithm
5.
Testing 
(demonstrating correctness) and verification (ensuring that
program meets user’s requirements)
6.
Maintenance and update
 
 Removing undetected errors and prepare a documentation of the
 
program
 
Algorithm, Pseudo
Algorithm, Pseudo
c
c
ode and
ode and
Flowchart
Flowchart
 
Algorit
h
m
 
 A set of instructions, arranged in a
specific logical order, which, when  executed,
produce the solution for a particular problem.
Two Techniques for representing algorithms:
Pseudo
code
 
Semiformal, English- like language with
limited vocabulary.  The instructions are closer to
computer language
.
Flowchart
 
 Graphical presentation of an algorithm
consisting of geometrical shapes that are connected
by flow lines.
 
3
 
Flowchart Symbols
Flowchart Symbols
 
4
Flowlines
 Connects blocks and show
s
 the direction of flow
.
Start/Stop or Begin/End
: 
Shows the start and the end.
Processing
.
 Indicates a processing block such as calculations
I/O
: 
Input to and output from the computer
Decision:  
Used for comparison operations
On-Page Connector
 
Flowchart sections can be connected by these symbols
Off-Page Connector
 Flowchart sections on different pages can be connected by these
symbols
 
Designing Algorithms
 
Structured programming
In 1966, Bohm and Jacopini demonstrated that any algorithm
can be described using only three control structures:
sequence, selection, and repetition
Top-down design (divide and conquer
 )
Splitting a problem into several simpler sub-problems or major
steps, solving each individually, and then combining solutions
into one
Algorithm for a programming problem (major steps)
1.
Get the data
2.
Perform the computations
3.
Display the results
 
Structured Programming
 
Three control structures:
 
 
1- 
sequence
  
2-
 selection
  
3- 
repetition
 
Structured Programming
 1-
Sequence Structure
 
   Series of steps or statements that are executed
in the order in which they are written
Statement_1
Statement_2
Statement_n
 
Statement_1
Statement_2
Statement_n
 
begin
    Statement_1
    Statement_2
    Statement_n
end
 
Blocked
undefined
 
8
 
Example: Computing the Salary
Example: Computing the Salary
 
Algorit
h
m:
 
1.
BEGIN
2.
PRINT “Enter hours and
payment:”
3.
READ 
hours
, 
payment
4.
Salary
 = 
hours
 * 
payment
5.
PRINT 
Salary
6.
END
Write down an algorithm and draw a flowchart which computes the
daily salary of a worker using the formula given below:
 
Salary
 = 
hours
 X 
payment
undefined
Example:
Example:
9
Write down an algorithm and draw a flowchart to convert the distance
given in miles to kilometers using the following formula
.
1 mi
le
 = 1.609 kilome
ters
 
Algorit
hm
:
1.
BEGIN
2.
PRINT “Enter
mile:”
3.
READ mil
e
4.
km=mil
e
 * 1.609
5.
PRINT km
6.
END
undefined
Example: 
Example: 
Write down an algorithm and draw a flowchart
that will read the two sides of a rectangle and calculate its area.
10
 
Algorit
hm
:
1.
BEGIN
2.
PRINT “Enter width and
length:”
3.
READ 
width, length
4.
area 
=
 width
 * 
length
5.
PRINT
 area
6.
END
PRINT area
undefined
 
Example:  
The roots of   
a
 x
2
 + 
b
 x +
c
 =0    are:
x
1
 = (–
b
 + sqrt(
d
)
 
) /2
a
   and
x
2
 = (–
b
 – sqrt(
d
) ) /2
a
    where  
d 
= b
2
 – 4 ac
Write an algorithm and draw a flowchart that will calculate the roots of a
quadratic equation
 
Algorit
hm
:
 
1. BEGIN
2. PRINT “Enter a, b, c:”
3. READ a, b, c
4. d 
=
 sqrt ( b*b  – 4 * a*c)
5. x1 
=
 (–b + d) / (2*a)
6. x2 
=
 (–b – d) / (2*a)
7. PRINT x1, x2
8. END
 
 
11
P
R
I
N
T
 
 
x
1
,
 
x
2
undefined
 
2. Selection (decision) Structures
 
Decision structures of pseudocode 
may be
IF structure:  
(single alternative decision )
if 
condition
 then
       
alternative
endif
 
12
then - part
 
If Examples
 
The condition grade<50
is a logical expression
if 
grade < 50
 is true
(if grade is less than 50)
it carries “true” branch and
prints  “FAIL”
if 
grade<50
 is false
(if grade is not less than 50)
it carries “false” branch and
does no operation.
 
PRINT “FAIL”
undefined
 
2-
Selection (Decision) Structures (cont.)
 
IF-THEN-ELSE structure: 
(dual alternative)
if 
condition
 
 then
      
then-alternative
else
      else-alternative
endif
condition
else-part
then-part
 
true
 
false
if condition
    then-part
else
    else-part
end_if
 
EXAMPLE for IF-THEN-ELSE
STRUCTURE
 
IF A>B then
 
  PRINT A
ELSE
 
  PRINT B
ENDIF
 
A
l
g
o
r
i
t
h
m
 
F
l
o
w
c
h
a
r
t
 
P
R
I
N
T
 
 
A
 
P
R
I
N
T
 
 
B
 
Relational Operators
undefined
 
Example:  
Example:  
The final grade is calculated as the average of four marks. Student
fails if final grade is less than 50.  Write an algorithm and draw a flowchart to
determine a student’s final grade and indicate whether it is passing or failing.
 
Algorithm:
1. 
BEGIN
2. 
PRINT “
Enter M1, M2, M3, M4:
3. 
READ 
M1. M2. M3. M4
4. grade = (M1+M2+M3+M4)/4
5. 
IF 
grade
 < 
50
         
PRINT “
Fail”
     
ELSE
         P
RINT 
“Pass”
    ENDIF
6
.  END
 
17
P
R
I
N
T
 
P
a
s
s
P
R
I
N
T
 
F
a
i
l
 
Flowchart
 
EXAMPLE: 
EXAMPLE: 
Write an algorithm that reads two values, determines the
largest value and prints the largest value with an identifying message.
 
Algorithm
 
1.  BEGIN
2.  PRINT “Enter value1, value2:”
3.  READ  value1, value2
4.  IF (value1 > value2) then
  
Max 
= value1
 
ELSE
  
Max =  value2
    ENDIF
5. PRINT “The largest value is”, Max
6. END
 
Flowchart
P
r
i
n
t
T
h
e
 
l
a
r
g
e
s
t
 
v
a
l
u
e
 
i
s
,
 
M
a
x
Example:
Example:
20
Write down and  algorithm and draw a flowchart for the solution of the following problem
.
Read the temperature in 
Fahrenheit 
from the keyboard.
 
If it
 
is less than 
-459.7 (absolute zero) 
display
an error message that the temperature is below absolute zero
. 
 Otherwise
, 
convert the temperature
in 
Fahrenheit 
to Centigrade using the following formula
.
Centigrade
 = ( 5 / 9 ) X ( Fahrenheit – 32 )
Algorithm:
1.
BEGIN
2.
PRINT “
This program converts Fahrenheit to Centigrade
3.
PRINT “Enter Fahrenheit:”
4.
READ Fahrenheit
5.
IF Fahrenheit < -459.7
  
PRINT “
The temperature is below absolute zero
 
ELSE
  
Centigrade
 = (5/9) * (Fahrenheit – 32)
  
PRINT 
Centigrade
   ENDIF
5.  END
 
21
 
Flowchart
 
f
alse
 
t
rue
22
 
Flowchart
Algorithm
1.
BEGIN
2.
PRINT “Enter N1, N2. N3:”
3.
READ N1, N2, N3
4.
IF N1>N2
  
temp=N1
  
N1=N2
  
N2=temp
5
.  IF N2>N3
  
temp=N2
  
N2=N3
  
N3=temp
6
.  IF N1>N2
  
temp=N1
  
N1=N2
  
N2=temp
7
.  PRINT N1, N2, N3
8.
  END
Design an algorithm that arranges any
three numbers
 N1, N2, N3 
so that
N1<=N2<=N3
. and then draw its
flowchart
Example:
Example:
undefined
 
3-Repetition Structure
 
Specifies a block of one or more statements that
are repeatedly executed as long as a condition is
satisfied
 
 
 
 
If the same task is repeated over and over again
a loop can be used to reduce program size and
complexity
 
 
condition
loop-body
 
true
 
false
while condition
    loop-body
end_while
undefined
 
24
 
WHILE/
END_WHILE
 
Example: 
Write an algorithm and draw a
flowchart to calculate 2
4
 .
P
R
I
N
T
 
P
r
o
d
u
c
t
 
Question
: 
What happens if you want to
calculate 2 to the power of 12?
 
A
n
s
w
e
r
:
U
s
e
 
a
 
L
O
O
P
t
o
 
r
e
p
e
a
t
 
a
s
e
t
 
o
f
 
s
t
e
p
s
o
f
 
t
h
e
a
l
g
o
r
i
t
h
m
.
 
1. BEGIN
2. Base 
= 
2
3. Power 
= 12
4. Product = Base
5. Counter = 1
6
.
 
W
H
I
L
E
 
C
o
u
n
t
e
r
 
<
 
P
o
w
e
r
 
Product 
=
 Product * Base
 
Counter = Counter +1
 
 
 
 
 
E
N
D
_
W
H
I
L
E
7
.
 
P
R
I
N
T
 
 
P
r
o
d
u
c
t
8. END
R
e
p
e
a
t
e
d
p
a
r
t
s
 
Flowchart with a While Loop
 
1. BEGIN
2. Base 
= 
2
3. Power 
= 12
4. Product = Base
5. Counter = 1
6
.
 
W
H
I
L
E
 
C
o
u
n
t
e
r
 
<
 
P
o
w
e
r
 
Product 
=
 Product * Base
 
Counter = Counter +1
 
 
 
 
E
N
D
_
W
H
I
L
E
7
.
 
P
R
I
N
T
 
 
P
r
o
d
u
c
t
8. END
P
R
I
N
T
P
r
o
d
u
c
t
 
TRACING for power=4
 
E
x
a
m
p
l
e
:
 
W
r
i
t
e
 
d
o
w
n
 
a
n
 
a
l
g
o
r
i
t
h
m
 
a
n
d
 
d
r
a
w
 
a
 
f
l
o
w
c
h
a
r
t
 
t
o
 
f
i
n
d
 
a
n
d
p
r
i
n
t
 
t
h
e
 
l
a
r
g
e
s
t
 
o
f
 
t
h
r
e
e
 
n
u
m
b
e
r
s
.
 
R
e
a
d
 
n
u
m
b
e
r
s
 
o
n
e
 
b
y
 
o
n
e
.
 
V
e
r
i
f
y
 
y
o
u
r
r
e
s
u
l
t
 
b
y
 
a
 
t
r
a
c
e
 
t
a
b
l
e
.
 
(
U
s
e
 
5
,
 
7
,
 
3
 
a
s
 
t
h
e
 
n
u
m
b
e
r
s
 
r
e
a
d
)
 
A
l
g
o
r
i
t
h
m
1. BEGIN
2. READ  N1
3. Max 
=
 N1
4. READ N2
5. IF (N2>Max) THEN
  
 Max = N2
 
ENDIF
6. READ N3
7. IF (N3>Max) THEN
      
 
Max = N3
 
ENDIF
8. PRINT “The largest number is:”, Max
9. END
 
            
N1      N2     N3      Max   N2>Max  N3>Max
Step 2:     5         ?      ?           ?          ?           ?
Step 3:     5         ?      ?            5          ?          ?
Step 4:    5          7      ?           5           ?          ?
Step 5:    5          7      ?           7           T          ?
Step 6:    5         7       3           7           ?          ?
Step 7:    5         7       3          7            ?          F
S
t
e
p
 
8
:
 
 
P
r
i
n
t
 
 
 
T
h
e
 
l
a
r
g
e
s
t
 
n
u
m
b
e
r
 
i
s
 
7
 
T
r
a
c
i
n
g
 
Draw the Flowchart.
 
Example for while loop
 
E
x
a
m
p
l
e
:
 
W
r
i
t
e
 
d
o
w
n
 
a
n
 
a
l
g
o
r
i
t
h
m
 
a
n
d
d
r
a
w
 
a
 
f
l
o
w
c
h
a
r
t
 
t
o
 
f
i
n
d
 
a
n
d
 
p
r
i
n
t
 
t
h
e
l
a
r
g
e
s
t
 
o
f
 
N
 
(
N
 
c
a
n
 
b
e
 
a
n
y
 
n
u
m
b
e
r
)
n
u
m
b
e
r
s
.
 
R
e
a
d
 
n
u
m
b
e
r
s
 
o
n
e
 
b
y
 
o
n
e
.
V
e
r
i
f
y
 
y
o
u
r
 
r
e
s
u
l
t
 
b
y
 
a
 
t
r
a
c
e
 
t
a
b
l
e
.
(
A
s
s
u
m
e
 
N
 
t
o
 
b
e
 
3
 
a
n
d
 
t
h
e
 
f
o
l
l
o
w
i
n
g
 
s
e
t
 
t
o
b
e
 
t
h
e
 
n
u
m
b
e
r
s
 
{
4
 
2
 
8
 
}
)
 
A
l
g
o
r
i
t
h
m
 
a
n
d
 
F
l
o
w
c
h
a
r
t
 
1. BEGIN
2. PRINT “Enter N:”
3. READ N
4. Max = 0
5. Counter 
= 0
6. WHILE (Counter < N )
     
 
Counter 
=
 Counter + 1
     
 
PRINT “Enter number:”
     
 
READ number
     
 
IF  (number > Max)
     
 
    Max 
=
 number
  
ENDIF
    END_WHILE
7. PRINT  Max
P
R
I
N
T
 
M
a
x
 
Tracing
 
 
 
Tracing
 
 
N=3,   numbers {4 2 8 }
 
1. BEGIN
2. PRINT “Enter N:”
3. READ N
4. Max = 0
5. Counter 
= 0
6. WHILE (Counter < N )
     6.1
 
Counter 
=
 Counter + 1
     6.2
 
PRINT “Enter number:”
     6.3
 
READ number
     6.4
 
IF  (number > Max)
     6.5
 
    Max 
=
 number
 
ENDIF
    END_WHILE
7. PRINT  Max
 
For a shorter table, use multiple steps at each line.
undefined
Example:
Example:
34
Write an algorithm and draw a flowchart for
computing the value of the following expression
where N is entered by the user
1/1 +1/2 + 1/3 + ... + 1/N
 
Algorit
h
m:
1.
BEGIN
2.
PRINT “Enter N:”
3.
READ N
4.
i=1
5.
sum
=0
6.
W
H
I
L
E
 
I
 
<
=
 
N
sum
 = 
sum
 + 1 / i
i = i + 1
 
END_
WHILE
6.  PRINT 
sum
7.  END
 
Flowchart
undefined
Example:
Example:
35
Write down an algorithm that computes the sum
of digits and number of digits of a given number.
Draw the corresponding flowchart.
MOD         %
DIV            /
 
Algorit
h
m:
1.
BEGIN
2.
digits=0
3.
sum
=0
4.
PRINT “Enter number:”
5.
READ number
5.  WHILE 
number 
  
 
 0
sum
 = 
sum
 + (number MOD 10)
number = number 
DIV
 10
digits = digits + 1
 
END_WHILE
6.  PRINT digits, 
sum
7.  END
 
Flowchart:
undefined
Example
Example
:
:
36
Compute the sum of numbers between 1 and
N
. N will be entered by the user.
1 + 2 + 3 + ... + N
 
Algorit
hm
:
1.
BEGIN
2.
PRINT “Enter N:”
3.
READ N
4.
sum
=0
5.
Counter=1
6.
WHILE Counter < = N
sum
 = 
sum
 + 
Counter
 
   Counter = Counter +1
 
END_WHILE
6.  PRINT 
sum
7.  END
 
Flowchart
Slide Note
Embed
Share

This content discusses the Software Development Method emphasizing requirements specification, analysis, design, implementation, testing, and maintenance. It also covers algorithms, pseudocode, flowcharts, flowchart symbols, and structured programming techniques like sequence, selection, and repetition. The key focus is on designing efficient algorithms using top-down design principles.

  • Software Development
  • Algorithm Design
  • Structured Programming
  • Flowcharts
  • Top-Down Design

Uploaded on Sep 29, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. CMPE108 Algorithms and Flowcharts 1

  2. Software Development Method 1. Requirements specification Understanding what the problem is, what is needed to solve it, what the solution should provide, existing constraints Analysis Deciding on inputs(data to work with it) /outputs (desired results) , formulas, equations to be used Design Development of an algorithm (pseudocodes and flowcharts) Implementation Writing the software in a programming language using algorithm Testing (demonstrating correctness) and verification (ensuring that program meets user s requirements) Maintenance and update Removing undetected errors and prepare a documentation of the program 2. 3. 4. 5. 6.

  3. Algorithm, Pseudocode and Flowchart Algorithm A set of instructions, arranged in a specific logical order, which, when executed, produce the solution for a particular problem. Two Techniques for representing algorithms: Pseudocode Semiformal, English- like language with limited vocabulary. The instructions are closer to computer language. Flowchart Graphical presentation of an algorithm consisting of geometrical shapes that are connected by flow lines. 3

  4. Flowchart Symbols Flowlines Connects blocks and shows the direction of flow. Start/Stop or Begin/End: Shows the start and the end. Processing. Indicates a processing block such as calculations I/O: Input to and output from the computer Decision: Used for comparison operations On-Page Connector Flowchart sections can be connected by these symbols Off-Page Connector Flowchart sections on different pages can be connected by these symbols 4

  5. Designing Algorithms Structured programming In 1966, Bohm and Jacopini demonstrated that any algorithm can be described using only three control structures: sequence, selection, and repetition Top-down design (divide and conquer ) Splitting a problem into several simpler sub-problems or major steps, solving each individually, and then combining solutions into one Algorithm for a programming problem (major steps) 1. Get the data 2. Perform the computations 3. Display the results

  6. Structured Programming Three control structures: 1- sequence 2- selection 3- repetition

  7. Structured Programming 1-Sequence Structure Series of steps or statements that are executed in the order in which they are written Blocked Statement_1 Statement_2 Statement_n Statement_1 begin Statement_1 Statement_2 Statement_n end Statement_2 Statement_n

  8. Example: Computing the Salary Write down an algorithm and draw a flowchart which computes the daily salary of a worker using the formula given below: Salary = hours X payment Flowchart: Algorithm: BEGIN 1.BEGIN 2.PRINT Enter hours and payment: 3.READ hours, payment 4.Salary = hours * payment 5.PRINT Salary 6.END PRINT Enter hours and payment:" READ hours, payment Salary = hours * payment PRINT Salary END 8

  9. Example: Write down an algorithm and draw a flowchart to convert the distance given in miles to kilometers using the following formula. 1 mile = 1.609 kilometers Flowchart Algorithm: BEGIN 1.BEGIN 2.PRINT Enter mile: 3.READ mile 4.km=mile * 1.609 5.PRINT km 6.END PRINT Enter mile: READ mile km = mile * 1.609 PRINT km END 9

  10. Example: Write down an algorithm and draw a flowchart that will read the two sides of a rectangle and calculate its area. BEGIN Algorithm: PRINT Enter width and length: READ width, length 1.BEGIN 2.PRINT Enter width and length: 3.READ width, length 4.area = width * length 5.PRINT area 6.END area = width * length PRINT area END 10

  11. Example: The roots of a x2 + b x +c =0 are: x1 = ( b + sqrt(d)) /2a and x2 = ( b sqrt(d) ) /2a where d = b2 4 ac Write an algorithm and draw a flowchart that will calculate the roots of a quadratic equation Algorithm: BEGIN PRINT Enter a, b, c: READ a, b, c 1. BEGIN 2. PRINT Enter a, b, c: 3. READ a, b, c 4. d = sqrt ( b*b 4 * a*c) 5. x1 = ( b + d) / (2*a) 6. x2 = ( b d) / (2*a) 7. PRINT x1, x2 8. END d = sqrt(b * b 4 * a * c) x1 =( b + d) / (2 * a) x2= ( b d) / (2 * a) PRINT x1, x2 END 11

  12. 2. Selection (decision) Structures Decision structures of pseudocode may be IF structure: (single alternative decision ) if condition then alternative endif true condition then - part false 12

  13. If Examples The condition grade<50 is a logical expression if grade < 50 is true (if grade is less than 50) it carries true branch and prints FAIL if grade<50 is false (if grade is not less than 50) it carries false branch and does no operation. true Is grade < 50 ? PRINT FAIL false

  14. 2-Selection (Decision) Structures (cont.) IF-THEN-ELSE structure: (dual alternative) if conditionthen then-alternative else else-alternative endif false true if condition then-part else else-part end_if condition then-part else-part

  15. EXAMPLE for IF-THEN-ELSE STRUCTURE Algorithm Flowchart IF A>B then PRINT A ELSE PRINT B ENDIF Is false true A>B ? PRINT B PRINT A

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

  17. Example: The final grade is calculated as the average of four marks. Student fails if final grade is less than 50. Write an algorithm and draw a flowchart to determine a student s final grade and indicate whether it is passing or failing. Algorithm: 1. BEGIN 2. PRINT Enter M1, M2, M3, M4: 3. READ M1. M2. M3. M4 4. grade = (M1+M2+M3+M4)/4 5. IF grade < 50 PRINT Fail ELSE PRINT Pass ENDIF 6. END Flowchart BEGIN PRINT Enter M1. M2. M3. M4: READ M1,M2,M3,M4 grade = (M1+M2+M3+M4)/4 Is grade <50 false true PRINT Fail PRINT Pass END 17

  18. EXAMPLE: Write an algorithm that reads two values, determines the largest value and prints the largest value with an identifying message. Algorithm 1. BEGIN 2. PRINT Enter value1, value2: 3. READ value1, value2 4. IF (value1 > value2) then Max = value1 ELSE Max = value2 ENDIF 5. PRINT The largest value is , Max 6. END

  19. Flowchart BEGIN PRINT Enter value1 and value2: READ value1, value2 true false is value1>value2 Max = value1 Max = value2 Print The largest value is , Max END

  20. Example: Write down and algorithm and draw a flowchart for the solution of the following problem. Read the temperature in Fahrenheit from the keyboard.If it is less than -459.7 (absolute zero) display an error message that the temperature is below absolute zero. Otherwise, convert the temperature in Fahrenheit to Centigrade using the following formula. Centigrade = ( 5 / 9 ) X ( Fahrenheit 32 ) Algorithm: 1. BEGIN 2. PRINT This program converts Fahrenheit to Centigrade 3. PRINT Enter Fahrenheit: 4. READ Fahrenheit 5. IF Fahrenheit < -459.7 PRINT The temperature is below absolute zero ELSE Centigrade = (5/9) * (Fahrenheit 32) PRINT Centigrade ENDIF 5. END 20

  21. Flowchart BEGIN PRINT This program converts Fahrenheit to Centigrade PRINT Enter Fahrenheit: READ Fahrenheit true false Fahrenheit< -459.7 PRINT The temperature is below absolute zero Centigrade = (5 / 9) * (Fahrenheit 32) PRINT Centigrade END 21

  22. Example: BEGIN Flowchart PRINT Enter N1, N2, N3 READ N1, N2, N3 Design an algorithm that arranges any three numbers N1, N2, N3 so that N1<=N2<=N3. and then draw its flowchart true N1 > N2 temp=N1 N1=N2 N2=temp false Algorithm 1. BEGIN 2. PRINT Enter N1, N2. N3: 3. READ N1, N2, N3 4. IF N1>N2 temp=N1 N1=N2 N2=temp 5. IF N2>N3 temp=N2 N2=N3 N3=temp 6. IF N1>N2 temp=N1 N1=N2 N2=temp 7. PRINT N1, N2, N3 8. END true N2 > N3 temp=N2 N2=N3 N3=temp false true N1 > N2 temp=N1 N1=N2 N2=temp false PRINT N1, N2, N3 END 22

  23. 3-Repetition Structure Specifies a block of one or more statements that are repeatedly executed as long as a condition is satisfied while condition loop-body end_while true condition loop-body false If the same task is repeated over and over again a loop can be used to reduce program size and complexity

  24. WHILE/END_WHILE Start Loop initialization false Loop condition true Loop instructions End 24

  25. Example: Write an algorithm and draw a flowchart to calculate 24 . BEGIN Algorithm: 1. BEGIN 2. Base = 2 3. Product = Base 4. Product = Product * Base 5. Product = Product * Base 6. Product = Product * Base 7. PRINT Product 8. END Base=2 Product = Base Product = Product * Base Product = Product * Base Product = Product * Base PRINT Product END

  26. Question: What happens if you want to calculate 2 to the power of 12? Answer: Use a LOOP to repeat a set of steps of the algorithm. 1. BEGIN 2. Base = 2 3. Power = 12 4. Product = Base 5. Counter = 1 6. WHILE Counter < Power Product = Product * Base Counter = Counter +1 END_WHILE 7. PRINT Product 8. END Repeated parts

  27. Flowchart with a While Loop 1. BEGIN 2. Base = 2 3. Power = 12 4. Product = Base 5. Counter = 1 6. WHILE Counter < Power Product = Product * Base Counter = Counter +1 END_WHILE 7. PRINT Product 8. END BEGIN Base = 2 Power =12 Product = Base Counter = 1 is false Counter < Power PRINT Product true Product = Product * Base END Counter = Counter + 1

  28. TRACING for power=4 BASE POWER PRODUCT COUNTERCOUNTER < POWER 2. Base = 2 3. Power = 4 4. Product = Base 5. Counter = 1 6. WHILE Counter < Power 6.1 Product = Product * Base 6.2 Counter = Counter +1 END_WHILE 7. PRINT Product STEP 2: 2 ? ? ? ? STEP 3: 2 4 ? ? ? STEP 4: 2 4 2 ? ? STEP 5: 2 4 2 1 T STEP 6: 2 4 2 1 T STEP 6.1: 2 4 2x2=4 1 T STEP 6.2: 2 4 4 1+1=2 T STEP 6: 2 4 4 2 T STEP 6.1: 2 4 4x2=8 2 T STEP 6.2: 2 4 8 2+1=3 T STEP 6: 2 4 8 3 T STEP 6.1: 2 4 8x2=16 3 T STEP 6.1: 2 4 16 3+1=4 F STEP 6: 2 4 16 4 F STEP 7: print 16.

  29. Example: Write down an algorithm and draw a flowchart to find and print the largest of three numbers. Read numbers one by one. Verify your result by a trace table. (Use 5, 7, 3 as the numbers read) Algorithm 1. BEGIN 2. READ N1 3. Max = N1 4. READ N2 5. IF (N2>Max) THEN Max = N2 ENDIF 6. READ N3 7. IF (N3>Max) THEN Max = N3 ENDIF 8. PRINT The largest number is: , Max 9. END Tracing N1 N2 N3 Max N2>Max N3>Max Step 2: 5 ? ? ? ? ? Step 3: 5 ? ? 5 ? ? Step 4: 5 7 ? 5 ? ? Step 5: 5 7 ? 7 T ? Step 6: 5 7 3 7 ? ? Step 7: 5 7 3 7 ? F Step 8: Print The largest number is 7 Draw the Flowchart.

  30. Example for while loop Example: Write down an algorithm and draw a flowchart to find and print the largest of N (N can be any number) numbers. Read numbers one by one. Verify your result by a trace table. (Assume N to be 3 and the following set to be the numbers {4 2 8 })

  31. Algorithm and Flowchart BEGIN 1. BEGIN 2. PRINT Enter N: 3. READ N 4. Max = 0 5. Counter = 0 6. WHILE (Counter < N ) Counter = Counter + 1 PRINT Enter number: READ number IF (number > Max) Max = number ENDIF END_WHILE 7. PRINT Max PRINT Enter N: READ N Max = 0 Counter =0 false Counter < N true PRINT Max Counter = Counter +1 PRINT Enter umber: READ umber END false number > Max true Max = number

  32. Tracing N Max N=3, numbers {4 2 8 } num ber number > Max Counter Counter < N 1. BEGIN 2. PRINT Enter N: 3. READ N 4. Max = 0 5. Counter = 0 6. WHILE (Counter < N ) 6.1 Counter = Counter + 1 6.2 PRINT Enter number: 6.3 READ number 6.4 IF (number > Max) 6.5 Max = number ENDIF END_WHILE 7. PRINT Max S3 S4 S5 S6 6.1 6.3 6.4 6.5 S 6 6.1 6.3 6.4 S 6 6.1 6.3 6.4 6.5 S6 S7 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 0 0 0 0 0 0 4 4 4 4 4 4 4 4 4 8 8 8 0 0 1 1 1 1 1 2 2 2 2 3 3 3 3 3 T T T T T T T T T T T T T T F 4 4 4 4 4 2 2 2 2 8 8 8 8 T T T T T F F F F T T T

  33. Tracing For a shorter table, use multiple steps at each line. N=3, numbers {4 2 8 } N Max num ber number > Max Counter Counter < N 1. BEGIN 2. PRINT Enter N: 3. READ N 4. Max = 0 5. Counter = 0 6. WHILE (Counter < N ) 6.1 Counter = Counter + 1 6.2 PRINT Enter number: 6.3 READ number 6.4 IF (number > Max) 6.5 Max = number ENDIF END_WHILE 7. PRINT Max S3,4,5 S6 6.1-6.5 S6 6.1-6.5 S6 6.1-6.5 S4 S7 print 3 0 0 0 1 T 4 4 T T 2 2 F T 8 3 8 T F 8

  34. Example: Flowchart BEGIN Write an algorithm and draw a flowchart for computing the value of the following expression where N is entered by the user PRINT Enter N: READ N i = 1 sum = 0 1/1 +1/2 + 1/3 + ... + 1/N Algorithm: false WHILE i <= N 1.BEGIN 2.PRINT Enter N: 3.READ N 4.i=1 5.sum=0 6.WHILE I <= N sum = sum + 1 / i i = i + 1 END_WHILE 6. PRINT sum 7. END true sum = sum + 1 / i i = i + 1 PRINT sum END 34

  35. Example: Write down an algorithm that computes the sum of digits and number of digits of a given number. Draw the corresponding flowchart. MOD % DIV / Flowchart: BEGIN digits = 0 sum = 0 PRINT Enter number: READ number Algorithm: 1. BEGIN 2. digits=0 3. sum=0 4. PRINT Enter number: 5. READ number 5. WHILE number 0 sum = sum + (number MOD 10) number = number DIV 10 digits = digits + 1 END_WHILE 6. PRINT digits, sum 7. END false WHILE number 0 true sum = sum + (number MOD 10) number = number DIV 10 digits = digits + 1 PRINT digits, sum END 35

  36. Example: Flowchart BEGIN Compute the sum of numbers between 1 and N. N will be entered by the user. PRINT Enter N: READ N 1 + 2 + 3 + ... + N sum = 0 counter = 1 Algorithm: false WHILE counter <= N 1.BEGIN 2.PRINT Enter N: 3.READ N 4.sum=0 5.Counter=1 6.WHILE Counter < = N sum = sum + Counter Counter = Counter +1 END_WHILE 6. PRINT sum 7. END true sum = sum + counter counter = counter + 1 PRINT sum END 36

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#