JAVA Introduction 2
JAVA Introduction 2
Definition
An algorithm is a finite sequence of step
by step, discrete, unambiguous
instructions for solving a particular
problem
has input data, and is expected to produce
output data
each instruction can be carried out in a
finite amount of time in a deterministic way
Definition
In simple terms, an algorithm is a series of
instructions to solve a problem (complete
a task)
Problems can be in any form
Business
Get a part from Vancouver to Ottawa by morning
Allocate manpower to maximize profit
Life
I am hungry. How do I order pizza?
Explain how to tie shoelaces to a five year old child
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
Algorithmic Representation of
Computer 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
Identify & name each Input/Givens
Identify & name each Output/Results
Assign a name to our algorithm (Name)
Combine the previous 3 pieces of
information into a formal statement
(Definition)
Results := Name (Givens)
Method
Once we have prepared the Algorithm
Description, we need to solve the problem
We develop a series of instructions
(limited to those described previously)
that, when executed, will compute the
desired Results from the Givens
(Method)
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
corresponding to variable.
Example
Let SideSize=15
Let Area=SideSizeSideSize
cell
Assignment in computer
science and equality in
a) The following instructions are the same in mathematics.
A=B
B=A
mathematics
not in computer science.
Let A=B is different from Let B=A
b) In mathematics we work with relations.
A relation B=A+1 means that it is true all the time
In computer science, we work with assignments. We can have:
A=5
B=A+1
A=2
The relation B=A+1 is true only after the second instruction
and before the third one.
Assignment in computer
science and equality in
c) The instruction A=A+3 is false in mathematics.
mathematics
In computer science Let A=A+3 means: the new value of A is equal
to the old one plus three.
d) The instruction A+5=3 is allowed in mathematics (it is an
equation).
Let A+5=3 has no meaning in computer science (the left side must
be a variable).
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 operation for the given
two numbers X and Y
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 the two given numbers
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 items in our Givens and Results
Num1, Num2, Num3, Sum, Average in
Algorithm 1.4
Variables
In our algorithm, when we use a
variable name, we are referring to
the value stored in memory for that
data item
Later in this lecture we will learn
more about how to define variables
Intermediates
Occasionally, in an algorithm, we
need to have a variable (in addition
to those representing Givens or
Results) to store a value temporarily
These are intermediate variables and
we identify them in the Algorithm
Description as Intermediates
Algorithm 1.5
Given 3 assignment marks (out of 50, 20,
70), find the average (calculated as a mark
out of 100)
General Concept
How does one figure out the percentage of
several marks?
Add them all up
Divide by the maximum possible mark (50+20+70)
Multiply by 100
Algorithm 1.5
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
the sum of its digits
General Concept
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
numbers (X and Y) and returns the sum in
the given variable X
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
Tracing involves
Executing the sequence of
instructions with a sample set of
values
Computing the value of each variable
after each instruction is executed
Checking for the correct result
Tracing an Algorithm
Step 1 - Number every instruction in
the algorithm
Step 2 Make a table
The first column of the table indicates
which instruction has been executed
Subsequent columns list all the
variables of the algorithm (Givens,
Results, Intermediates)
Tracing an Algorithm
Step 3 Complete the table
Each column of the table represents a
variable
Start at the first line of your algorithm.
Identify what will happen to each
variable as that instruction is executed
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
(4)
(5)
(6)
(7)
Line
1
Num1
Num2
Num3
Sum
Avg
24
3
Let Sum = Num1 + Num2 +4Num3
Let Average = Sum /3
5
Give Sum
6 output 90
Give Average
7 output 30
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 25 and 88, respectively
METHOD:
(1) Get X
(2) Get Y
(3) Let Temp = X
(4) Let X = Y
(5) Let Y = Temp
(6) Give X
(7) Give Y
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 refers to the value
stored at a unique location in
computer memory
Eventually, we will translate the
instructions in our algorithm to
computer instructions
Computers need to know they type of
each variable
Data Types
The data type indicates the
Kind of data that can be stored in the
variable
numbers, dates, text, etc.