PROGRAM GRADE PARAMETER (N=7) IMPLICIT DOUBLE PRECISION (A-H,O-Z) DIMENSION P(N,2),G(N,2),PMX(1000) CHARACTER *2 LETTER(N) DATA (P(I,1),P(I,2),I=1,N)/75,100,65,75,55,65,45,55,35,45, *25,35,0,25/ DATA (G(I,1),G(I,2),I=1,N)/5.5,6.0,4.5,5.5,3.5,4.5,2.5,3.5, *1.5,2.5,0.5,1.5,0.0,0.5/ DATA (LETTER(I),I=1,N)/'O', 'A', 'B', 'C', 'D', 'E', 'F'/ P(1,2)=P(1,2)+0.000001D0 G(1,2)=G(1,2)+0.000001D0 WRITE(*,*)'CONVERT % MARKS INTO GRADE POINTS? FEED 1' WRITE(*,*)'CONVERT GRADE POINTS INTO % MARKS? FEED 0' READ(*,*) NCGM WRITE(*,*)'NO. OF % MARKS/GRADE POINTS TO BE CONVERTED ?' READ(*,*) M WRITE(*,*)'FEED % MARKS OR GRADE POINTS (WHICHEVER APPLICABLE)' READ(*,*)(PMX(I),I=1,M) WRITE(*,*)'------------------------------------------------------' WRITE(*,*)'SL NO. MARKS (%) GRADE POINT LETTER GRADE' WRITE(*,*)'------------------------------------------------------' IF(NCGM.EQ.1) THEN DO IX=1,M PM=PMX(IX) K=0 DO I=1,N IF(P(I,1).LE.PM.AND.P(I,2).GT.PM) K=I ENDDO GP=G(K,1)+(PM-P(K,1))*(G(K,2)-G(K,1))/(P(K,2)-P(K,1)) WRITE(*,1)IX, PM, GP, LETTER(K) ENDDO ELSE DO IX=1,M GP=PMX(IX) K=0 DO I=1,N IF(G(I,1).LE.GP.AND.G(I,2).GT.GP) K=I ENDDO PM=P(K,1)+(GP-G(K,1))*(P(K,2)-P(K,1))/(G(K,2)-G(K,1)) WRITE(*,1)IX, PM, GP, LETTER(K) ENDDO ENDIF 1 FORMAT(1X,I3,9X,F7.3,8X,F7.3,12X,A3) WRITE(*,*)'------------------------------------------------------' WRITE(*,*)'OVER ' READ(*,*) XX END