IDENTIFICATION DIVISION. * PROGRAM-ID. AVERAGE-COB. AUTHOR. IRVIN J. LEVY ADAPTED FROM TEXTBOOK EXAMPLE AND FROM SAMPLE PROGRAMS SUPPLIED BY R.C.BJORK. INSTALLATION. GORDON CS DEPT. DATE-WRITTEN. 30-JAN-1997. DATE-COMPILED. SECURITY. CLASS DEMO. * * THIS PROGRAM READS A FILE CONTAINING VALUES IN THE RANGE OF -99.9 TO * 99.9; THE NUMBER OF VALUES FOUND IN THE FILE IS UNKNOWN UNTIL RUN TIME. * THE PROGRAM WILL OUTPUT THE RESULTS BY INDICATING HOW MANY VALUES WERE * READ AND WHAT THEIR AVERAGE IS. * ENVIRONMENT DIVISION. * CONFIGURATION SECTION. SOURCE-COMPUTER. VAX-11. OBJECT-COMPUTER. VAX-11. * INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INFILE ASSIGN TO "AVERAGE.IN". SELECT OUTFILE ASSIGN TO "AVERAGE.OUT". * DATA DIVISION. * FILE SECTION. * FD INFILE LABEL RECORDS ARE STANDARD DATA RECORD IS INREC. 01 INREC. 05 THE-VALUE PICTURE -99.9. 05 FILLER PICTURE X(75). * FD OUTFILE LABEL RECORDS ARE STANDARD DATA RECORD IS OUTREC-1, OUTREC-2. 01 OUTREC-1. 05 MSG-1 PICTURE X(30) JUSTIFIED RIGHT. 05 THE-SIZE PICTURE Z(4)9. 05 FILLER PICTURE X(45). 01 OUTREC-2. 05 MSG-2 PICTURE X(30) JUSTIFIED RIGHT. 05 AVERAGE PICTURE -99.9. 05 FILLER PICTURE X(45). * WORKING-STORAGE SECTION. * 77 THE-DATUM PICTURE S99V9. 77 SUM-OF-VALUES PICTURE S99999V9 VALUE ZERO. 77 AVE PICTURE S99V9. 77 CURRENT-COUNT PICTURE 9(5) VALUE IS ZERO. 77 EOF-SW PICTURE X VALUE "N". 88 EOF VALUE "Y". * PROCEDURE DIVISION. * MAIN-PROGRAM. OPEN INPUT INFILE. OPEN OUTPUT OUTFILE. PERFORM GRAB-ONE-VALUE UNTIL EOF. PERFORM WRITE-RESULT. CLOSE INFILE. CLOSE OUTFILE. STOP RUN. * GRAB-ONE-VALUE. READ INFILE AT END MOVE "Y" TO EOF-SW. IF NOT EOF MOVE THE-VALUE OF INREC TO THE-DATUM ADD THE-DATUM TO SUM-OF-VALUES ADD 1 TO CURRENT-COUNT. * WRITE-RESULT. DIVIDE SUM-OF-VALUES BY CURRENT-COUNT GIVING AVE. MOVE "NUMBER OF VALUES READ = " TO MSG-1. MOVE CURRENT-COUNT TO THE-SIZE. WRITE OUTREC-1. MOVE "AVERAGE = " TO MSG-2. MOVE AVE TO AVERAGE. WRITE OUTREC-2 AFTER ADVANCING 2 LINES.