IDENTIFICATION DIVISION. PROGRAM-ID. ACTUAL-BUG-INSTANCES IS INITIAL PROGRAM. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT BUG-DATA ASSIGN TO "BUGS.IN". DATA DIVISION. FILE SECTION. FD BUG-DATA RECORD CONTAINS 36 CHARACTERS. 01 BUG-DATA-RECORD. 02 BUG-DATA-NAME PICTURE X(30). 02 BUG-DATA-WINGSPAN PICTURE 99V99. 02 LINEBREAK PICTURE XX. WORKING-STORAGE SECTION. 01 BUG-DATA-EOF PICTURE 9 VALUE ZERO. 01 BUGS. 02 TOTAL-BUG-SPECIES PICTURE 999. 02 SPECIES OCCURS 264 TIMES INDEXED BY BUG-SPECIES-INDEX. 03 NAME PICTURE X(30). 03 WINGSPAN PICTURE 99V99. 01 BUG-COMPARISON-INDEX PICTURE 999. 01 TEMP-BUG. 02 NAME PICTURE X(30). 02 WINGSPAN PICTURE 99V99. 01 TOTAL-WINGSPAN PICTURE 999999999V99 VALUE ZEROES. 01 AVERAGE-WINGSPAN PICTURE 999999999V99. PROCEDURE DIVISION. PERFORM 1000-READ-ABOUT-BUGS. PERFORM 2000-SORT-BUGS-OUT. PERFORM 3000-TELL-US-ABOUT-BUGS. STOP RUN. 1000-READ-ABOUT-BUGS SECTION. OPEN INPUT BUG-DATA. PERFORM UNTIL BUG-DATA-EOF EQUAL 1; READ BUG-DATA NEXT RECORD INTO TEMP-BUG AT END MOVE 1 TO BUG-DATA-EOF NOT AT END PERFORM 1010-ONE-MORE-BUG; END-PERFORM. CLOSE BUG-DATA. 1010-ONE-MORE-BUG SECTION. ADD WINGSPAN OF TEMP-BUG TO TOTAL-WINGSPAN; ADD 1 TO TOTAL-BUG-SPECIES; MOVE CORRESPONDING TEMP-BUG TO SPECIES( TOTAL-BUG-SPECIES ). 2000-SORT-BUGS-OUT SECTION. PERFORM VARYING BUG-SPECIES-INDEX FROM 1 BY 1 UNTIL BUG-SPECIES-INDEX GREATER TOTAL-BUG-SPECIES; MOVE BUG-SPECIES-INDEX TO BUG-COMPARISON-INDEX; ADD 1 TO BUG-COMPARISON-INDEX; PERFORM UNTIL BUG-COMPARISON-INDEX GREATER TOTAL-BUG-SPECIES; IF WINGSPAN OF SPECIES( BUG-COMPARISON-INDEX ) GREATER WINGSPAN OF SPECIES( BUG-SPECIES-INDEX ); MOVE CORRESPONDING SPECIES( BUG-COMPARISON-INDEX ) TO TEMP-BUG; MOVE CORRESPONDING SPECIES( BUG-SPECIES-INDEX ) TO SPECIES( BUG-COMPARISON-INDEX ); MOVE CORRESPONDING TEMP-BUG TO SPECIES( BUG-SPECIES-INDEX ); END-IF; ADD 1 TO BUG-COMPARISON-INDEX; END-PERFORM; END-PERFORM. 3000-TELL-US-ABOUT-BUGS SECTION. DISPLAY "TOTAL BUG SPECIES: " TOTAL-BUG-SPECIES. DIVIDE TOTAL-BUG-SPECIES INTO TOTAL-WINGSPAN GIVING AVERAGE-WINGSPAN. DISPLAY "AVERAGE WINGSPAN: " AVERAGE-WINGSPAN. PERFORM VARYING BUG-SPECIES-INDEX FROM 1 BY 1 UNTIL BUG-SPECIES-INDEX GREATER TOTAL-BUG-SPECIES; DISPLAY NAME OF SPECIES( BUG-SPECIES-INDEX ) " HAS A WINGSPAN OF UP TO " WINGSPAN OF SPECIES( BUG-SPECIES-INDEX ) " INCHES."; END-PERFORM. END PROGRAM ACTUAL-BUG-INSTANCES.