PROBLEM : | PRINT OUT A LIST OF THE SOCIAL SECURITY NUMBERS AND LETTER GRADES OF THE STUDENTS IN YOUR CS CLASS. |
THE GRADE SCHEME IS AS FOLLOWS : THE NUMBER GRADE IS THE AVERAGE OF THE SIX TEST GRADES. |
NUMBER GRADE 90 + 80 - 89 67 - 79 55 - 66 below 55 |
LETTER GRADE A B C D F |
INPUT : | SOCIAL SECURITY NUMBER (ssno) SIX TEST GRADES |
OUTPUT : | SOCIAL SECURITY NBUMBER LETTER GRADE (letgrade) |
WHILE MORE STUDENTS | ||
GET SOCIAL SECURITY NUMBER GET AVERAGE (average) GET LETTER GRADE PRINT SOCIAL SECURITY, LETTER GRADE |
GET AVERAGE | |||
WHILE MORE GRADES | |||
GET GRADE (grade) ADD TO SUM (sum) |
|||
COMPUTE AVERAGE (average) | |||
GET LETTERGRADE | |||
IF numgrade >= 90, | |||
THEN letgrade is A etc. |
PROGRAM LETGRADES(INPUT,OUTPUT);
VAR
AVERAGE, SSNO : INTEGER;
LETGRADE : CHAR;
.
.
(* procedures go here *)
.
.
BEGIN
READ(SSNO);
WHILE NOT EOF DO
BEGIN
GETAVERAGE(AVERAGE);
GETLETGRADE(AVERAGE, LETGRADE);
WRITELN( SSNO, LETGRADE );
READ(SSNO)
END
END.
PROCEDURE GETAVERAGE(VAR AVERAGE:INTEGER);
CONST
NOGRADES = 6;
VAR
SUM, GRADE, COUNT : INTEGER;
BEGIN
SUM := 0;
COUNT := 0;
WHILE COUNT < NOGRADES DO
BEGIN
READ(GRADES);
SUM := SUM + GRADE;
COUNT := COUNT + 1
END;
AVERAGE := SUM DIV NOGRADES
END;
PROCEDURE GETLETGRADE(VAR NUMGRADE : INTEGER, VAR LETGRADE : CHAR );
BEGIN
IF NUMGRADE >= 90 THEN LETGRADE := 'A'
ELSE IF NUMGRADE >= 80 THEN LETGRADE := 'B'
ELSE IF NUMGRADE >= 67 THEN LETGRADE := 'C'
ELSE IF NUMGRADE >= 55 THEN LETGRADE := 'D'
ELSE LETGRADE := 'F'
END
PROGRAM LETGRADES(INPUT,OUTPUT);
VAR
AVERAGE, SSNO : INTEGER;
LETGRADE : CHAR
PROCEDURE GETAVERAGE(VAR AVERAGE:INTEGER);
CONST
NOGRADES = 6;
VAR
SUM, GRADE, COUNT : INTEGER;
BEGIN
.
.
.
END;
PROCEDURE GETLETGRADE(VAR NUMGRADE : INTEGER, VAR LETGRADE : CHAR );
BEGIN
.
.
.
END;
BEGIN
MAIN PROGRAM
END.
PROCEDURE GETAVERAGE(VAR AVERAGE : INTEGERE)
GETAVERAGE(AVERAGE)
PROCEDURE GETLETGRADE(VAR NUMGRADE : INTEGER; VAR LETGRADE : CHAR)
GETLETGRADE(AVERAGE, LETGRADE)
CONTROL STRUCTURES
WHILE MORE STUDENTS
WHILE NOT EOF DO
BEGIN
END
WHILE MORE GRADES DO
WHILE number of grades < 6 DO
BEGIN
END
SUMMARIZE
PROCEDURES
DEFINE
PROCEDURE NAME(VAR ID1, ID2 : INTEGER)
CONST
VAR
BEGIN
END
USE
NAME(ID1, ID2)