Download - Program design techniques
![Page 1: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/1.jpg)
Program Designing techniques
Introduction to ComputingLecture# 24,25
![Page 2: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/2.jpg)
PROGRAM DESIGNING TECHNIQUES
Pseudocode AlgorithmFlowchart
![Page 3: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/3.jpg)
DESIGNING TECHNIQUES
• 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
![Page 4: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/4.jpg)
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 develop algorithms.
• Pseudocode is very similar to everyday English.
![Page 5: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/5.jpg)
PSEUDOCODE & ALGORITHM
• Example 1: Write a pseudocode and an algorithm to convert the length in feet to inches.
![Page 6: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/6.jpg)
EXAMPLE 2
Pseudocode:
• Input the length in feet
• Calculate the length in inches by multiplying length in feet with 12
• Print length in inches.
![Page 7: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/7.jpg)
EXAMPLE 2
Algorithm
• Step 1: Input L_ft
• Step 2: L_inches L_ft x 12
• Step 3: Print L_inches
![Page 8: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/8.jpg)
THE FLOWCHART
• A schematic representation of a sequence of operations, as in a manufacturing process or computer program.
• It is a graphic representation of how a process works, showing, at a minimum, the sequence of steps.
• A flowchart consists of a sequence of instructions linked together by arrows to show the order in which the instructions must be carried out.
![Page 9: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/9.jpg)
CONT…
Each instruction is put into a box. The boxes are different shapes depending upon what the instruction is.
Different symbols are used to draw each type of flowchart.
![Page 10: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/10.jpg)
CONT…
A Flowchart• shows logic of an algorithm
• emphasizes individual steps and their interconnections
• e.g. control flow from one action to the next
![Page 11: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/11.jpg)
FLOWCHART SYMBOLS
Oval
Parallelogram
Rectangle
Diamond
Hybrid
Name Symbol Use in Flowchart
Denotes the beginning or end of the program
Denotes an input operation
Denotes an output operation
Denotes a decision (or branch) to be made. The program should continue along one of two routes. (e.g. IF/THEN/ELSE)
Denotes a process to be carried oute.g. addition, subtraction, division etc.
Flow line Denotes the direction of logic flow in the program
Basic
![Page 12: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/12.jpg)
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)
![Page 13: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/13.jpg)
EXAMPLE 2
Algorithm
• Step 1: Input L_ft
• Step 2: Lcm L_ft x 30
• Step 3: Print L_cm
START
InputL_ft
Lcm L_ft x 30
PrintL_cm
STOP
Flowchart
![Page 14: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/14.jpg)
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
![Page 15: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/15.jpg)
EXAMPLE 3
Algorithm
• Step 1: Input W,L
• Step 2: A L x W
• Step 3: Print A
START
InputW, L
A L x W
PrintA
STOP
![Page 16: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/16.jpg)
EXAMPLE 4
• Write an algorithm and draw a flowchart that will calculate the roots of a quadratic equation
• Hint: d = sqrt ( ), and the roots are: x1 = (–b + d)/2a and x2 = (–b – d)/2a
2 0ax bx c
2 4b ac
![Page 17: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/17.jpg)
EXAMPLE 4
Pseudocode:
• Input the coefficients (a, b, c) of the quadratic equation
• Calculate d• Calculate x1• Calculate x2• Print x1 and x2
![Page 18: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/18.jpg)
EXAMPLE 4
• Algorithm: • Step 1: Input a, b, c
• Step 2: d sqrt ( )
• Step 3: x1 (–b + d) / (2 x a)
• Step 4: x2 (–b – d) / (2 x a)
• Step 5: Print x1, x2
4b b a c
START
Inputa, b, c
d sqrt(b x b – 4 x a x c)
Printx1 ,x2
STOP
x1 (–b + d) / (2 x a)
X2 (–b – d) / (2 x a)
![Page 19: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/19.jpg)
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
![Page 20: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/20.jpg)
DECISION STRUCTURES
isA>B
Print B
Print A
Y N
![Page 21: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/21.jpg)
IF–THEN–ELSE STRUCTURE
• The structure is as follows
If condition then
true alternative
else
false alternative
endif
![Page 22: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/22.jpg)
IF–THEN–ELSE STRUCTURE
If A>B then
print A
else
print B
endif
isA>B
Print B
Print A
Y N
![Page 23: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/23.jpg)
RELATIONAL OPERATORS
Relational OperatorsOperator Description
> Greater than
< Less than
= Equal to
Greater than or equal to Less than or equal to
Not equal to
![Page 24: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/24.jpg)
EXAMPLE 5
• Write an algorithm that reads two values, determines the largest value and prints the largest value with an identifying message.
ALGORITHMStep 1: Input VALUE1, VALUE2Step 2: if (VALUE1 > VALUE2) then
MAX VALUE1else MAX VALUE2endif
Step 3: Print “The largest value is”, MAX
![Page 25: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/25.jpg)
EXAMPLE 5
MAX VALUE1
Print“The largest value is”,
MAX
STOP
Y N
START
InputVALUE1,VALUE2
MAX VALUE2
isVALUE1>VALUE2
![Page 26: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/26.jpg)
NESTED IFS
• One of the alternatives within an IF–THEN–ELSE statement
• may involve further IF–THEN–ELSE statement
![Page 27: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/27.jpg)
EXAMPLE 6
• Write an algorithm that reads three numbers and prints the value of the largest number.
![Page 28: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/28.jpg)
EXAMPLE 6
Step 1: Input N1, N2, N3Step 2: if (N1>N2) then
if (N1>N3) then MAX N1 [N1>N2, N1>N3] else MAX N3 [N3>N1>N2] endifelse
if (N2>N3) then MAX N2 [N2>N1, N2>N3] else MAX N3 [N3>N2>N1] endifendif
Step 3: Print “The largest number is”, MAX
![Page 29: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/29.jpg)
EXAMPLE 6
• Flowchart: Draw the flowchart of the above Algorithm.
![Page 30: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/30.jpg)
FLOWCHART
NO
![Page 31: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/31.jpg)
EXAMPLE 7
• Write and algorithm and draw a flowchart to read an employee name (NAME), overtime hours worked (OVERTIME), hours absent (ABSENT) and determine the bonus payment (PAYMENT).
![Page 32: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/32.jpg)
EXAMPLE 7
Bonus ScheduleOVERTIME –
(2/3)*ABSENTBonus Paid
>40 hours>30 but 40 hours>20 but 30 hours>10 but 20 hours 10 hours
$50$40$30$20$10
![Page 33: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/33.jpg)
Step 1: Input NAME,OVERTIME,ABSENTStep 2: if (OVERTIME–(2/3)*ABSENT > 40 ) then PAYMENT 50 else if (OVERTIME–(2/3)*ABSENT > 30 && OVERTIME–(2/3)*ABSENT<= 40 ) then
PAYMENT 40 else if (OVERTIME–(2/3)*ABSENT > 20 &&
OVERTIME–(2/3)*ABSENT<= 30 ) then PAYMENT 30
Algorithm
![Page 34: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/34.jpg)
else if (OVERTIME–(2/3)*ABSENT > 10 &&OVERTIME–(2/3)*ABSENT<= 20) then
PAYMENT 20 else PAYMENT 10 endif
Step 3: Print “Bonus for”, NAME “is $”, PAYMENT
![Page 35: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/35.jpg)
EXAMPLE 7
• Flowchart: Draw the flowchart of the above algorithm?
![Page 36: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/36.jpg)
LOOPS
• Computers are particularly well suited to applications in which operations are repeated many times.
• If the same task is repeated over and over again a loop can be used to reduce program size and complexity
![Page 37: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/37.jpg)
FLOWCHART FOR FINDING THE SUM OF FIRST FIVE NATURAL NUMBERS ( I.E. 1,2,3,4,5):
Example 8:
![Page 38: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/38.jpg)
EXAMPLE 9
Flowchart to find the sum of first 50 natural numbers.
![Page 39: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/39.jpg)
EXAMPLE 10
• Write down an algorithm and draw a flowchart to find and print the largest of N (N can be any number) numbers. (Assume N to be 5 and the following set to be the numbers {1 4 2 6 8 })
![Page 40: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/40.jpg)
ALGORITHM:
• Step 1: Input N• Step 2: Input Current• Step 3: Max Current• Step 4: Counter 1 • Step 5: While (Counter < N)
Repeat steps 5 through 8• Step 6: Counter Counter + 1 • Step 7: Input Next • Step 8: If (Next > Max) then
Max Next endif
• Step 9: Print Max
![Page 41: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/41.jpg)
START
InputN, Current
Max Current
PrintMax
STOP
Y
Counter < NN
Counter 1
Counter Counter +1
InputNext
Next >Max
Y
N
Max Next
Flowchart
![Page 42: Program design techniques](https://reader036.vdocuments.mx/reader036/viewer/2022070522/58ede61b1a28ab0e4a8b45b7/html5/thumbnails/42.jpg)
END