You are on page 1of 44

Logic and Algorithm

Developing an algorithm
• To help the initial analysis, the
problem should be divided into 3
separate components:
1. Input: a list of the source data provided to
the problem
2. Output: a list of the outputs required
3. Processing: a list of actions needed to
produce the required outputs.
Example 1. Add three numbers

 A program is required to read three numbers,


add them together and print their total.
Solution:
1. Underline the nouns and adjectives
used in the specification  establish
the input, output component and any
object that are required.

A program is required to read three numbers, add


them together and print their total.
• Defining diagram

Input Processing Output

Number1 total
Number2
Number3
2. Underline the verbs and adverbs used in
the specification  establish the action
required.

A program is required to read three numbers, add


them together and print their total.
• Defining diagram

Input Processing Output


Number1 Read three numbers total
Number2 Add numbers together
Number3 Print total number
3. Writing down the processing steps in an
algorithm,

Read three numbers


Add numbers together
Print total number
Solution Algorithm
• Add_three_numbers
Read number1, number2, number3
Total = number1 + number2 + number3
Print total
END
Example 2. Find average temperature
• A program is required to prompt the terminal operator
for the maximum and minimum temperature readings
on a particular day, accept those readings as integers,
and calculate and display to the screen the average
temperature, calculated by (maximum temperature +
minimum temperature)/2.
Step 1
• A program is required to prompt the terminal operator
for the maximum and minimum temperature readings
on a particular day, accept those readings as integers,
and calculate and display to the screen the average
temperature, calculated by (maximum temperature +
minimum temperature)/2.
• Defining diagram

Input Processing Output


Max_temp Avg_temp
Min_temp
Step 2
• A program is required to prompt the terminal operator
for the maximum and minimum temperature readings
on a particular day, accept those readings as integers,
and calculate and display to the screen the average
temperature, calculated by (maximum temperature +
minimum temperature)/2.
• Defining diagram

Input Processing Output


Max_temp Prompt for temperatures Avg_temp
Min_temp Get temperatures
Calculate average temperature
Display average temperature
Solution Algorithm
• Find average_temperature
Prompt operator for max_temp, min_temp
Get max_temp, min_temp
Avg_temp= (max_Temp + min_temp)/2
Output avg_temp to the screen
END
Example 3. Compute Mowing Time
 A program is required to read from the screen the
lenght and widht of a rectangular house block, and
the lenght and width of the rectangular house that has
been built on the block. The algorithm should then
compute and display the mowing time required to cut
the grass around the house, at the rate of two square
metres per minute
Step 1
• A program is required to read from the screen the
lenght and widht of a rectangular house block, and
the lenght and width of the rectangular house that has
been built on the block. The algorithm should then
compute and display the mowing time required to cut
the grass around the house, at the rate of two square
metres per minute.
• Defining diagram

Input Processing Output


Block_lenght Mowing_time
Block_width
House_lenght
House_width
Step 2
• A program is required to read from the screen the
lenght and widht of a rectangular house block, and
the lenght and width of the rectangular house that has
been built on the block. The algorithm should then
compute and display the mowing time required to cut
the grass around the house, at the rate of two square
metres per minute.
• Defining diagram

Input Processing Output


Block_lenght Prompt for block measurements Mowing_time
Block_width Get block measurements
House_lenght Prompt for house measurements
House_width Get house measurements
Calculate mowing area
Calculate mowing time
Solution Algorithm
Calculate_mowing_time
Prompt operator for block_lenght, block_width
Get block_length, block_width
block_area = block_lenght*block_width
Prompt operator for house_lenght, house_width
Get house_lenght, house_width
house_area=house_lenght*house_width
Mowing_area=block_area-house_area
Mowing_time=mowing_area/2
Output mowing_time to screen
END
Desk Checking
Checking the solution algorithm
(Desk Checking)

• Tracing through the logic of the algorithm


with some chosen data..
Step in desk Checking an algorithm
1. Choose valid simple input test case (2-3 enough)
2. Establish what the expected result should be.
3. Make a table of relevant variable names
4. Checking the test case line by line, step by step
5. Repeat process 4 for other test case
6. Check if expected result 2 matches with actual
result 5
Example 4. Desk Chek for example 1

 A program is required to read three numbers,


add them together and print their total.
Solution Algorithm
• Add_three_numbers
Read number1, number2, number3
Total = number1 + number2 + number3
Print total
END
Desk Checking
1. Choose two sets input test data.
Set 1: 10,20, 30 and Set 2: 40, 41, 42

Data Set 1 Data Set 2


Number 1 10 40
Number 2 20 41
Number 3 30 42
2. Establish the expected result for each test case

Data Set 1 Data Set 2

Total 60 123
3. Set up a table of relevant variable names, and pass
each test data set statement by statement.
Statement number1 number2 number3 total
number
First Pass
1 10 20 30
2 60
3 Print
Second
Pass
1 40 41 42
2 123
3 Print
4. Check the expected results (60 and 123) match the
actual results.
Desk Check of Example 2.
• A program is required to prompt the terminal operator
for the maximum and minimum temperature readings
on a particular day, accept those readings as integers,
and calculate and display to the screen the average
temperature, calculated by (maximum temperature +
minimum temperature)/2.
Solution Algorithm
• Find average_temperature
Prompt operator for max_temp, min_temp
Get max_temp, min_temp
Avg_temp= (max_Temp + min_temp)/2
Output avg_temp to the screen
END
Desk Checking
1. Choose two sets input test data.
Set 1: 30, 10 and Set 2: 40, 20

Data Set 1 Data Set 2


Max_temp 30 40
Min_temp 10 20
2. Establish the expected result for each test case

Data Set 1 Data Set 2

Avg_temp 20 30
3. Set up a table of relevant variable names, and pass
each test data set statement by statement.
Statement Max_temp Min_temp Avg_temp
number
First Pass
1,2 30 10
3 20
4 0utput
Second Pass
1,2 40 20
3 30
4 output
4. Check the expected results match the actual results.
Assignment 2:
Desk Checking for
Compute mowing time

• A program is required to read from the screen the


lenght and widht of a rectangular house block, and
the lenght and width of the rectangular house that
has been built on the block. The algorithm should
then compute and display the mowing time
required to cut the grass around the house, at the
rate of two square metres per minute.
Solution Algorithm
Calculate_mowing_time
Prompt operator for block_lenght, block_width
Get block_length, block_width
block_area = block_lenght*block_width
Prompt operator for house_lenght, house_width
Get house_lenght, house_width
house_area=house_lenght*house_width
Mowing_area=block_area-house_area
Mowing_time=mowing_area/2
Output mowing_time to screen
END
Assignment 3 – Desk Checking for Mowing_time which now
contains a logic error

Calculate_mowing_time
Prompt operator for block_lenght, block_width
Get block_length, block_width
block_area = block_lenght * block_width
Prompt operator for house_lenght, house_width
Get house_lenght, house_width
house_area=block_lenght * block_width
Mowing_area=block_area - house_area
Mowing_time=mowing_area/2
Output mowing_time to screen
END
Assignment 2 Review:
Calculate_mowing_time
1 Prompt operator for block_lenght, block_width
2 Get block_length, block_width
3 block_area = block_lenght*block_width
4 Prompt operator for house_lenght, house_width
5 Get house_lenght, house_width
6 house_area=house_lenght*house_width
7 Mowing_area=block_area-house_area
8 Mowing_time=mowing_area/2
9 Output mowing_time to screen
END
Desk Checking
1. Input data:

Data Set 1 Data Set 2


Block_lenght 30 40
Block_widht 30 20
House_lenght 20 20
House_width 20 10
2. Expected result:

Data Set 1 Data Set 2

Mowing_time 250 minutes 300 minutes


3. Set up a table of relevant variable names, and pass each test data
set statement by statement.
Statement Block_lenght Block_width House_lenght House_width Block_are House_area Mowing_are Mowing_time
number a a

First Pass

1,2 30 30
3 900
4,5 20 20
6 400
7 500
8 250
9 Output
Second Pass

1,2 40 20
3 800
4,5 20 10
6 200
7 600
8 300
9 Output
4. Check the expected results match the actual results.

You might also like