PROGRAM 23
PROGRAM TEMPERATURE (INPUT, OUTPUT, FILEVAR);
{ANTHONY F. ORITZ, ASSIGNMENT 8, JULY 18, 1994}
{THIS PROGRAM COMPUTES AND PRINTS THE AVERAGE TEMPERATURE GIVEN
X NUMBER OF TEMPERATURE READINGS.}
USES CRT;
CONST
NUMHRS = 24;
VAR
TEMP, HIGH, LOW, SUM, COUNTER: INTEGER;
AVERAGE: REAL;
FILEVAR: TEXT;
PROCEDURE OPENFILE;
BEGIN
ASSIGN (FILEVAR, 'A:\NEWTEMP.DAT');
RESET (FILEVAR);
END;
PROCEDURE INITIALIZE;
BEGIN
READ (FILEVAR, TEMP);
WRITE (TEMP:8);
SUM := TEMP;
COUNTER := 0;
LOW := TEMP;
HIGH := TEMP;
END;
FUNCTION MOREDATA: BOOLEAN;
BEGIN
MOREDATA := NOT EOF (FILEVAR);
END;
FUNCTION MORENUMS: BOOLEAN;
BEGIN
MORENUMS := NOT EOF (FILEVAR);
END;
PROCEDURE GETTEMP;
BEGIN
READ (FILEVAR, TEMP);
WRITE (TEMP:8);
END;
PROCEDURE ACCUMULATETEMP;
BEGIN
SUM := SUM + TEMP;
COUNTER := COUNTER + 1;
END;
PROCEDURE TESTFORHILO;
BEGIN
IF TEMP < LOW THEN
LOW := TEMP;
IF TEMP > HIGH THEN
HIGH := TEMP;
END;
PROCEDURE CALCULATEAVERAGE;
BEGIN
AVERAGE := SUM / COUNTER;
END;
PROCEDURE PRINTRESULTS;
BEGIN
WRITELN ('NUMBER OF TEMPERATURES = ', COUNTER);
WRITELN ('AVERAGE TEMPERATURE = ', AVERAGE:6:2);
WRITELN ('HIGH TEMPERATURE = ', HIGH);
WRITELN ('LOW TEMPERATURE = ', LOW);
WRITELN;
WRITE ('PRESS ENTER KEY TO CONTINUE. ');
READLN;
END;
PROCEDURE PAUSE;
BEGIN
WRITELN;
WRITELN;
WRITE ('PRESS ENTER KEY TO SEE THE COUNT, AVERAGE, HIGH, AND LOW OF THE TEMPERATURES. ');
READLN;
END;
PROCEDURE CLOSEFILE;
BEGIN
CLOSE (FILEVAR);
END;
BEGIN
CLRSCR;
OPENFILE;
INITIALIZE;
WHILE MOREDATA DO
WHILE MORENUMS DO
BEGIN
GETTEMP;
TESTFORHILO;
ACCUMULATETEMP;
CALCULATEAVERAGE;
END;
PAUSE;
CLRSCR;
PRINTRESULTS;
CLOSEFILE;
END.
{ DATA FILE: NEWTEMP.DAT }
20 24 41 65 13 52 -1 20 15 3
9 23 80 87 29 42 76 78 105 5
72 57 101 61 110 0 78 17 46 8
-2 90 99 81 66 63 71 23 106
77 13 100 46 52 30 13 24 59 -
47 86 15 73 63 104 39 79 90 7
28 39 4 11 39 107 54 55 72 5
19 -5 87 86 87 72 96 1 18 5
87 64 14 94 8 8 22 88 64
61 45 -8 81 17 89 87 33 53 8
109 64 110 30 19 36 19 75 110 4
50 -4 46 20 99 46 23 20 24 4
65 13 52 -1 20 115 37 9 -15 2
80 87 29 42 76 78 105 58 72 5
101 61 110 0 78 17 46 87 -2 9
99 81 66 63 71 23 106 8 77 1
100 46 52 30 13 24 59 -4 47 7
18 107 -1 66 41 14 66 68 44 9
54 28 -5 55 69 -3 31 44 42 6
100 62 102 103 82 43 30 107 28 7
25 79 -9 49 44 -3 80 72 104
17 -2 66 23 7 45 47 11 25 8
87 108 107 0
{ OUTFILE: PROG23.OUT }
20 24 41 65 13 52 -1 20 15 3
9 23 80 87 29 42 76 78 105 5
72 57 101 61 110 0 78 17 46 8
-2 90 99 81 66 63 71 23 106
77 13 100 46 52 30 13 24 59 -
47 86 15 73 63 104 39 79 90 7
28 39 4 11 39 107 54 55 72 5
19 -5 87 86 87 72 96 1 18 5
87 64 14 94 8 8 22 88 64
61 45 -8 81 17 89 87 33 53 8
109 64 110 30 19 36 19 75 110 4
50 -4 46 20 99 46 23 20 24 4
65 13 52 -1 20 115 37 9 -15 2
80 87 29 42 76 78 105 58 72 5
101 61 110 0 78 17 46 87 -2 9
99 81 66 63 71 23 106 8 77 1
100 46 52 30 13 24 59 -4 47 7
18 107 -1 66 41 14 66 68 44 9
54 28 -5 55 69 -3 31 44 42 6
100 62 102 103 82 43 30 107 28 7
25 79 -9 49 44 -3 80 72 104
17 -2 66 23 7 45 47 11 25 8
87 108 107 0
PRESS ENTER KEY TO SEE THE COUNT, AVERAGE, HIGH, AND LOW OF THE TEMPERATURES.
NUMBER OF TEMPERATURES = 223
AVERAGE TEMPERATURE = 51.56
HIGH TEMPERATURE = 115
LOW TEMPERATURE = -15
PRESS ENTER KEY TO CONTINUE.
BACK TO COMP151 PAGE.