The following pseudocode uses a subprogram to calibrate a telemetry sensor and output its readings.
1 SET statusMessage TO "SYSTEM BOOTING"
2
3 PROCEDURE calibrateSensor ( rawValue, scaleFactor )
4 BEGIN PROCEDURE
5 SET statusMessage TO "CALIBRATION ACTIVE"
6
7 # calculate calibrated value
8 SET adjustedValue TO rawValue * scaleFactor
9
10 # calculate deviation
11 SET variance TO adjustedValue - rawValue
12
13 # output telemetry
14 SEND statusMessage TO DISPLAY
15 SEND "Raw Value: " & rawValue TO DISPLAY
16 SEND "Adjusted: " & adjustedValue TO DISPLAY
17 SEND "Variance: " & variance TO DISPLAY
18 END PROCEDURE
19
20 SEND statusMessage TO DISPLAY
21 SEND "Enter raw sensor reading:" TO DISPLAY
22 RECEIVE rawInput FROM (REAL) KEYBOARD
23 SEND "Enter scale factor:" TO DISPLAY
24 RECEIVE scale FROM (REAL) KEYBOARD
25 CALL calibrateSensor(rawInput, scale)
Explain how the correct value for the variable statusMessage is chosen on line 14.
29 exam-style questions on Edexcel GCSE Computer Science Subprograms, covering Built-in and user-devised subprograms, Functions versus procedures, and Global and local variables. Each one has a worked solution and a mark scheme showing where the marks go.