IDENTIFICATION DIVISION. PROGRAM-ID. CHAPTER9. * Program is Y2K compliant - YEAR here refers to ** * length of investment ** ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT ACCT-FILE ASSIGN TO DISK 'C09PP.DAT'. SELECT PRINT-FILE ASSIGN TO PRINTER 'C09PP.RPT'. DATA DIVISION. FILE SECTION. FD ACCT-FILE LABEL RECORDS ARE STANDARD RECORD CONTAINS 34 CHARACTERS. 01 DISK-REC. 05 ACCT-NO-IN PIC X(5). 05 NAME-IN PIC X(20). 05 PRIN-IN PIC 9(5). 05 RATE-IN PIC V99. 05 PERIOD-OF-INV-IN PIC 99. FD PRINT-FILE LABEL RECORDS ARE OMITTED RECORD CONTAINS 80 CHARACTERS. 01 PRINT-REC PIC X(80). WORKING-STORAGE SECTION. 01 ARE-THERE-MORE-RECORDS PIC XXX VALUE 'YES'. 01 WS-NEW-BALANCE PIC 9(6)V99. * Year here refers to years of investment ** * There is no adjustment necessary for Y2K compliance ** 01 YEAR PIC 9999. 01 HDR-1. 05 PIC X(40) VALUE SPACES. 05 PIC X(40) VALUE 'PRINCIPAL TABLE'. 01 HDR-2. 05 PIC X(10) VALUE SPACES. 05 PIC X(10) VALUE 'ACCT NO'. 05 ACCT-OUT PIC 9(5). 01 HDR-3. 05 PIC X(10) VALUE SPACES. 05 PIC X(15) VALUE 'DEPOSITOR NAME'. 05 NAME-OUT PIC X(20). 01 HDR-4. 05 PIC X(10) VALUE SPACES. 05 PIC X(10) VALUE 'PRINCIPAL'. 05 PRINCIPAL-OUT PIC $ZZ,ZZZ. 01 HDR-5. 05 PIC X(10) VALUE SPACES. 05 PIC X(5) VALUE 'RATE'. 05 RATE-OUT PIC .99. 01 HDR-6. 05 PIC X(10) VALUE SPACES. 05 PIC X(12) VALUE 'NO OF YEARS'. 05 PERIOD-OUT PIC Z9. 01 COLUMN-HEADINGS. 05 PIC X(27) VALUE SPACES. 05 PIC X(13) VALUE 'YEAR'. 05 PIC X(20) VALUE 'NEW BALANCE'. 05 PIC X(20) VALUE 'ACCRUED INTEREST'. 01 DETAIL-LINE. 05 PIC X(28) VALUE SPACES. 05 YEAR-OUT PIC Z9. 05 PIC X(10) VALUE SPACES. 05 NEW-BALANCE-OUT PIC $ZZZ,ZZZ.99. 05 PIC X(9) VALUE SPACES. 05 ACCRUED-INTEREST-OUT PIC $ZZ,ZZZ.99. PROCEDURE DIVISION. 100-MAIN-MODULE. PERFORM 100-INITIALIZATION-MODULE PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO ' READ ACCT-FILE AT END MOVE 'NO ' TO ARE-THERE-MORE-RECORDS NOT AT END PERFORM 300-CALC-MODULE END-READ END-PERFORM PERFORM 900-TERMINATION-MODULE STOP RUN. 100-INITIALIZATION-MODULE. OPEN INPUT ACCT-FILE OUTPUT PRINT-FILE. 300-CALC-MODULE. PERFORM 700-HDR-MODULE PERFORM 400-COMPUTE-INTEREST VARYING YEAR FROM 1 BY 1 UNTIL YEAR > PERIOD-OF-INV-IN. 400-COMPUTE-INTEREST. MOVE YEAR TO YEAR-OUT COMPUTE WS-NEW-BALANCE = PRIN-IN * (1 + RATE-IN) ** YEAR MOVE WS-NEW-BALANCE TO NEW-BALANCE-OUT SUBTRACT PRIN-IN FROM WS-NEW-BALANCE GIVING ACCRUED-INTEREST-OUT WRITE PRINT-REC FROM DETAIL-LINE AFTER ADVANCING 2 LINES. 700-HDR-MODULE. WRITE PRINT-REC FROM HDR-1 AFTER ADVANCING PAGE MOVE ACCT-NO-IN TO ACCT-OUT MOVE NAME-IN TO NAME-OUT MOVE PRIN-IN TO PRINCIPAL-OUT MOVE RATE-IN TO RATE-OUT MOVE PERIOD-OF-INV-IN TO PERIOD-OUT WRITE PRINT-REC FROM HDR-2 AFTER ADVANCING 3 LINES WRITE PRINT-REC FROM HDR-3 AFTER ADVANCING 2 LINES WRITE PRINT-REC FROM HDR-4 AFTER ADVANCING 2 LINES WRITE PRINT-REC FROM HDR-5 AFTER ADVANCING 2 LINES WRITE PRINT-REC FROM HDR-6 AFTER ADVANCING 2 LINES WRITE PRINT-REC FROM COLUMN-HEADINGS AFTER ADVANCING 2 LINES. 900-TERMINATION-MODULE. CLOSE ACCT-FILE PRINT-FILE.