! PROGRAM P47 ! ! CLASS LIST PROGRAM ! IMPLICIT NONE CHARACTER (LEN=20) :: NAME REAL :: MARK,AVE INTEGER :: I,N ! PRINT *, 'This is Program >> P47 - Class List program' ! ! Tell program where data for READ * is coming from OPEN(UNIT=5, FILE='P47.DAT') ! UNIT=5 is the default input ! PRINT 1 1 FORMAT(//'CLASS LIST:' & ///' NAME',' ','MARK') ! ! The /// give 2 blank lines ! READ *,N AVE=0.0 L1: DO I=1,N READ 10,NAME,MARK 10 FORMAT(A20,F5.2) ! Real data entered with decimal point AVE=AVE+MARK PRINT 20,NAME,MARK 20 FORMAT(' ',A20,F7.1) END DO L1 ! AVE=AVE/N PRINT 30,AVE 30 FORMAT(' ',27('-')/ & ! 27 dashes for a separator ' AVERAGE',' ',F7.1) ! This is on the line below ! PRINT 56 56 FORMAT(' ') ! Print a blank line STOP END PROGRAM P47DATA:
5 Mickey Mouse 85.0 Goofy 100.0 Pluto 82.0 Dumbo 100.0 Cinderella 5.0OUTPUT:
+--------------------------------------------------+ | 32-bit Power for Lahey Computer Systems | | Phar Lap's 386|DOS-Extender(tm) Version 7.0 | | Copyright (C) 1986-94 Phar Lap Software, Inc. | | Available Memory = 14880 Kb | +--------------------------------------------------+ This is Program >> P47 - Class List program LASS LIST: NAME MARK Mickey Mouse 85.0 Goofy 100.0 Pluto 82.0 Dumbo 100.0 Cinderella 5.0 --------------------------- AVERAGE 74.4
PROGRAM p47 (input, output); { Class list program } VAR name : string[20]; mark, ave : REAL; i, n : INTEGER; BEGIN writeln ( ^l ); writeln ( ' Class List: ' ); writeln; writeln; writeln ( ' ':8, 'name', ' ':9, 'mark' ); writeln; writeln; readln ( n ); ave := 0.0; FOR i := 1 to n DO BEGIN readln ( name, mark ); ave := ave + mark; writeln ( name:20, mark:5:2 ) END; ave := ave/n; writeln ( '-------------------------' ); writeln ( 'average', ' ':13, ave:5:2 ); writeln ( ^l ) END.DATA:
5 Mickey Mouse 85.0 Goofy 100.0 Pluto 82.0 Dumbo 100.0 Cinderella 5.0
Last modified: 21/07/97