Introduction To Algorithms
Introduction To Algorithms
INTRODUCTION
Definition
An algorithm is a finite sequence of step by step,
Definition
In simple terms, an algorithm is a series of
Life
Definition
We deal with data processing problems
translated to programs that can be run on a
computer
Since we can only input, store, process & output data
on a computer, the instructions in our algorithms
will be limited to these functions
Input
Get information
Storage
Store information
Given/Result
Intermediates/Set
Process
Arithmetic
Let (assignment command)
Repeat instructions
Loop
Branch conditionals
If
Output
Give information
Algorithm Description
Understand the problem before solving it
Method
Once we have prepared the Algorithm Description,
Assignment command
Syntax
X = 5Y + 16
On the left side of =, we put the name of a variable and on the right side
we put a value or an expression.
Each variable refers to a unique location in computer memory that
contains a value.
Interpretation
An assignement is executed in two steps :
1-evaluation of the expression found on the right side.
2-setting the returned value in the memory cell corresponding to variable.
Example
Let SideSize=15
Let Area=SideSizeSideSize
Input command
Syntax
Get variable
The variable must be from Givens
Interpretation
Here the user must give a value. The given value is
assigned to the variable.
Example
Get Size_Side
Output command
Syntax
Give variable
The variable must be from Results
Interpretation
The value of the variable is displayed.
Example
Give Area
Algorithm 1.1
Write an algorithm to find the sum of three given
numbers
NAME: SUM3
GIVENS: N1, N2, N3
RESULTS: Total
DEFINITION: Total := SUM3(N1, N2, N3)
------------------------METHOD:
Get N1
Get N2
Get N3
Let Total = N1 + N2 + N3
Give Total
Algorithm 1.2
Write an algorithm to find the result of a division
NAME: Division
GIVENS: X, Y
RESULTS: Quotient
DEFINITION: Quotient := Division(X, Y)
------------------------METHOD:
Get X
Get Y
Let Quotient = X/Y
Give Quotient
Algorithm 1.3
Write an algorithm to find the sum and product of
NAME: SumTimes
GIVENS:Num1, Num2
RESULTS: Total, Product
DEFINITION: Total & Product := SumTimes(Num1, Num2)
------------------------METHOD:
Get Num1
Get Num2
Let Total = Num1 + Num2
Let Product = Num1 * Num2
Give Total
Give Product
Algorithm 1.4
Find the sum and average of three given numbers
NAME:AVG3
GIVENS:Num1, Num2, Num3
RESULTS:Sum , Average
DEFINITION:Sum & Average := AVG3(Num1, Num2, Num3)
------------------------METHOD:
Get Num1
Get Num2
Get Num3
Variables
Observe that we have used names for the data
Variables
In our algorithm, when we use a variable name, we
Intermediates
Occasionally, in an algorithm, we need to have a
Algorithm 1.5
Given 3 assignment marks (out of 50, 20, 70), find
General Concept
Algorithm 1.5
Given 3 assignment marks (out of 50, 20, 70), find the
NAME: CalcMark
GIVENS: A1, A2, A3
RESULTS: Mark
INTERMEDIATES: Total, MaxMark (Constant)
DEFINITION: Mark := CalcMark(A1, A2, A3)
------------------------METHOD:
Set MaxMark = 140 (Constant)
Get A1
Get A2
Get A3
Let Total = A1 + A2 + A3
Let Mark = Total/MaxMark * 100
Give Mark
Algorithm 1.6
Given a two digit number, find
41 \ 10 = 4
41 MOD 10 = 1
Algorithm 1.6
Given a two digit number, find the sum of its digits
NAME: SumDig
GIVENS: N
RESULTS: Sum
INTERMEDIATES: Tens, Ones
DEFINITION: Sum := SumDig(N)
------------------------METHOD:
Get N
Let Tens = N div10
Let Ones = N mod 10
Let Sum = Tens + Ones
Give Sum
Algorithm 1.7
Write an algorithm which swaps the values of two
numbers
Example 1
Two car family. The wrong car is at the end of the driveway
Move first car out on to the street
Move second car out on to the street
Move first car back in
Move second car back in
Example 2
You are looking after a 3 year old. He wants milk and juice. You put the milk
in the blue glass and the juice in the red glass. The child is screaming that
you did it wrong.
Get a third glass (white)
Pour the milk from the blue glass to the white glass
Pour the juice from the red glass to the blue glass
Pour the milk from the white glass to the red glass
Algorithm 1.7
Write an algorithm which swaps the values of two
numbers
NAME: Swap
GIVENS: X, Y
RESULTS: X, Y
INTERMEDIATES: Temp
DEFINITION: Swap (X, Y)
------------------------METHOD:
Get X
Get Y
Let Temp = X
Let X = Y
Let Y = Temp
Give X
Give Y
Algorithm 1.8
Write an algorithm which adds the given two
NAME: AddXY
GIVENS:X, Y
RESULTS: X
INTERMEDIATES: None
DEFINITION: AddXY (X, Y)
------------------------METHOD:
Get X
Get Y
Let X = X+ Y
Give X
Recap
Name
Givens
Results
Intermediates
Definition
Method
Tracing an Algorithm
The purpose of tracing an algorithm is to ensure
that it works
This is a paper test. As we will see later, it
should be completed before writing the
computer code
Tracing involves
Tracing an Algorithm
Step 1 - Number every instruction in the algorithm
Step 2 Make a table
Tracing an Algorithm
Step 3 Complete the table
Change any values which the instruction changes and leave all
other columns blank
Trace 1.1
Trace Algorithm 1.4 using the numbers 24, 31, and 35
METHOD:
(1) Get Num1
(2) Get Num2
(3) Get Num3
Line
1
Num1
Num2
Num3
Sum
Avg
24
2
3
31
35
90
30
Trace 1.2
Trace Algorithm 1.5 with the numbers 40, 18, 26
METHOD:
(1) Set MaxMark =140
(2) Get A1
(3) Get A2
(4) Get A3
Ln A1 A2 A3
1
2 40
3
18
4
26
(5) Let Total = A1 + A2 + A3
5
(6) Let Mark = Total/MaxMark * 100 6
7 output 60
(7) Give Mark
MM Ttl
140
Mark
84
60
Trace 1.3
Trace Algorithm 1.7 when X and Y have the values
LN
X
Y
Temp
1
25
2
88
3
4
88
5
25
6 output 88
7 output 25
25
Data Types
We know that use of a variable name in an algorithm
Data Types
The data type indicates the
Additional Material
VISUAL BASIC DATA TYPES
Data Types
BOOLEAN (2 bytes)
Either True or False
INTEGER (2 bytes)
Whole numbers (no decimals)
-32,768 32,767
LONG (4 bytes)
Whole numbers (integers)
-2 trillion 2 trillion
Data Types
SINGLE (4 bytes)
Real numbers
DOUBLE (8 bytes)
Real numbers
CURRENCY (8 bytes)
Real numbers
Data Types
DATE (8 bytes)
Storage of specific dates
Flow Charts
Flow Charts
Can be created in MS Visio
Begin and End with an Oval
Get/Give use a parallelogram
Lets use a rectangle
Flow is shown with arrows
Algorithm 1.1
NAME: SUM3
GIVENS: N1, N2, N3
RESULTS: Total
DEFINITION:
Total := SUM3(N1, N2, N3)
Start
SUM3
Get N1
Get N2
Get N3
Let Total = N1 + N2 + N3
Give Total
Finish
SUM3
Algorithm 1.2
NAME: Division
GIVENS: X, Y
RESULTS: Quotient
DEFINITION:
Quotient := Division(X, Y)
Start
DIVISION
Get X
Get Y
Give
Quotient
Finish
DIVISION
Algorithm 1.3
NAME: SumTimes
GIVENS:Num1, Num2
RESULTS: Total, Product
DEFINITION:
Total & Product :=
SumTimes(Num1, Num2)
Start
SUMTIMES
Get Num1
Get Num2
Give Total
Give Product
Finish
SUMTIMES
Algorithm 1.4
NAME:AVG3
GIVENS:Num1, Num2, Num3
RESULTS:Sum , Average
DEFINITION:
Sum & Average :=
AVG3(Num1, Num2, Num3)
Start
AVG3
Get Num1
Get Num2
Get Num3
Give Suml
Give Average
Finish
AVG3
Algorithm 1.5
Start
CALCMARK
NAME: CalcMark
GIVENS: A1, A2, A3
RESULTS: Mark
INTERMEDIATES:
Total,
MaxMark (Constant)
DEFINITION:
Mark := CalcMark(A1, A2, A3)
Get A1
Get A2
Get A3
Let Total = A1 + A2 + A3
Let Mark = Total/MaxMark
Give Mark
Finish
CALCMARK
Algorithm 1.6
NAME: SumDig
GIVENS: N
RESULTS: Sum
INTERMEDIATES: Tens, Ones
DEFINITION:
Sum := SumDig(N)
Start
SUMDIG
Get N
Give Sum
Finish
SUMDIG
Algorithm 1.7
NAME: Swap
GIVENS: X, Y
Change: X, Y
RESULTS: None
INTERMEDIATES: Temp
DEFINITION: Swap (X, Y)
Start
SWAP
Get X
Get Y
Let Temp = X
Let X = Y
Let Y = Temp
Give X
Give Y
Finish
SWAP
Algorithm 1.8
NAME: AddXY
GIVENS:X, Y
Change: X
RESULTS:None
INTERMEDIATES: None
DEFINITION: AddXY (X, Y)
Start
ADDXY
Get X
Get Y
Let X = X + Y
Give X
Finish
ADDXY
Nassi-Schneiderman Diagrams
NSD
NSD
Can be created in MS Excel
Each Command is given its own row
Put a border around each section
Flow is top down
Nesting of commands will be shown (Alg2 Alg3)
Algorithm 1.1
NAME: SUM3
GIVENS: N1, N2, N3
RESULTS: Total
DEFINITION:
Total := SUM3(N1, N2, N3)
Get N1
Get N2
Get N3
Let Total = N1 + N2 + N3
Give Total
Algorithm 1.2
NAME: Division
GIVENS: X, Y
RESULTS: Quotient
DEFINITION:
Quotient := Division(X, Y)
Get X
Get Y
Let Quotient = X/Y
Give Quotient
Algorithm 1.3
NAME: SumTimes
GIVENS:Num1, Num2
RESULTS: Total, Product
DEFINITION:
Total & Product :=
SumTimes(Num1, Num2)
Get Num1
Get Num2
Let Total = Num1 + Num2
Let Product = Num1 * Num2
Give Total
Give Product
Algorithm 1.4
NAME:AVG3
GIVENS:Num1, Num2, Num3
RESULTS:Sum , Average
DEFINITION:
Sum & Average :=
AVG3(Num1, Num2, Num3)
Get Num1
Get Num2
Get Num3
Let Sum = Num1 + Num2 + Num3
Let Average = Sum/3
Give Sum
Give Average
Algorithm 1.5
NAME: CalcMark
GIVENS: A1, A2, A3
RESULTS: Mark
INTERMEDIATES:
Total,
MaxMark (Constant)
DEFINITION:
Mark := CalcMark(A1, A2, A3)
Algorithm 1.6
NAME: SumDig
GIVENS: N
RESULTS: Sum
INTERMEDIATES: Tens, Ones
DEFINITION:
Sum := SumDig(N)
Get N
Let Tens = N div 10
Let Ones = N mod 10
Let Sum = Tens + Ones
Give Sum
Algorithm 1.7
NAME: Swap
GIVENS: X, Y
Change: X, Y
RESULTS: None
INTERMEDIATES: Temp
DEFINITION: Swap (X, Y)
Get X
Get Y
Let Temp = X
Let X = Y
Let Y = Temp
Give X
Give Y
Algorithm 1.8
NAME: AddXY
GIVENS:X, Y
Change: X
RESULTS:None
INTERMEDIATES: None
DEFINITION: AddXY (X, Y)
Get X
Get Y
Let X = X + Y
Give X
Homework
digit number.
the variable x.