// Declaring arrays
DECLARE StudentName : ARRAY[1:ClassSize] OF STRING
DECLARE StudentMark : ARRAY[1: ClassSize,1: SubjectNo] OF INTEGER
DECLARE TotalMark : ARRAY[1: ClassSize] OF INTEGER
DECLARE AverageMark : ARRAY[1: ClassSize] OF INTEGER
DECLARE StudentGrade : ARRAY[1: ClassSize] OF STRING
// Declaring variables
DECLARE ClassSize : INTEGER
DECLARE SubjectNo : INTEGER
DECLARE DistinctionCounter, MeritCounter, PassCounter, FailCounter : INTEGER
DECLARE StudentCounter, SubjectCounter : INTEGER
// Declaring constants
CONSTANT DistinctionNo = 70
CONSTANT MeritNo = 55
CONSTANT PassNo = 40
// intializing TotalMark
FOR StudentCounter 1 TO ClassSize
TotalMark[StudentCounter] = 0
NEXT StudentCounter
// intializing grading counters
DistinctionCounter = 0
MeritCounter = 0
PassCounter = 0
FailCounter = 0
// Working on each student's TotalMark
FOR StudentCounter 1 TO ClassSize
FOR SubjectCounter 1 TO SubjectNo
TotalMark[StudentCounter] = TotalMark[StudentCounter] +
StudentMark[StudentCounter, SubjectCounter]
NEXT SubjectCounter
AverageMark[StudentCounter] = ROUND(TotalMark[StudentCounter] / SubjectNo, 0)
// finding student Grade
// Finding Total number of distinctions, merits, passes, fails
IF AverageMark[StudentCounter] >= DistinctionNo THEN
StudentGrade[StudentCounter] = "Distinction"
DistinctionCounter = DistinctionCounter + 1
ELSEIF
AverageMark[StudentCounter] >= MeritNo
StudentGrade[StudentCounter] = "Merit"
MeritCounter = MeritCounter + 1
ELSEIF
AverageMark[StudentCounter] >= PassNo
StudentGrade[StudentCounter] = "Pass"
PassCounter = PassCounter + 1
ELSE
StudentGrade[StudentCounter] = "Fail"
FailCounter = FailCounter + 1
ENDIF
// Displaying student's result
OUTPUT "Name:", StudentName[StudentCounter]
OUTPUT "Total Marks:", TotalMark[StudentCounter]
OUTPUT "Average Marks:", AverageMark[StudentCounter]
OUTPUT "Grade:", StudentGrade[StudentCounter]
NEXT StudentCounter
//Displaying Class performance
OUTPUT "Total Distinctions:", DistinctionCounter
OUTPUT "Total Merits:", MeritCounter
OUTPUT "Total Passes:", PassCounter
OUTPUT "Total Fails:", FailCounter