Latest Algorithm Design Using Pseudocode
Latest Algorithm Design Using Pseudocode
Literals
Literals of the above data types are written as follows:
• Integers : Written as normal in the denary system, e.g. 5, -3
• Real : Always written with at least one digit on either side of the decimal point, zeros
being added if necessary, e.g. 4.7, 0.3, -4.0, 0.0
• Char: A single character delimited by single quotes e.g. ‘x’, ‘C’, ‘@’
• String: Delimited by double quotes. A string may contain no characters (i.e. the empty
string) e.g. “This is a string”, “”
• Boolean: TRUE, FALSE
• Date: This will normally be written in the format dd/mm/yyyy .
However, it is good practice to state explicitly that this value is of data type DATE and to
explain the format (as the convention for representing dates varies across the world).
Identifiers
Identifiers (the names given to variables, constants, procedures and functions) are in mix
case. They can only contain letters (A–Z, a–z) and digits (0–9).
They must start with a letter and not a digit. Accented letters and other characters,
including the underscore, should not be used. As in programming, it is good practice to use
identifier names that describe the variable, procedure or function they refer to.
Page 1 of 28
Variable declarations
It is good practice to declare variables explicitly in pseudocode. Declarations are made as
follows:
Constants
It is good practice to use constants if this makes the pseudocode more readable, as an
identifier is more meaningful in many cases than a literal. It also makes the pseudocode
easier to update if the value of the constant changes.
Constants are declared by stating the identifier and the literal value in the following
format:
Assignments
The assignment operator is Assignments should be made in the following format:
<identifier> <value>
The identifier must refer to a variable (this can be an individual element in a data structure
such as an array or an abstract data type).
The value may be any expression that evaluates to a value of the same data type as the
variable. Example – assignments
Counter 0
Counter Counter + 1
TotalToPay NumberOfHours * HourlyRate
Page 2 of 28
Arithmetic operations
Standard arithmetic operator symbols are used:
• + Addition
• - Subtraction
• * Multiplication
• / Division
Care should be taken with the division operation: the resulting value should be of data
type REAL, even if the operands are integers.
The integer division operators MOD and DIV can be used. However, their use should be
explained explicitly and not assumed.
Multiplication and division have higher precedence over addition and subtraction (this is
the normal mathematical convention).
However, it is good practice to make the order of operations in complex expressions
explicit by using parentheses.
Relational operations
The following symbols are used for relational operators (also known as comparison
operators):
• > Greater than
• < Less than
• >= Greater than or equal to
• <= Less than or equal to
• = Equal to
• <> Not equal to
The result of these operations is always of data type BOOLEAN. In complex expressions it
is advisable to use parentheses to make the order of operations explicit.
Logic operators
The only logic operators (also called relational operators) used are AND, OR and NOT. The
operands and results of these operations are always of data type BOOLEAN. In complex
expressions it is advisable to use parentheses to make the order of operations explicit.
Page 3 of 28
Counting
Counting is used to find how many numbers/items there are in a list.
Counting in 1s is quite simple; use of the statement count = count + 1 will enable counting to be
done (e.g. in controlling a repeat loop). The statement literally means: the
It is possible to count in any increments just by altering the numerical value in the statement (e.g.
count = count – 1 counts backwards) .
Counting is used to find how many numbers/items there are in a list.
Totalling
Totalling is used to sum a list of numbers.
To add up a series numbers the following type of statement should be used:
IF Statement
Checking a condition that may be complex or checking for a rangeof values or only 2
options and uses relational operators.
IF statements may or may not have an ELSE clause. IF statements without an else clause
are written as follows:
IF <condition> THEN
<statements>
ENDIF
IF statements with an else clause are written as follows:
IF <condition> THEN
<statements> ELSE
<statements>
ENDIF
Page 4 of 28
CASE statements
CASE statements allow one out of several branches of code to be executed, depending on
the value of a variable.
Single statement contains multiple sections.
It is checking for discrete, large number and more than 2 of values.
CASE statements are written as follows:
CASE OF <identifier>
<value 1> :<statement>
<value 2> :<statement>
...
ENDCASE
An OTHERWISE clause can be the last case:
CASE OF <identifier>
<value 1> :<statement>
<value 2> :<statement>
...
OTHERWISE <statement>
ENDCASE
CASE Multiple Choice without Alternative CASE Multiple Choice without Alternative
CASE OF <identifier> CASE OF <identifier>
<value 1> :<statement> <value 1> :<statement>
<value 2> :<statement> <value 2> :<statement>
... ...
ENDCASE OTHERWISE <statement>
ENDCASE
Page 5 of 28
Comparison between Case Statement and If Statement:
Page 6 of 28
Loops/Iteration
For … to…Next:
The identifier must be a variable of data type INTEGER, and the values should be
expressions that evaluate to integers.
The variable is assigned each of the integer values from value1 to value2 inclusive, running
the statements inside the FOR loop after each assignment. If value1 = value2 the
statements will be executed once, and if value1 > value2 the statements will not be
executed.
It is good practice to repeat the identifier after NEXT, particularly with nested FOR loops.
An increment can be specified as follows:
The increment must be an expression that evaluates to an integer. In this case the
identifier will be assigned the values from value1 in successive increments of increment
until it reaches value2. If it goes past value2, the loop terminates.
Page 7 of 28
WHILE … DO… END WHILE loops
WHILE <condition> DO
<statements>
ENDWHILE
The condition must be an expression that evaluates to a Boolean. The condition is tested
before the statements, and the statements will only be executed if the condition evaluates
to TRUE. After the statements have been executed the condition is tested again. The loop
terminates when the condition evaluates to FALSE.
The statements will not be executed if, on the first test, the condition evaluates to FALSE.
Page 8 of 28
Comparison between FOR … TO … NEXT, WHILE … DO… ENDWHILE and REPEAT… UNTIL
FOR … TO … NEXT WHILE … DO… ENDWHILE REPEAT…UNTIL
A set number of repetitions. A repetition, where the A repetition, where the
number of repeats is not number of repeats is not
known, that may never be known, that is completed at
completed. least once.
Count-controlled loop Pre-conditional loop Post Conditional Loop
TOTAL=0
FOR COUNT ß 1 TO 10
INPUT NUMBER
TOTAL=TOTAL+NUMBER
NEXT COUNT
AVERAGE=TOTAL/10
OUTPUT AVERAGE
The following example input 100 numbers and finds the total of the 100 numbers and outputs
this total. All three looping techniques are shown.
Relevant Question:
Q1. Write the names of two Selection or conditional statement.
Q2. Write the names of three loop structure.
Q3. Explain two selection statements with example.
Q4. Explain three loops with example.
Q5. Write names of arithmetic and relational operation.
Q6. List three logical operators.
Q7. How to make a program more understandable?
Q8. Explain Counting, Totaling, Sequence and Selection with example.
Page 10 of 28
Exercise: 01
Write an algorithm using pseudocode to input three numbers and output their Average.
Exercise: 02
Write an algorithm using pseudocode to input 100 numbers and output their Average.
Exercise: 03
Write an algorithm using pseudocode to input three numbers and output the largest of three
numbers.
Exercise: 04
Write an algorithm using pseudocode to input three numbers and output the smallest of three
numbers.
Exercise: 05
As part of an experiment, a school measured the heights (in metres) of all its 500 students.
Write an algorithm, using pseudocode, which inputs the heights of all 500 students and outputs
the height of the tallest person and the shortest person in the school.
Exercise: 06
Write an algorithm using pseudocode which takes temperatures input over a 100 day period
(once per day) and output the number of days when the temperature was below 20C and the
number of days when the temperature was 20C or above.
Exercise: 07
A geography class decide to measure daily temperatures and hours of sunshine per day over a 12
month period (365 days)
Write an algorithm, using pseudocode, which inputs the temperatures and hours of sunshine for
all 365 days, and finally outputs the average (mean) temperature for the year and the average
(mean) number of hours per day over the year.
Exercise: 08
A small shop sells 280 different items. Each item is identified by a 3 – digit code. All items that
start with a zero (0) are cards, all items that start with a one (1) are sweets, all items that start
with a two (2) are stationery and all items that start with a three (3) are toys.
Write an algorithm, using pseudocode, which inputs the 3 – digit code for all 280 items and
outputs the number of cards, sweets, stationery and toys.
Exercise: 09
A company are carrying out a survey by observing traffic at a road junction. Each time a car, bus,
lorry or other vehicle passed by the road junction it was noted down.
10 000 vehicles were counted during the survey.
Write an algorithm, using pseudocode, which:
Page 11 of 28
Exercise: 10
A town contains 5000 houses. Each house owner must pay tax based on the value of the house.
Houses over $200 000 pay 2% of their value in tax, houses over $100 000 pay 1.5% of their value
in tax and houses over $50 000 pay 1% of their value in tax. All others pay no tax. Write an
algorithm to solve the problem using pseudocode.
Exercise: 11
A shop sells books, maps and magazines. Each item is identified by a unique 4 – digit code. All
books have a code starting with a 1, all maps have a code starting with a 2 and all magazines have
a code beginning with a 3. The code 9999 is used to end the program.
Write an algorithm using pseudocode which input the codes for all items in stock and outputs the
number of books, maps and magazine in stock. Include any validation checks necessary.
Exercise 012:
(b) Using pseudocode or otherwise, write an algorithm that will input the ID, weight (kg) and
height (m) of 30 students, calculate their body mass index (BMI) and output their ID,
BMI and a comment as follows:
A BMI greater than 25 will get the comment ‘OVER WEIGHT’, a BMI between 25 and
19 (inclusive) will get ‘NORMAL’ and a BMI less than 19 will get ‘UNDER WEIGHT’.
Page 12 of 28
Exercise 13:
A company has 5000 CDs, DVDs, videos and books in stock. Each item has a unique
5-digit code with the first digit identifying the type of item, i.e.
1 = CD
2 = DVD
3 = video
4 = book
For example, for the code 15642 the 1 identifies that it is a CD, and for the code 30055 the
3 identifies that it is a video.
Write an algorithm, using pseudocode or otherwise, that
Exercise 14:
Customers can withdraw cash from an Automatic Teller Machine (ATM).
Write an algorithm which inputs a request for a sum of money, decides if a withdrawal can
be made and calculates any charges. Appropriate output messages should be included.
Exercise 15:
A small airport handles 400 flights per day from three airlines:
Each flight is identified by the airline code and 3 digits. For example FA 156.
Write an algorithm, using pseudocode or otherwise, which monitors the 400 flights into and
out of the airport each day. The following inputs, processing and outputs are all part of the
monitoring process:
Page 13 of 28
Exercise 16:
A group of students were monitoring the temperature every day over a one-year period.
Readings were taken ten times every day (you may assume a year contains 365 days).
Write an algorithm, using pseudocode or flowchart, which
Exercise 17:
(a) Write an algorithm, using pseudocode or a flowchart, which:
_ inputs 50 numbers
_ outputs how many of the numbers > 100 were
(b) Write an algorithm, using pseudocode or a flowchart, which:
_ inputs 100 numbers
_ finds the average of the input numbers
_ outputs the average.
Exercise 18:
Page 14 of 28
Exercise 19:
A school has 1800 students. The start date andleaving date for each student is stored on file.
Dates are in the format YYMMDD (e.g. a student starting on10th September 2007 and leaving on
4th August 2012has the data 070910 and 120804 on file).
Exercise 20:
Temperatures (°C) are being collected in an experiment every hour over a 200 hour period.
Write an algorithm, using pseudocode or otherwise, which inputs each temperature and
outputs
• how many of the temperatures were above 20C
• how many of the temperatures were below 10C
• the lowest temperature that was input
Exercise 21:
(b) The Fuel Economy for 1000 cars is to be calculated using the formula in
Question 16(a).
Page 15 of 28
Exercise 22:
The manufacturing cost of producing an item depends on its complexity. A company
manufactures three different types of item, with costs based on the following calculations:
Item type 1: item cost = parts cost * 1.5
Item type 2: item cost = parts cost * 2.5
Item type 3: item cost = parts cost * 5.0
The company makes 1000 items per day.
Write an algorithm, using pseudocode, flowchart or otherwise, which
• inputs the item type and parts cost of each item
• outputs the item cost for each item
• calculates and outputs the average (mean) item cost per day (based on 1000 items
being made).
Exercise 23:
(b) Write an algorithm, using pseudocode or otherwise, which inputs the times for 500
cars, calculates the final speed of each car using the formula in part (a), and then
outputs:
• the final speed for ALL 500 cars
• the slowest (lowest) final speed
• the fastest (highest) final speed
• the average final speed for all the cars.
Page 16 of 28
Exercise 24:
A school is doing a check on the heights and weights of all its students. The school has
1000 students.
Write an algorithm, using pseudocode or a flowchart, which
• inputs the height and weight of all 1000 students
• outputs the average (mean) height and weight
• includes any necessary error traps for the input of height and weight.
Exercise 25:
(a) Write an algorithm, using pseudocode or flowchart only, which:
• inputs three numbers
• outputs the largest of the three numbers
(b) Write an algorithm, using pseudocode or flowchart only, which:
• inputs 1000 numbers
• outputs how many of these numbers were whole numbers (integers)
(You may use INT(X) in your answer e.g. Y = INT(3.8) gives the value Y = 3)
Exercise 26:
The weather conditions in a town are being monitored over a year (365 days). The valuesrecorded
per day are weather type and temperature (e.g. CLOUDY, 25).
Exercise 27:
(a) Write an algorithm, using pseudocode or a program flowchart only, that:
• inputs a series of positive numbers (-1 is used to terminate the input),
• outputs how many numbers were less than 1000 and
• outputs how many numbers were greater than 1000.
(b) Write an algorithm, using pseudocode or a program flowchart only, that
• inputs fifty numbers each as 4 separate digits, for example: 1 5 4 1
• outputs the percentage of numbers that were palindromes.
(note: a palindrome reads the same way backwards or forwards. For example, 1331 is
a palindrome but 1541 is not).
Use separate variables to store the separate digits of a number (for example D1, D2,
D3, D4).
Page 17 of 28
Exercise 28:
A small café sells five types of item: bun 0.50 dollars
coffee 1.20 dollars
cake 1.50 dollars
sandwich 2.10 dollars
dessert 4.00 dollars
Write an algorithm, using pseudocode or a program flowchart only, which
• inputs every item sold during the day,
• uses an item called “end” to finish the day’s input,
• adds up the daily amount taken for each type of item,
• outputs the total takings (for all items added together) at the end of the day,
• outputs the type of item that had the highest takings at the end of the day.
Exercise 29:
The exchange rate between the US Dollar (US$) and the Brazilian Real (R$) changes every day.
Write an algorithm, using pseudocode or otherwise, which inputs the exchange rate for every day
over a 10 year period (assume that each year = 365 days) and then outputs the following:
• The average (mean) exchange rate
• The best (highest) exchange rate
• The worst (lowest) exchange rate
• The number of occasions when the exchange rate was above 2.0
Exercise 30:
Write an algorithm, using pseudocode or a program flowchart only, which:
• inputs the population and land area for 500 countries,
• calculates the population density (i.e. population/land area) for every country,
• outputs the largest and smallest population density,
• outputs the average population for all 500 countries.
Exercise 31:
An estate agent advertises houses for sale. The customer enquiries for a 7-day working
week are entered weekly into a computer.
Write an algorithm, using pseudocode or a program flowchart only, which:
• inputs the number of customer enquiries each day,
• inputs the house price each customer enquires about,
• outputs how many customers enquired each day about houses costing less than
$100 000,
• outputs the percentage of all enquiries made during the week about houses costing
more than $500 000.
Page 18 of 28
Exercise 32:
A country has four mobile phone network operators. Each mobile phone number has eightdigits.
The first three digits identify the network operator:
444 Yodafone
555 N2 network
666 Kofee mobile
777 Satsuma mobile
Write an algorithm, using pseudocode or flowchart only, which reads 50 000 eight-digit
mobile phone calls made during the day and outputs the number of calls made on each of
the four networks.
Exercise 33:
5000 numbers are being input which should have either 1 digit (e.g. 5), 2 digits (e.g. 36), 3digits
(e.g. 149) or 4 digits (e.g. 8567).
Write an algorithm, using pseudocode or flowchart only, which
• inputs 5000 numbers
• outputs how many numbers had 1 digit, 2 digits, 3 digits and 4 digits
• outputs the % of numbers input which were outside the range
Exercise 34:
A greenhouse is being monitored by a computer using 2 sensors. SENSOR1 measuresthe
temperature and SENSOR2 measures oxygen levels.
If the temperature exceeds 45°C or oxygen levels fall below 0.19, then an error
message is output by the computer.
Write an algorithm, using pseudocode or flowchart only, which
• inputs both sensor readings
• checks the sensor input values and outputs a warning message if either are out of
range
• continues monitoring until the <ESCAPE> key is pressed
(You may assume that READ SENSORn will take a reading from SENSORn and that
READ KEY inputs a key press from the keyboard).
Exercise 35:
Write an algorithm, using pseudocode, to input a number between 0 and 100 inclusive. The
algorithm should prompt for the input and output an error message if the number is outside this
range.
Exercise 36:
Write an algorithm using either pseudocode or a flowchart, to:
• input a positive integer
• use this value to set up how many other numbers are to be input
• input these numbers
• calculate and output the total and the average of these numbers.
Page 19 of 28
Exercise 37:
(a) Write a program to input 100 numbers and output the largest, second largest of 100
numbers.
(b) Write a program to input 100 numbers and output the smallest and second smallest of 100
numbers.
Exercise 38:
Write a pseudo code to output even or odd numbers in a particular range.
Page 20 of 28
Data Structure
Variable: A variable is a data structure which stores a single value that can change, depending
on conditions or on information passed to the program.
Constant:
A constant is a value that cannot be altered by the program during normal execution, i.e.,
the value is constant. ... This is contrasted with a variable, which is an identifier with a
value that can be changed during normal execution, i.e., the value is variable.
Array:
It must have name, type and size. It simplifies the program and reduces the no of
variables in the program.
Arrays are considered to be fixed-length structures of elements of identical data type,
accessible by consecutive index (subscript) numbers. It is good practice to explicitly state
what the lower bound of the array (i.e. the index of the first element) is because this
defaults to either 0 or 1 in different systems. Generally, a lower bound of 1 will be used.
Square brackets are used to indicate the array indices.
One- and two-dimensional arrays are declared as follows (where l, l1, l2 are lower bounds
and u, u1, u2 are upper bounds):
Page 21 of 28
In the main pseudocode statements, only one index value is used for each
dimension in the square brackets.
Arrays can be used in assignment statements (provided they have same size and
data type). The following is therefore allowed:
Exercise 1: Write a pseudocode to input and store names and marks for 30 students
and output the average, highest and lowest marks with their respective names.
Marks are taken out of 50. Apply suitable validation checks where applicable and
invalid marks should be rejected.Use appropriate prompts / suitable message for
input and output.
Exercise 2:(a) Write an algorithm, using pseudocode and a FOR … TO … NEXT loop
structure, to input 1000 numbers into an array.
(b) Rewrite your algorithm using another loop structure.
Exercise 3:Write an algorithm in pseudocode, using a single loop, to print 50 names that
have been stored in an array.
Page 22 of 28
Exercise 5: Write an algorithm in pseudocode to input and store50 number in an array
and output their multiplication.
Exercise 6: Write an algorithm in pseudocode to input and store50 number in an array
and output the largest number.
Testing Types
This is data which is acceptable/valid and has expected outcomes (for example, if a date is being
input the day should be in the range 1 to 31)
Abnormal/Erroneous/Invalid data
This is data outside the limits of acceptability/validity and should cause an error message to be
generated (for example, if a date is being input the day can’t be -1 or 50 etc.)
Extreme/Boundary data
This is data at the limits of acceptability/validity (for example, if a date is being input, the two
values at the extreme limits of valid days would be 1 and 31)
Exercise1: The end- of term examinations are now marked out of 20. Provide the
following:
(a) Two sets of normal/valid data and their expected result.
(b) Two sets of abnormal/invalid/erroneous data and their expected result.
(c) Two sets of extreme/borderline data and their expected result.
Page 23 of 28
Pre-release material: 01
dimensional arrays, one for the midday temperatures and one for the midnight temperatures. All
the temperatures must be validated on entry and any invalid temperatures rejected. You must
decide your own validation rules. You may assume that there are 30 days in a month.
TASK 2
Calculate the average temperature for midday and the average temperature for midnight. Output
these averages with a suitable message for each one.
TASK 3
Select the day with the highest midday temperature and the day with the lowest midnight
temperature. Then output each of these temperatures, the corresponding day and a suitable
message.
Your program must include appropriate prompts for the entry of data. Error messages and other
outputs need to be set out clearly and understandably. All variables, constants and other
identifiers must have meaningful names. Each task must be fully tested.
Page 24 of 28
Pre-release material:02
A teacher needs a program to record marks for a class of 30 students who have sat three computer
science tests.
• Your program must include appropriate prompts for the entry of data.
• Error messages and other output need to be set out clearly and understandably.
• All variables, constants and other identifiers must have meaningful names.
You will need to complete these three tasks. Each task must be fully tested.
• Student names
• Student marks for Test 1, Test 2 and Test 3
Input and store the names for 30 students. You may assume that the students’ names are unique.
Input and store the students’ marks for Test 1, Test 2 and Test 3. All the marks must be validated
on entry and any invalid marks rejected.
TASK 2 – Calculate
Calculate the total score for each student and store in the array.
Calculate the average total score for the whole class.
Output each student’s name followed by their total score.
Output the average total score for the class.
TASK 3 – Select
Select the student with the highest total score and output their name and total score.
Page 25 of 28
Pre-release material: 03
Task 1
A school keep records of the weights of each pupil. The weight in kilograms of each pupil is
recorded on the first day of term. Input and store the weights and names recorded for a class of 30
pupils. You must store the weights in a one-dimensional array and the names in another one-
dimensional array. All the weights must be validated on entry and any invalid weights rejected.
You must decide your own validation rules. You must assume that the pupil’s names are unique.
Output the names and weights of the pupils in the class.
Task 2
The weight in kilograms of each pupil is recorded again on the last day of term. Calculate and store
the difference in weight for each pupil.
Task3
For those pupils who have a difference in weight of more than 2.5 kilograms, output, with a
suitable message, the pupil’s name, the difference in weight and whether this is rise or a fall.
Your program must include appropriate prompts for the entry of data. Error messages and other
outputs need to be set out clearly and understandably. All variables, constants and other identifiers
must have meaningful names. Each task must be fully tested
Page 26 of 28
Pre-release material:04
Page 27 of 28
Pre-release material:05
Page 28 of 28