Computer Science Problem-Solving and Design
Computer Science Problem-Solving and Design
Produce and describe top-down/modular designs using appropriate techniques, including structure
diagrams, showing stepwise refinement
A Top-down design is when a problem is split into smaller sub-problems, which themselves are split into even
smaller sub-problems until each is just one element of the final program.
Page 1 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Structure diagrams
Stepwise refinement
Stepwise refinement is the process of developing a modular design by splitting a problem into smaller sub-
tasks, which themselves are repeatedly split into even smaller sub-tasks until each is just one element of the
final program.
Page 2 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
produce an algorithm for a given problem either in pseudocode form or the flowchart form
What is an Algorithm?
An algorithm is a sequence of steps, which perform a specific task. In computing, algorithms are usually
represented as a program flowchart, or in pseudocode.
Page 3 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 4 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
What is Pseudocode?
Pseudo-code is a simplified form of programming code that uses common programming terminologies, but
does not use the strict syntax rules of a programming language.
An example of a pseudocode algorithm:
{
BEGIN
INPUT CardNumber
REPEAT
INPUT PIN
IF PIN is wrong for this CardNumber THEN
OUTPUT “Wrong Pin”
END IF
UNTIL Pin is correct
INPUT Amount
IF there are enough funds THEN
Dispense Cash
Update customer’s balance
ELSE
OUTPUT “Sorry, insufficient funds”
END IF
END
}
Efficiency
Page 5 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Correctness
Although an algorithm is expected to produce the correct outputs, correctness can still be measured in terms
of:
Accuracy : How many decimal places produce output with greater accuracy (e.g. more decimal
places)
Range: Will the algorithm work with the complete range of inputs? Or can it only deal with positive
numbers, whole numbers, numbers below 1 million, etc.
Reliability: Will the algorithm always produce correct output within the range that it is designed to
work? Or are there values which it will not accept
(e.g. zero).
Appropriateness
Length: If the problem is simple then a short algorithm would normally be expected.
Speed: if the output needs to be generated quickly, then the algorithm must be able to generate output
quick enough.
Memory requirements: An algorithm controlling a washing machine must not require a lot of
memory!
Page 6 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Flow Charts
Introduction:
This section covers the use of flow diagrams (charts) in the production of algorithms. This topic must not be
confused with “Systems flowcharts” as those are different and these are covered in a different section
(Systems analysis).
Page 7 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 8 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
What is an Assignment?
An assignment is an instruction in a program that places a value into a specified variable.
Some typical assignments are:
TheLength 20.5
TheUsersName$ “Charlie”
TheArea TheWidth *
TheLength
TotalCost LabelledCost + 15
Counter Counter + 1
Note that the last example is a common method used to increment the value of a variable. It could be read as:
Page 9 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Powers
Division
A result of a division such as 17 ÷ 4 can be expressed either as a real (4.25) or as two integers
(4 remainder 1).
The integer method, in most programming languages, uses the operators DIV and MOD.
Page 10 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Relational operators are used in the format: [Expression] [Operator] [Expression] and will always return a
Boolean (True or False) value.
Relational operators are typically used with the “IF” selection and also within conditional loops
(REPEAT-UNTIL or WHILE-WEND).
In the following table, the variables “a” and “name$” have the following assignments:
a3+5
name$ “JAMES”
Page 11 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
AND & OR
The AND & OR operators always return a Boolean result and are used in the format:
The following ‘truth’ table summarizes the result of the Boolean operations:
Values Results
NOT
The NOT operator reverses the result of the Boolean expression and is used in the format:
NOT [Boolean]
Page 12 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Validation
Validation checks ensure that data entered into the computer is sensible. Data is checked in accordance with a
set of rules. The computer's software can validate data while it is being entered into the computer. The main
purpose of data validation is to spot an error. This can be done quickly and easily as the process is automated.
1. Range check. A mathematics exam is out of 100. A simple validation rule that the computer can apply to
any data that is input is that the mark must be between 0 and 100 inclusive. Consequently, a mark of 101
would be rejected by this check as being outside the acceptable range.
2. Character check. A person’s name will consist of letters of the alphabet and sometimes a hyphen or
apostrophe. This rule can be applied to input of a person’s name so that dav2d will immediately be rejected as
unacceptable.
3. Format check. A particular application is set up to accept a national insurance number. Each person has a
unique national insurance number, but they all have the same format of characters, 2 letters followed by 6
digits followed by a single letter. If the computer knows this rule then it knows what the format of a NI
number is and would reject ABC12345Z because it is in the wrong format, it breaks the rule.
4. Length check. A NI number has 9 characters, if more or fewer than 9 characters are keyed in then the data
cannot be accurate.
5. Existence check. A bar code is read at a supermarket check-out till. The code is sent to the main computer
which will search for that code on the stock file. As the stock file contains details of all items held in stock, if
it is not there then the item cannot exist, which it obviously does, therefore the code must have been wrongly
read.
Page 13 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Presence check
Code can be added to check that a particular control has not been left empty or un-checked:
Is
No Yes You have not
Username = “”?
entered a
Username
If Username = “” Then
Print (“You have not entered a Username”)
End
Range check
Code can be added to check that a particular control has a value between an allowed maximum and minimum:
Is
Page 14 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Length check
Code can be added to check that a particular control has a value between an allowed maximum and minimum:
Page 15 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
The following five problems are also covered in section 3.2 where the algorithms are constructed using
pseudocode. Candidates may choose to answer questions using either flowcharts or pseudocode but a working
knowledge of both techniques is well advised.
2.1 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 this problem in the
form of a flowchart.
2.2 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
in the form of a flowchart.
2.3 Example 3
Write an algorithm in the form of a flowchart which takes temperatures input over a 100 day period (once per
day) and outputs the number of days when the temperature was below 20ºC and the number of days when the
temperature was 20ºC and above.
2.4 Example 4
Write an algorithm in the form of a flowchart which:
inputs the top speeds (in km/hr) of 5000 cars outputs
the fastest speed and the slowest speed outputs the
average (mean) speed of all the 5000 cars
2.5 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 1, all maps have a code starting with 2 and all magazines have a code starting with 3. The
code 9999 is used to end the algorithm.
Write an algorithm in the form of a flowchart which inputs the codes for all items in stock and outputs the
number of books, number of maps and the number of magazines in stock. Include any validation checks
needed.
Page 16 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 17 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 18 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 19 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 20 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 21 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Determine the output for a known set of data to check it carries out the task correctly.
Check the logic of the algorithm.
Determine the function of the algorithm.
When dry running a flowchart it is advisable to draw up a trace table showing how variables
change their values at each stage in the algorithm.
The following three examples show all stages in the dry running for the given set of input data:
3.1 Example 1
This algorithm inputs 3 numbers, each number goes through successive division by 10 until its value is less
than 1. An output is produced which contains the number input and a value generated by the flowchart
processing.
3.2 Example 2
This algorithm inputs 5 values and outputs how many input numbers were negative and how many were
positive.
Data to be used: N = 1, -5, 2, -8, -7
3.3 Example 3
This algorithm inputs the number of hours of sunshine recorded each day for a week (7 days). The output is
the highest value for hours of sunshine and the average (mean) value for the numbers of hours of sunshine per
day.
Data to be used: hours = 9.0, 7.8, 1.2, 4.5, 10.0, 6.4, 3.1
Page 22 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 23 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 24 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 25 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Questions 1 to 7 are problems which require an algorithm to be written in the form of a flowchart. Questions 8
to 10 require a trace table to be written and find the expected output for the given set of data. The answers to
these questions can be found in booklet 6.
1. 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 a flowchart, 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.
2. As part of an experiment, a school measured the heights (in meters) of all its 500 students.
Write an algorithm, using a flowchart, which inputs the heights of all 500 students and outputs the height
of the tallest person and the shortest person in the school.
3. 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 a flowchart, 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.
4. 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 a flowchart, which inputs the 3 – digit code for all 280 items and outputs the
number of cards, sweets, stationery and toys.
5. A company is carrying out a survey by observing traffic at a road junction. Each time a car, bus or
lorry passed by the road junction it was noted down.
10 000 vehicles were counted during the survey.
Page 26 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
6. 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 kilometers per hour. 500 vehicles were monitored using
these cameras over a 1 hour period.
Write an algorithm, using a flowchart, 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
Page 27 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
8. Draw the trace table and determine the output from the following flowchart using the following
data:
Page 28 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
9. Draw the trace table and determine the output from the following flowchart using the following
data (NOTE: input of the word “end” stops the program and outputs results of the survey):
vehicle = car, car, lorry, bus, van, van, car, car, bus, car, end
Page 29 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
10. Draw the trace table and determine the output from the following flowchart using the following
data:
Page 30 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
May/June 2006
5. (a) Programs can be designed in modular form.
Discuss the advantages and disadvantages of designing programs in modular form.
[5]
(b) A program is to be written which will update the records in a sequential file and then
produce a backup copy.
Describe, using a diagram, the way that this problem can be split into modules to prepare it for
coding. [5]
May/June 2009
A company specialises in creating websites for customers.
8. (a) As part of the process of designing a site, the company will use diagrams in order to make
understanding easier.
Describe two types of diagram that may be used by the company. [4]
(a) Complete the structure diagram to show the modules that will be needed.
[3]
(b) The printout will be different for those staff who receives cash and
those who have their earnings paid directly to a bank account. Add the
next level to the print module.
Page 31 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
1 Nathan is designing a software solution for stock control in a computer shop. He has a colleague,
called Andre, who will help him write the program. Nathan decides to modularise the solution.
(a) State why modularisation is a good idea. [1]
(b) As the first step in his design he splits the solution into the following main areas:
Initialisation, StockOrdering, Sales, SalesReport.
Complete the following structure diagram.
[1]
(c) SalesReport is made up of two modules, MonthlySalesReport and AnnualSalesReport.
Add them to the structure diagram in (b). [2]
1 Soni works for a software house which has been asked to design software for a cycle hire company,
Super Bikes.
Soni decides on the main tasks:
collecting the information about new bikes
entering details of repairs
entering details of hirer
entering details of payment
(a) Complete the structure diagram showing these tasks.
[2]
(b) The collection of information about repairs has three subtasks:
input the repair needed
input the parts list
input the cost of the repair
Add these to the structure diagram in part (a). [1]
(c) State two reasons for dividing the main task into smaller tasks. [2]
Page 32 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Flow Charts:
May/June 2006
9
Trace the flow chart using the numbers 2 and 3. Write down each of the values of N in the order that they are
printed out.
(a) 2 [1]
(b) 3 [2]
Page 33 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Oct/Nov 2006
17 The following flowchart shows how the bar code written on an item is used to find the price, do stock
control and produce an itemised bill. Select statements from the list below to complete the flowchart.
Page 34 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
May/June 2007
11 Study the following flowchart very carefully.
(a) Complete the following table showing the expected output from the flowchart for the three sets of input
data:
Page 35 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Oct/Nov 2007
11) Majid lives in Cairo but often travels to Tokyo, Mumbai and Washington. A flow chart has been written
so he can work out the local time in these three places.
Page 36 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 37 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
May/June 2008
9) The following flowchart inputs two numbers, carries out a calculation and then outputs the result.
(a) Complete the following table for the three sets of input data.
Page 38 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Oct/Nov 2008
17) The following flowchart shows how sensors (which can be analogue or digital) and a computer are used to
control the temperature of a greenhouse for plants. Complete the flowchart using the items from the list below.
Page 39 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
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:
[5]
Page 40 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
May/June 2009
14) Study the flowchart very carefully.
(a) Complete the table to show what outputs you would expect for the two inputs.
Page 41 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
16) The following flowchart shows what happens when a customer uses a credit card to pay for goods at a
supermarket. Ten of the boxes are blank.
Using the items from the list, insert the ten missing statements using the appropriate number only. Each
statement may be used once only.
Page 42 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 43 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 44 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 45 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
The flowchart below shows the log on procedure. Several boxes have been left blank.
Complete the flowchart using items from the list.
Page 46 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
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 [5]
Page 47 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 48 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 49 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 50 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 51 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
10 The following flowchart inputs ten temperatures and outputs the average (mean) temperature and the
number of temperatures which were negative (i.e. < 0).
Page 52 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 53 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 54 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 55 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 56 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 57 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 58 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 59 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 60 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 61 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 62 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 63 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 64 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 65 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 66 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 67 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 68 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 69 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 70 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 71 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 72 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 73 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 74 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 75 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 76 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 77 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 78 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 79 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 80 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Complete the trace table for the following two sets of data:
(i) a = 5, b = 4, c = 1, d = 9
(ii) a = 5, b = 9, c = 4, d = 1
Page 81 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
15 A library uses barcodes to identify borrowers and books. A borrower has a card containing a barcode
with an equivalent numerical code. Each book also has a barcode with an equivalent numerical code.
The flowchart on the facing page shows what happens when book(s) are taken out by a borrower.
However, several stages are missing.
Using item numbers only, complete the flowchart by selecting stages from the item list below.
Page 82 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 83 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
14 A microprocessor controls the opening and closing of automatic doors to a supermarket. Customers are
detected using pressure sensors.
The flowchart on the next page shows how the sensors and microprocessor interact to control the opening and
closing of the doors. However, several of the stages in the process have been missed out.
Using item number only, complete the flowchart using items from the following list:
Page 84 of 85
[email protected] 0333-5154649
2.1 Algorithm Design & Prblem - Solving
Page 85 of 85
[email protected] 0333-5154649