Two examination papers are written at the end of the course. The final mark is either the average of the two papers, or the average of the two papers and the class record mark (all weighted equally), whichever is the higher. The program should reads in the class record mark and the marks of the papers, computes the average, and shows PASS (>= 50%) or FAIL (< 50%).
! -------------------------------------------------------------
! Two examination papers are written at the end of the course.
! The final mark is either the average of the two papers, or
! the average of the two papers and the class record mark (all
! weighted equally), whichever is the higher. The program
! should reads in the class record mark and the marks of the
! papers, computes the average, and shows PASS (>= 50%) or
! FAIL (< 50%).
! -------------------------------------------------------------
PROGRAM FinalMark
IMPLICIT NONE
REAL :: Mark1, Mark2 ! the marks of the papers
REAL :: Final ! the final marks
REAL :: ClassRecordMark ! the class record mark
REAL, PARAMETER :: PassLevel = 50.0 ! the pass level
READ(*,*) ClassRecordMark, Mark1, Mark2
Final = (Mark1 + Mark2) / 2.0
IF (Final <= ClassRecordMark) THEN
Final = (Mark1 + Mark2 + ClassRecordMark) / 3.0
END IF
WRITE(*,*) 'Class Record Mark : ', ClassRecordMark
WRITE(*,*) 'Mark 1 : ', Mark1
WRITE(*,*) 'Mark 2 : ', Mark2
WRITE(*,*) 'Final Mark : ', Final
IF (Final >= PassLevel) THEN
WRITE(*,*) 'Pass Status : PASS'
ELSE
WRITE(*,*) 'Pass Status : FAIL'
END IF
END PROGRAM FinalMark
Click here to download this program.
40.0 60.0 43.0 Class Record Mark : 40. Mark 1 : 60. Mark 2 : 43. Final Mark : 51.5 Pass Status : PASS
60.0 45.0 43.0 Class Record Mark : 60. Mark 1 : 45. Mark 2 : 43. Final Mark : 49.3333321 Pass Status : FAIL