A FUNCTION IS A SUBPROGRAM WHICH SENDS BACK ONE ANSWER. THIS ANSWER IS SENT BACK IN THE NAME OF THE FUNCTION. THE FUNCTION ITSELF MUST HAVE A TYPE. |
PRINT OUT A LIST OF THE SOCIAL SECURITY NUMBERS AND LETTER GRADES WHERE THE LETTER GRADES WERE BASED ON THE AVERAGE OF THE SIX TEST GRADES. |
READ(SSNO); | |||
WHILE NOT EOF DO | |||
BEGIN | |||
GETLETGRADE(AVERAGE,LETGRADE); WRITELN(SSNO,LETGRADE); READ(SSNO); |
|||
END |
FUNCTION AVERAGE : INTEGER;
CONST
NOGRADES = 6;
FUNCTION SUM : INTEGER;
VAR GRADE, COUNT, TSUM : INTEGER;
BEGIN
TSUM := 0;
COUNT := 0;
REPEAT
READ(GRADE);
TSUM := TSUM + GRADE;
COUNT := COUNT + 1;
UNTIL COUNT = NOGRADES;
SUM := TSUM;
END;
BEGIN
AVERAGE := SUM DIV NOGRADES;
END;
READ(SSNO); WHILE NOT EOF DO |
|||
BEGIN | |||
WRITELN( SSNO, LETGRADE( AVERAGE ) ); READ(SSNO); |
|||
END; |
THE BODY OF THE FUNCTION IS EXACTLY LIKE THE PROCEDURE GETLETGRADE |
TWO KINDS OF SUBPROGRAMS: | ||
FUNCTIONS | ||
SEND BACK A VALUE HAVE TYPE PARAMETERS SHOULD ALL BE VALUE PARAMETERS |
||
PROCEDURES | ||
MORE GENERAL PURPOSE MAY HAVE NONE, ONE, OR MORE VALUES TO SEND BACK TO CALLING PROGRAM |
PASCAL HAS SOME BUILT-IN FUNCTION AND PROCEDURES | ||
EOF is a boolean function READ, READLN are procedures WRITE, WRITELN are procedures |
PROBLEM | |||
GENERAL SOLUTION | |||
TOP DOWN DESIGN | |||
SPECIFIC SOLUTION | |||
PASCAL PROGRAM | |||
PASCAL | |||
CONST, VAR, INTEGER, CHAR WHILE, IF-THEN, IF-THEN-ELSE, REPEAT-UNTIL PROCEDURE, FUNCTION BEGIN, END |