o Levelcomputer Ruknuddin Patels Web Portal
o Levelcomputer Ruknuddin Patels Web Portal
Introduction to Algorithm
An algorithm is a sequence of steps for solving a problem.
In general, an 'algorithm' is the name given to a defined set of steps used to complete a task.
For instance you could define an algorithm to make a cup of tea. You start by filling the kettle, then place a tea bag
in the cup and so on.
In computer terms, an algorithm describes the set of steps needed to carry out a software task. This mini-web takes
you through the topic of algorithm
Creating a plan
The main stages of planning any solution are:
• understanding the problem
• defining the scope of a solution – the extent of the facilities that the solution will provide
• creating the solution
• documenting the solution
• testing the solution.
Creating the solution
This involves:
• top-down design or stepwise refinement
• algorithms, which can be represented as
– program flowcharts
– pseudocode
• modules of code
• menus.
Document the solution
Techniques for documenting an algorithm include:
• structure diagrams
• program flowcharts (for symbols, see Table 9.1 in coursebook).
For documenting the hardware required in a solution while showing much less processing detail, we can
use system flowcharts, which have a much larger set of symbols.
Testing and interpreting algorithms
Computer Science by Inqilab Patel Page 1 ruknuddin.com
O LevelComputer
2.1: Algorithm & Pseudocodes Inqilab Patel
Dry running is the process of thinking through the operation of an algorithm, to test it during design, for
troubleshooting and to work out its purpose, if not stated.
A trace table is a tabular record of a dry run. It has a column for each variable, usually in the order in
which their values are first assigned. Each row is completed with the values of the variables whenever
they change, moving to the next row when necessary.
Input
We indicate input by words such as INPUT, READ or ENTER, followed by the name of a variable to
which we wish to assign the input value.
Output
We indicate output by words such as OUTPUT, WRITE or PRINT, followed by a comma-separated list
of expressions.
Totalling
To keep a running total, we can use a variable such as Total or Sum to hold the running total and
assignment statements such as:
Total ← Total + Number
ADD Number to Total
Counting
It is sometimes necessary to count how many times something happens.
To count up or increment by 1, we can use statements such as:
Count ← Count + 1
INCREMENT Count by 1
Structured statements for iteration (repetition or loops)
Many problems involve repeating one or more statements, so it is useful to have structured
statements for controlling these iterations or repetitions. Exit conditions consist of logical expressions
whose truth can be tested, such as Count = 10 or Score < 0. At a particular time, a logical expression is
either True or False.
• WHILE…DO…ENDWHILE
• REPEAT…UNTIL
• FOR…TO…NEXT
Structured statements for selection (conditional statements)
These statements are used to select alternative routes through an algorithm, using logical
expressions as conditions for the decisions involved. As with iteration (repetition), selection’s logical
expressions often involve comparisons, which can operate on text strings as well as numbers.
• IF…THEN…ELSE…ENDIF
• CASE…OF…OTHERWISE…ENDCASE
Producing algorithms in pseudocode
Writing an algorithm in pseudocode is no longer graphical like a program flowchart, but is one step
closer to writing program code in a high-level language.
Producing an algorithm for a solution in pseudocode typically includes:
Trace Table
Trace Table has columns for all variables, logical expressions and output.
Example interpretation
The purpose of the algorithm is to print a list of the powers of 2 starting at 20 until it reaches the
first one over 100.
SET Result to 0
INPUT Number
WHILE Number >= 0
DO
IF Number > Result THEN Result Number
INPUT Number
ENDWHILE
OUTPUT Result
1. Sum 0
FOR Count 1 TO 10
INPUT Number
Sum Sum + Number
NEXT
OUTPUT “Average = “, Sum / 10
Winter 2001
Q10) This algorithm grades candidates on marks out of ten.
1 input a Mark
2 case Mark of
3 0, 1, 2, 3 : Grade = Fail
4 4, 5 : Grade = Pass
5 6, 7 : Grade = Merit
6 8, 9, 10 : Grade = Distinction
[3]
(b) Write down two instructions which could be inserted between lines 1 and 2 to allow the algorithm to
deal with marks out of 100. [2]
Q14) (a) State two advantages for a computer having several high-level languages.
1. ..................................................................................................................................
2................................................................................................................................ [2]
(b) State two reasons why assembly language is still used.
1. ..................................................................................................................................
2................................................................................................................................ [2]
(c) Using an example, or otherwise, show the difference between a Repeat …Until construct and an
If ... then ... Else … Endif construct.
Repeat …Until .........................................................................................................................
If ... then ... Else … Endif ....................................................................................................[4]
Winter 2002
Q13 Read this algorithm.
set Total_1 to zero
set Total_2 to zero
set Counter to one
while Counter < eight
Counter = Counter + 1
input Number
if Number > zero then Total_1 = Total_1 + Number
if Number < zero then Total_2 = Total_2 + Number
endwhile
output Total_1
output Total_2
(a) Write down the output if the following set of numbers are input. 4, 1, -3, 2, -5, 0, 6 [2]
(b) Modify the algorithm so that it will accept any number of numbers, the input is terminated by a
rogue value and the output is the Total of all the numbers input except the rogue value. [4]
Winter 2003
Q11 The following algorithm inputs air speeds (which must be in multiples of 100) and outputs a
suitable message.
1 input a speed
2 whole = speed/100
3 case whole of
4 0,1,2 : result = slow
5 3, 4, 5, 6 : result = normal
8 7, 8, 9 : result = high
7 otherwise whole = -1
8 endcase
9 if whole = -1 then
10 output “abnormal reading”
11 else output result, “speed”
Dry run the above algorithm for the following Input data and complete the Output column in the table:
[3]
Input Output
150
400
800
State what would be happen if line 2 had been missed out of the algorithm? [2]
Summer 2005
Q13 The following algorithm contains an error.
1. SET X = 1
Winter 2006
Q9) A computer program is required which inputs 10 numbers, multiplies them together and finally
outputs the answer (the product). The following algorithm has been written to do this.
1 count = 0
2 product = 0
3 while count <= 10 do
4 input number
5 product = product * number
6 count = count + 1
7 print product
8 endwhile
(a) There are three errors in the algorithm. Locate and describe these errors.
A while do loop has been used in the algorithm. State another type of loop that could have been used.
Summer 2008
Q12) Algorithms and programs use loops to control the number of times a particular procedure is used.
Two methods are repeat … until and for … to.
(a) Write a procedure using both these loop methods to input 20 numbers into a variable called x.
(i) repeat … until [2]
(ii) for … to [2]
(b) Name another loop structure. [1]
Winter 2008
Q3) Write a routine using a for … to loop which inputs 100 numbers and outputs how many of the
numbers were negative. [3]
Summer 2010
Q13) A golf course charges $10 for each game of two people. Each additional person incurs a further
charge of $2 per game. If they book two or more games in advance, they get a 10% discount on the total
charge.
The following program has been written in pseudocode to calculate the charges for a game.
1 extracost = 0
2 input numberpeople, numbergames
3 charge = 10 * numbergames
Winter 2010
Q9) The following algorithm inputs 20 numbers and outputs how many numbers were positive (> 0)
and how many numbers were negative (< 0).
1 negative = 1
2 positive = 1
3 for count = 1 to 20 do
4 input number
5 if number < 0 then negative = negative + 1
6 if number > 0 then positive = positive + 1
7 count = count + 1
8 print negative, positive
9 next count
There are three different errors in this algorithm.
Locate each error and give the reason why you think it is an error.
Error 1
Reason 1
Error 2
Reason 2
Error 3
Reason 3 [6]
Summer 2011
Q 7 a) Read the following section of code that inputs twenty (20) numbers and then outputs the largest
number input.
1h=0
2c=0
3 REPEAT
4 READ x
Summer 2012
Winter 2013
Q8) A piece of pseudocode was written to input 1000 positive numbers and then output the highest
and lowest numbers.
10 highest = 0
20 lowest = 0
30 for count = 1 to 100
40 input number
50 if number > highest then number = highest
60 if number < lowest then number = lowest
70 count = count + 1
Computer Science by Inqilab Patel Page 12 ruknuddin.com
O LevelComputer
2.1: Algorithm & Pseudocodes Inqilab Patel
80 next count
90 print highest, lowest
There are errors in the code.
Locate these errors and suggest a correction.
Error 1, 2, 3, 4
Correction
Specimen 2015
Q 2) Jatinder uses Internet banking. This pseudocode checks her PIN.
c←0
INPUT PIN
x ← PIN
REPEAT
x ← x/10
c←c+1
UNTIL x < 1
IF c <> 5
THEN
PRINT “error in PIN entered”
ELSE
PRINT “PIN OK”
ENDIF
(a) What value of c and what message would be output if the following PINs were entered?
5 1 0 2 0 Value of c:
Message:
5 1 2 0 Value of c:
Message: [2]
(b) What type of validation check is being carried out here? [1]
Q4 Read this section of program code that inputs twenty (20) numbers and then outputs the largest
number input.
1h=0
2c=0
3 REPEAT
4 READ x
5 IF x > h THEN x = h
6c=c+1
7 PRINT h
8 UNTIL c < 20
There are three errors in this code.
Locate these errors and suggest a corrected piece of code.
1, 2, 3 [3]
Writing Algorithm
Summer 2015 Specimen)
6 (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)
Winter 2013
16 (a) A greenhouse is being monitored by a computer using 2 sensors. SENSOR1 measures
the 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).
Summer 2013
16 A small shop uses barcodes which represent 5 digits. The last digit is used as a check digit.
For example:
abcde
01234
The check digit (e) is found by:
• multiplying the first and third digits (i.e. a and c) by 3
• multiplying the second and fourth digits (i.e. b and d) by 2
• adding these four results together to give a total
• dividing this total by 10
• remainder is check digit (e)
Write an algorithm, using pseudocode or flowchart only, which
• inputs 100 five-digit barcodes in the form a, b, c, d, e
• re-calculates the check digit for each number and checks whether the input check digit (e) is
correct
• outputs the number of barcodes which were entered correctly
Example 1
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.
Example 2
The following formula is used to calculate n: n = x * x/(1 – x)
The value x = 0 is used to stop the algorithm. The calculation is repeated using values of x until the value
x = 0 is input. There is also a need to check for error conditions. The values of n and x should be output.
Write an algorithm to show this repeated calculation using pseudocode.
NOTE: It is much easier in this example to input x first and then loop round doing the calculation until
eventually x = 0. Because of this, it would be necessary to input x twice (i.e. inside the loop and outside
the loop). If input x occurred only once it would lead to a more complicated algorithm.
Example 4
Write an algorithm using pseudocode which:
• inputs the top speeds of 5000 cars
• outputs the fastest speed and the slowest speed
• outputs the average speed of all the 5000 cars
(NOTE: Again since the actual number of data items to be input is known any one of the three loop
structures could be used. It is necessary to set values for the fastest (usually set at zero) and the slowest
(usually set at an unusually high value) so that each input can be compared. Every time a value is input
which > the value stored in fastest then this input value replaces the existing value in fastest; and
similarly for slowest).
Example 5
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.
(NOTE: A 4-digit code implies all books have a code lying between 1000 and 1999, all maps
have a code lying between 2000 and 2999 and all magazines a code lying between 3000 and
3999. Anything outside this range is an error)
Problems
Questions 1 to 3 contain sections of pseudocode which contain errors. Locate the errors and
suggest the correct coding. Questions 4 to 10 are problems which require an algorithm to be
written in pseudocode – there is “no right answer” here; as long as the pseudocode works then
the solution is acceptable.
(1) The following section of pseudocode inputs 1000 numbers and then outputs how many were
negative, how many were positive and how many were zero.
Locate the 3 errors and suggest a corrected piece of code.
1 negative = 1: positive = 1
2 for x = 0 to 1000
3 input number
4 if number < 0 then negative = negative + 1
5 if number > 0 then positive = positive + 1
6 endif
Computer Science by Inqilab Patel Page 16 ruknuddin.com
O LevelComputer
2.1: Algorithm & Pseudocodes Inqilab Patel
7 endif
8 next
9 print negative, positive
(2) The following section of pseudocode inputs rainfall (in cm) for 500 days and outputs the
average rainfall and the highest rainfall input.
Locate the 3 errors and suggest a corrected piece of code.
1 highest = 1000
2 days = 1
3 while days > 0
4 input rainfall
5 if rainfall > highest then highest = rainfall
6 endif
7 total = total + rainfall
8 days = days + 1
9 average = total/500
10 endwhile
11 print average, highest
(3) The following section of pseudocode inputs a number, n, multiplies together 1 x 2 x 3 x …….
x n, calculates input number/sum and outputs result of the calculation.
Locate the 3 errors and suggest a corrected piece of code.
1 input n
2 for mult = 1 to n
3 sum = 0
4 sum = sum * mult
5 result = n/sum
6 next
7 print result
(4) Regis lives in Brazil and often travels to USA, Europe and Japan. He wants to be able to
convert Brazilian Reais into US dollars, European euros and Japanese yen. The conversion
formula is:
currency value = number of Reais X conversion rate
For example, if Regis is going to USA and wants to take 1000 Reais (and the exchange rate is
0.48) then he would input USA, 1000 and 0.48 and the output would be: 480 US dollars.
Write an algorithm, using pseudocode, which inputs the country he is visiting, the exchange rate
and the amount in Brazilian Reais he is taking. The output will be value in foreign currency and
the name of the currency.
(5) 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.
(6) 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.
(9) Speed cameras read the time a vehicle passes a point (A) on the road and then reads the
time it passes a second point (B) on the same road (points A and B are 100 metres apart). The
speed of the vehicle is calculated using:
The maximum allowed speed is 100 kilometres per hour. 500 vehicles were monitored using
these cameras over a 1 hour period.
Write an algorithm, using pseudocode, which:
• inputs the start time and end time for the 500 vehicles that were monitored
• calculate the speed for each vehicle using the formula above
• outputs the speed for each vehicle and also a message if the speed exceeded 100 km/hour
• output the highest speed of all the 500 vehicles monitored
(10) There are ten stations on a railway line:
1 ------ 2 ------ 3 ------ 4 ------ 5 ------ 6 ------ 7 ------ 8 ------ 9 ------ 10
The train travels in both directions (i.e. from 1 to 10 and then from 10 to 1). The fare between
each station is $2.
A passenger inputs the number of the station at the start of his journey and the number of the
destination station and the fare is calculated (e.g if a passenger gets on a station 3 and his
destination is station 9 his fare will be $12). The calculation must take into account the direction
of the train (e.g. a passenger getting on at station 7 and getting off at station 1 will also pay $12
and not a negative value!!).
A discount of 10% is given if 3 or more passengers are travelling together.
Write an algorithm, using pseudocode, which:
• inputs the number of passengers travelling
• inputs the station number of the starting point and the station number of the destination
• calculates the total fare taking into account the direction of travel
• calculates any discount due
• outputs the cost of the tickets and prints the tickets
100
(time at point B – time at point A)
speed =
(metres/sec)
Summer 2001
16 Using pseudo code or otherwise, write an algorithm which will take information about each
transaction at a supermarket till, calculate and output
• the number of sales,
• the number of refunds,
• the total amount of money in the till.
Winter 2002
19 Using pseudo code or otherwise, write an algorithm which will input any three different
numbers and then print them out in ascending order.
Summer 2003
17 A school wants to monitor the number of hours spent by a class of 30 students on the
Internet.
Using pseudocode or otherwise, write an algorithm which will;
• for each student, record the times logged on and logged off
• calculate the length of time each student spends online
• calculate and output the average length of time per day spent by each student on the Internet.
Winter 2003
16 (a) Write an algorithm, using pseudocode or otherwise, which;
• inputs 50 numbers
• checks whether each number is in the range 1000 to 9999
• outputs how many of the input numbers were out of range
• outputs the percentage of input numbers which were out of range.
Summer 2004
15 (b) Using pseudocode, or otherwise, write an algorithm that will input the hourly
temperatures for one day in Centigrade and print out in Fahrenheit
• the maximum temperature
• the minimum temperature
• the average temperature for that day.
Computer Science by Inqilab Patel Page 19 ruknuddin.com
O LevelComputer
2.1: Algorithm & Pseudocodes Inqilab Patel
Winter 2004
19 The following diagram shows a rail network.
The rail network consists of 10 stations. The fare between each station is $2. There is a 10%
discount when 3 or more passengers travel together. Tickets can be purchased at any station
using automated terminals.
Using pseudocode, or otherwise, write an algorithm for the automated terminals to:
• input the starting station number, the destination station number and the number of
passengers
• calculate the total fare and output the amount to be paid
• calculate the change (if any)
• issue the rail ticket(s) and change
Summer 2005
17 Using pseudocode or otherwise, write an algorithm that will input 25 marks and output the
number of DISTINCTION, MERIT, PASS or FAIL grades.
A mark greater than 69 will get a DISTINCTION, a mark between 69 and 60 (inclusive) will get a
MERIT and a mark between 59 and 50 (inclusive) will get a PASS.
Winter 2005
17 A school uses a computer to store student marks obtained in an end of term mathematics
exam. There are 150 students doing the exam and the maximum mark is 100.
Write an algorithm, using pseudocode or otherwise, which
• inputs the marks for all students
• checks if each mark is in the correct range and, if not, the mark is re-input
• outputs the smallest mark
• outputs the highest mark
• outputs the average mark for the exam.
Summer 2006
16 (a) A formula for calculating the body mass index (BMI) is:
Calculate the BMI for a person whose weight is 80kg and height is 2 meters.
Winter 2006
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 20°C
• how many of the temperatures were below 10°C
• the lowest temperature that was input
Summer 2007
19 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
• Inputs the codes for all 5000 items
• Validates the input code
• Calculates how many CDs, DVDs, videos and books are in stock
• Outputs the four totals.
Winter 2007
16 (a) Fuel economy for a car is found using the formula:
Winter 2008
19 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).
Summer 2009
18 A small airport handles 400 flights per day from three airlines:
FASTAIR (code FA)
SWIFTJET (code SJ)
KNIGHTAIR (code KA)
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:
• input flight identification
• calculate number of flights per day for each of the three airlines
• output the percentage of the total flights per day by each airline
• any validation checks must be included
Winter 2009
17 (a) A car’s speed is measured between points A and B, which are 200 km apart.
Summer 2010
18 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
• inputs all the temperatures (ten per day)
• outputs the highest temperature taken over the year
• outputs the lowest temperature taken over the year
• outputs the average temperature per day
• outputs the average temperature for the whole year
Winter 2010
17 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
Specimen 2011
19 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
Summer 2011
17 Daniel lives in Italy and travels to Mexico, India and New Zealand. The times differences are:
17 A school has 1800 students. The start date and leaving date for each student is stored on
file. Dates are in the format YYMMDD (e.g. a student starting on 10th September 2007 and
leaving on 4th August 2012 has the data 070910 and 120804 on file).
(a) Write an algorithm, using pseudocode or otherwise, which
• inputs Student ID for all 1800 students
• inputs the start date and leaving date for each student
• carries out a check to ensure the second date is later
• if error, increments error counter
• outputs the number of errors
16 The weather conditions in a town are being monitored over a year (365 days). The values
recorded per day are weather type and temperature (e.g. CLOUDY, 25).
Write an algorithm, using pseudocode or flowchart only, which:
• inputs the weather type and temperature for each day
• outputs the number of days that were CLOUDY, RAINING, SUNNY or FOGGY
• outputs the highest recorded temperature for the year
• outputs the lowest recorded temperature for the year
Summer 2012
17 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.
15 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.
Winter 2012
17 (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.
Summer 2013
16 A small shop uses barcodes which represent 5 digits. The last digit is used as a check digit.
For example:
abcde
01234
The check digit (e) is found by:
• multiplying the first and third digits (i.e. a and c) by 3
• multiplying the second and fourth digits (i.e. b and d) by 2
• adding these four results together to give a total
• dividing this total by 10
• remainder is check digit (e)
Write an algorithm, using pseudocode or flowchart only, which
• inputs 100 five-digit barcodes in the form a, b, c, d, e
• re-calculates the check digit for each number and checks whether the input check digit (e) is
correct
• outputs the number of barcodes which were entered correctly
17 A country has four mobile phone network operators. Each mobile phone number has eight
digits. 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.
Winter 2013
16 (a) A greenhouse is being monitored by a computer using 2 sensors. SENSOR1 measures
the 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
15 5000 numbers are being input which should have either 1 digit (e.g. 5), 2 digits (e.g. 36), 3
digits (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
9 Candidates are advised to use either pseudocode or a flow chart to answer this question,
although other forms of algorithmic representation will be credited.
Individual statements are produced each month for customers.
(a) A procedure is to be written which inputs data from a customer record, totals the amount
outstanding on orders which have been dispatched but not yet paid for, and outputs details of
these orders.
Produce an algorithm which will carry out the above task. The procedure is to be called
INVOICE. [4]
(b) The amount that the customer pays depends on the type of customer.
Each customer receives a gold, silver or bronze discount. This discount is recorded in the
customer record.
A gold customer receives a 20% discount.
A silver customer receives a 10% discount.
A bronze customer receives a 5% discount.
The discounted amount should be output after the total calculated in INVOICE, with a suitable
explanation.
Produce the final algorithm that will print out the customer statements. (You should use
INVOICE in this final algorithm without reproducing the details from part (a).) [7]
9 Candidates are advised to use either pseudocode or a flow chart to answer this question,
although other forms of algorithmic representation will be credited.
(a) Students take exams in all their subjects at the end of every year. A procedure is to be
written which inputs the marks of a student from the STUDENT file and calculates the mean
mark for that student.
Produce an algorithm which will carry out the above task. The procedure is to be called MEAN.
[4]
(b) The school awards a prize each year to the students who achieve the highest mean mark in
their form.
Produce an algorithm for a procedure called PRIZE which will determine which student will win
the prize for a particular form. The name of the form and the name of the student should then be
saved to a file called PRIZES.
(You should use MEAN in this final algorithm without reproducing the detail in part (a).) [7]
9691Winter 2010
7 A piece of software is written to interrogate past records of summer temperatures to find
evidence for global warming.