| 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 |
|||