Chapter 5 Overheads

PROBLEM : WHAT WAS THE CLASS AVERAGE ON THE LAST TEST IN MY ENGLISH CLASS?

UNDERSTAND THE PROBLEM
SURE: ADD UP ALL OF THE GRADES AND DIVIDE BY THE NUMBER OF STUDENTS

TOP DOWN DESIGN
INPUT : TEST GRADES (HOW MANY?) THEY MUST BE COUNTED
OUTPUT : THE CLASS AVERAGE
THE NUMBER OF STUDENTS WHO TOOK THE TEST



LEVEL 0 :
WHILE MORE GRADES
GET GRADE (grade)
ADD TO SUM (sum)
INCREMENT STUDENT COUNT (count)
COMPUTE AVERAGE
PRINT AVERAGE

LEVEL 1 :
GET GRADE
READ( GRADE )
ADD TO SUM
SUM is SUM + GRADE
INCREMENT STUDENT COUNT
COUNT is COUNT + 1
COMPUTE AVERAGE
AVG = SUM / COUNT



PROGRAM GRADES( INPUT, OUTPUT );
VAR
GRADE, SUM, COUNT, AVERAGE : INTEGER;
BEGIN
SUM := 0;
COUNT := 0;
READ( GRADE );
WHILE NOT EOF DO
BEGIN
SUM := SUM + GRADE;
COUNT := COUNT + 1;
READ( GRADE );
END;
AVERAGE := SUM DIV COUNT;
WRITELN('THE CLASS AVERAGE FOR ', COUNT, 'STUDENTS IS ', AVERAGE)
END.



CONTROL STRUCTURE:
WHILE MORE GRADES
WHILE NOT EOF DO
BEGIN

END
NOTE : EOF RETURNS TRUE IT THERE IS NO MORE DATA.

ANYTHING ELSE TO BE NOTED?
SUM AND COUNT MUST BE SET TO ZERO FOR THE PROCESS TO WORK.



SUMMARIZE
BOOLEAN EXPRESSIONS

EOF
BOOLEAN FUNCTION
RETURNS: TRUE or FALSE

REPETITION (LOOP)
WHILE BOOLEAN EXP. DO
STATEMENT
WHILE BOOLEAN EXP. DO
BEGIN
  .
  .
  .

END