External Exam Download Resources Web Applications Games Recycle Bin

Exercise 4 - Award Grades

In Digital Solutions, the final award of letter grades based on marks changes slightly each year. For example, a student in 2020 with a final mark of 66 was awarded a 'B' grade; whereas a student with the same mark in 2021 was awarded a 'C' grade.

Mark ranges to letter grades also change between subjects. For example, a student in General Mathemetics in 2021 with a final mark of 80 was awarded a 'B' grade; whereas a student with the same mark in 2021 in English was awarded an 'A' grade.

With that said, for the following algorithm, work on these mark to grade thresholds:

Mark Range (inclusive)Grade
44 or lower D
45 to 65 C
66 to 82 B
83 to 100 A

An algorithm is required to read in a list (a.k.a., 'array') of scores, and assign letter grades to these, based on the thresholds above. The end result should look like this:

The algorithm has been started but the awardGrade module needs finishing:

BEGIN awardGrade(score)
  grade = ''
  IF score <= 44 THEN
    ...
  ENDIF
  RETURN grade
END

BEGIN
  scores = [38, 75, 52, 91, 49]
  FOR counter = 0 TO LENGTH(scores)
    score = scores[counter]
    grade = awardGrade(score)
    OUTPUT score, grade
  NEXT counter
  ENDFOR
END

Finish coding the awardGrade module here in Python once you have finished planning it above:

def awardGrade(score):
  grade = ''
  if score <= 44:
    #keep typing here...
  return grade

scores = [38, 75, 52, 91, 49]
for score in scores:
  grade = awardGrade(score)
  print(score, grade)