Fundamental Programming
1
Assignment 1 Review:
• 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
Introdution to Program Data
Three main discussion:
– Variables
– Constants
– Literals
Variables
– Is the name given to a collection of memory
cell, designed to store particular data item.
– The value stored may change or vary as the
program executes.
– Example: variable total_amount may
contain several values during the execution of
the program
Constant
• Is a data item with a name and a value
that remain the same during the execution
of the program.
• Example : name: ´´Fifty´´ given to a
data item that contains the value 50
Literal
• Is a constant whose name is the written
representation of its value.
• Example: the program may contain the
literal `50`
Data Types
• Should be clearly defined at the beginning
of the program.
• Can be:
• Elementary data items
• Data structures
Elementary data items
• Contain single variable that is always
treated as a unit.
• Usually classified into data types.
• A data type consists of a set of data
values and a set of operation that can be
performed on those values.
Elementary data Items (cont)
The most common elementary data types:
1. Integer: representing a set of whole numbers,
positive, negative or zero.
e.g. 3, 576, -5
2. Real : representing a set of numbers, positive or
negative, which may include values before or after a
decimal point. Sometimes referred to as floating
point numbers.
e.g. 19.2, 1.92E+01, -0.01
The most common elementary data types: (cont)
3. Character: representing the set of
characters on the keyboard, plus some
special characters.
e.g. ´A´, `b`, ´$´
4. Boolean: representing a control flag or
switch, which may contain one of only
two possible values; true or false.
Introduction to Pseudocode
What is Pseudocode?
• One of the popular representation of
Algorithm
• Widely choosen because:
– easy to read and write
– allow the programmer to concentrate on the
logic of the problem
– Structured in English language
Pseudocode Convention
• Statement are written in simple English
• Each instruction is written on a separate line
• Keywords and indentation are used to signify
particular control structures.
• Each set of instructions is written from top to
bottom, with only one entry and one exit.
• Groups of statements may be formed into
modules, and that group given a name.
Six Basic Computer Operations
1. A computer can receive information
Verb used:
•Read used when the algorithm is to receive the input from a record on a file
•Get used when the algorithm is to receive input from the keyboard.
Read student name
Get system date
Read number_1, number_2
Get tax_code
2. A computer can put out information
Verb used:
•Print used when the output is to be sent to the printer
•Write used when the output is to be written to a file
•Put, Output, Display used when the output is to be written to the screen
•Prompt required before an input instruction Get, causes the message to be
sent to the screen which requires the user responds, usually by providing input.
Print `Program Completed´
Write customer record to master file
Put out name, address and postcode
Output total_tax
Display ´End of data´
Prompt for student_mark
Get student_mark
3. A computer can perform arithmetic
Verb used:
•Compute
•Calculate
•Symbols used:
+, -, *, /, ()
Add number to total
Total = total + number
Divide total_marks by student_count
Sales_tax = cost_price * 0.10
Compute C = (F – 32) * 5/9
4. A computer can assign a value to a variable
or memory location
• Three cases :
1. To give data an initial value in pseudocode, the
verbs Initialise or Set are used
2. To assign a value as a result of some processing,
the symbols ´=´or ´´ are written
3. To keep a variable for later use, the verbs Save
or Store are used.
Initialize total_price to zero
Set student_count to 0
Total_price = cost_price + sales_tax
Total_price cost_price + sales_tax
Store customer_num in last_customer_num
5. A computer can compare two variables and
select one of two alternate actions
Keyword used:
IF, THEN, ELSE
IF student_attendance_status is part_time THEN
add 1 to part_time_count
ELSE
Add 1 to full_time_count
ENDIF
6. A computer can repeat a group of actions
Keyword used:
DOWHILE, ENDDO
DOWHILE student_total < 50
Read student record
Print student name, address to report
Add 1 to student_total
ENDDO
Meaningful names
• When designing a solution algorithm, a
programmer should introduce unique names,
which are:
– Represent the variables or objects in the problem
– Meaningful
example: number1, number2, number3 more
meaningful than A, B, C
- Used word separator if more than one word
example: sales_tax, word_count
- Or Capital letter as separator
example: salesTax, wordCount
The Structure Theorem
• It is possible to write any computer
program by using only three basic control
structures that are easily represented in
pseudocode:
» Sequence
» Selection
» Repetition
Sequence
Is the straightforward execution of one processing step after another.
Statement a
Statement b
Statement c
• Add 1 to pageCount
• Print heading line 1
• Print heading line 2
• Set lineCount to zero
• Read customer record
Selection
Presentation of condition and the choice between two actions
IF condition p is true THEN
statement(s) in true case
ELSE
statement(s) in false case
ENDIF
Example:
IF student_attendance_status is part_time THEN
add 1 to part_time_count
ELSE
add 1 to full_time_count
ENDI>f
Repetition
The presentation of a set of instructions to be performed repeatedly,
as long as a condition is true
DOWHILE condition p is true
statement block
ENDDO
Example:
Set student_total to zero
DOWHILE student_total < 50
Read student record
Print student name, address to report
Add 1 to student_total
ENDDO
DESIGNING A SOLUTION ALGORITHM
• The most challengin task in the life cycle
of a program
• First attempt usually doesnt result in a
finished product
• Keep altering the step and algorithms till
satesfied result achieved.
Point to be considered in Solution Algorithm
1. A name should be given to the algorithm,
which is describe the function of algorithm
2. An END statement used to indicate the
algorithm is complete
3. All processing steps between the algorithm
name and END statement should be indented
for readability.
4. Each processing step in the defining diagram
relates directly to one or more statements in
the algorithm.
Example 3.1. Solution Algorithm for example 2.1
A program is required to read three numbers,
add them together and print their total.
• Defining diagram
Input Processing Output
Number1 total
Number2
Number3
Solution Algorithm
• Add_three_numbers
Read number1, number2, number3
Total = number1 + number2 + number3
Print total
END
Example 3. 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.
• 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
What about this ? -
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
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 3.4. Desk Chek for example 2.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 3. 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