PROGRAM ApplRec(INPUT, OUTPUT);

CONST
   NamSiz = 40;
   BasSix = 100;

TYPE

   String40 = ARRAY[1..40] OF CHAR ;

   LastSchool = (HS, JC) ;

   ApplRec =
       RECORD
          name:  String40 ;
          CASE school: LastSchool OF
              HS: (Math, Verbal:  INTEGER);
              JC: (GPA:  REAL)
       END ;

   ApplBase = ARRAY[1..100] OF ApplRec;

{ Record format
  Smith, John                             T 3.75
  Doe, Jane                               H 700 550
}

PROCEDURE ReadRec(VAR S: ApplRec);
VAR
    I: INTEGER;
    C: CHAR;
BEGIN
    FOR I := 1 TO 40 DO
	READ(INPUT, S.name[I]);
    READ(INPUT, C);
    IF C = 'T' THEN
       BEGIN
        S.school := JC ;
        READ(INPUT, S.GPA)
       END
    ELSE { C = 'H' }
       BEGIN
        S.school := HS ;
        READ(INPUT, S.Math, S.Verbal)
       END ;
    READLN(INPUT);
END ;


PROCEDURE WriteRec(VAR S: ApplRec);
VAR
    I: INTEGER;
    C: CHARACTER;
BEGIN
    FOR I := 1 TO 40 DO
	WRITE(OUTPUT, S.name[I]);
    WRITE(OUTPUT, '   ');
    IF (S.school = JC) THEN
        WRITELN(OUTPUT, 'GPA', S.GPA:5:2)
    ELSE { S.school = HS }
	WRITELN(OUTPUT, 'SAT', S.Math:4, S.Verbal:4)
END ;

PROCEDURE Main;
VAR
    D: ApplBase;
    I, N: INTEGER;
BEGIN
    N := 0;
    WHILE NOT EOF(INPUT) DO
       BEGIN
	N := N+1 ;
        ReadRec(D[N]);
       END ;
    FOR I := 1 to N DO
        WriteRec(D[I])
END ;

BEGIN
    Main
END .


