IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STUDENT ASSIGN TO 'input.txt' ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD STUDENT. 01 STUDENT-FILE. 05 STUDENT-ID PIC 9(5). 05 NAME PIC A(25). WORKING-STORAGE SECTION. 01 WS-STUDENT. 05 WS-STUDENT-ID PIC 9(5). 05 WS-NAME PIC A(25). 01 WS-EOF PIC A(1). PROCEDURE DIVISION. OPEN INPUT STUDENT. PERFORM UNTIL WS-EOF='Y' READ STUDENT INTO WS-STUDENT AT END MOVE 'Y' TO WS-EOF NOT AT END DISPLAY WS-STUDENT END-READ END-PERFORM. CLOSE STUDENT. STOP RUN.
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TABLE. 05 WS-RECORD OCCURS 10 TIMES ASCENDING KEY IS WS-NUM INDEXED BY I. 10 WS-NUM PIC 9(2). 10 WS-NAME PIC A(3). PROCEDURE DIVISION. MOVE '12ABC56DEF34GHI78JKL93MNO11PQR' TO WS-TABLE. SEARCH ALL WS-RECORD AT END DISPLAY 'RECORD NOT FOUND' WHEN WS-NUM(I) = 93 DISPLAY 'RECORD FOUND ' DISPLAY WS-NUM(I) DISPLAY WS-NAME(I) END-SEARCH.
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-STRING PIC A(30). 01 WS-STR1 PIC A(15) VALUE 'Tutorialspoint'. 01 WS-STR2 PIC A(7) VALUE 'Welcome'. 01 WS-STR3 PIC A(7) VALUE 'To AND'. 01 WS-COUNT PIC 99 VALUE 1. PROCEDURE DIVISION. STRING WS-STR2 DELIMITED BY SIZE WS-STR3 DELIMITED BY SPACE WS-STR1 DELIMITED BY SIZE INTO WS-STRING WITH POINTER WS-COUNT ON OVERFLOW DISPLAY 'OVERFLOW!' END-STRING. DISPLAY 'WS-STRING : 'WS-STRING. DISPLAY 'WS-COUNT : 'WS-COUNT. STOP RUN.
IDENTIFICATION DIVISION. PROGRAM-ID. HW03GH. DATA DIVISION. WORKING-STORAGE SECTION. 01 EMPLOYEE-RECORD-IN. 05 EMP-PAY-DATE-IN. 10 EMP-PAY-YY PIC X(02). 10 EMP-PAY-MM PIC X(02). 10 EMP-PAY-DD PIC X(02). 05 EMP-NUMBER PIC X(03). 05 EMP-NAME. 10 EMP-LAST-NAME PIC X(15). 10 EMP-FIRST-NAME PIC X(10). 05 HOURS-WORKED PIC 99V99. 05 PAY-RATE PIC 99V99. 05 EMP-PAY-TYPE PIC X. 88 HOURLY-PAY VALUE 'H'. 88 SALARY-PAY VALUE 'S'. 05 EMP-POSITION PIC X. 88 PROGRAMMER VALUE 'P'. 88 ACCOUNTANT VALUE 'A'. 88 MANAGER VALUE 'M'. 88 INTERN VALUE 'I'. 88 TESTER VALUE 'T'. 05 EMP-GROSS-OUT PIC 9(04)V99. 05 EMP-OVERTIME-HOURS-OUT PIC 9(02). 05 EMP-OVERTIME-OUT PIC 9(04)V99. 05 EMP-TAXES-OUT PIC 9(04)V99. 05 EMP-NET-OUT PIC 9(04)V99. 05 FILLER PIC X(10). 01 EMP-TAX-RATE PIC V99 VALUE '32'. 01 EMPLOYEE-PAY-TOTALS. 05 EMP-GROSS-PAY PIC 9(04)V99. 05 EMP-NET-PAY PIC 9(04)V99. 05 EMP-TAXES PIC 9(04)V99. PROCEDURE DIVISION. DISPLAY 'PAYROLL HW03GH FOR GAVIN HOOPER'. DISPLAY '--'. ACCEPT EMPLOYEE-RECORD-IN. DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. COMPUTE EMP-GROSS-PAY= HOURS-WORKED * PAY-RATE DISPLAY ' GROSS PAY: 'EMP-GROSS-PAY. COMPUTE EMP-TAXES= EMP-GROSS-PAY * EMP-TAX-RATE DISPLAY ' TAXES : 'EMP-TAXES. COMPUTE EMP-NET-PAY= EMP-GROSS-PAY - EMP-TAXES DISPLAY ' NET PAY : 'EMP-NET-PAY. DISPLAY '--'. ACCEPT EMPLOYEE-RECORD-IN. DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. COMPUTE EMP-GROSS-PAY= HOURS-WORKED * PAY-RATE DISPLAY ' GROSS PAY: 'EMP-GROSS-PAY. COMPUTE EMP-TAXES= EMP-GROSS-PAY * EMP-TAX-RATE DISPLAY ' TAXES : 'EMP-TAXES. COMPUTE EMP-NET-PAY= EMP-GROSS-PAY - EMP-TAXES DISPLAY ' NET PAY : 'EMP-NET-PAY. DISPLAY '--'. DISPLAY 'FILE TOTALS:'. DISPLAY ' RECORDS : ' DISPLAY ' GROSS : ' DISPLAY ' TAXES : ' DISPLAY ' NET : ' DISPLAY '--'. DISPLAY 'END OF PROGRAM FOR GAVIN HOOPER'. STOP RUN.
IDENTIFICATION DIVISION. PROGRAM-ID. HW04YM. AUTHOR. YIMENG MA DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TODAYS-DATE-6. 10 WS-TODAYS-DATE-6-YY PIC X(02). 10 WS-TODAYS-DATE-6-MM PIC X(02). 10 WS-TODAYS-DATE-6-DD PIC X(02). 01 EMPLOYEE-RECORD-IN. 05 EMP-PAY-DATE-IN. 10 EMP-PAY-YY PIC X(02). 10 EMP-PAY-MM PIC X(02). 10 EMP-PAY-DD PIC X(02). 05 EMP-NUMBER PIC X(03). 05 EMP-NAME. 10 EMP-LAST-NAME PIC X(15). 10 EMP-FIRST-NAME PIC X(10). 05 HOURS-WORKED PIC 99V99. 05 PAY-RATE PIC 99V99. 05 EMP-PAY-TYPE PIC X. 88 HOURLY-PAY VALUE 'H'. 88 SALARY-PAY VALUE 'S'. 05 EMP-POSITION PIC X. 88 PROGRAMMER VALUE 'P'. 88 ACCOUNTANT VALUE 'A'. 88 MANAGER VALUE 'M'. 88 INTERN VALUE 'I'. 88 TESTER VALUE 'T'. 05 EMP-GROSS-OUT PIC 9(04)V99. 05 EMP-OVERTIME-HOURS-OUT PIC 9(02). 05 EMP-OVERTIME-OUT PIC 9(04)V99. 05 EMP-TAXES-OUT PIC 9(04)V99. 05 EMP-NET-OUT PIC 9(04)V99. 05 FILLER PIC X(10). 01 EMP-TAX-RATE PIC V99 VALUE .32. 01 EMP-POSITION-TITLE PIC X(18). 01 EMPLOYEE-PAY-TOTALS. 05 EMP-GROSS-PAY PIC 9(04)V99. 05 EMP-NET-PAY PIC 9(04)V99. 05 EMP-TAXES PIC 9(04)V99. 05 EMP-OVERTIME-HOURS PIC 9(02)V99. 05 EMP-OVERTIME-PAY PIC 9(03)V99. 01 PROGRAM-TOTALS. 05 PROGRAM-GROSS-PAY PIC 9(04)V99. 05 PROGRAM-NET-PAY PIC 9(04)V99. 05 PROGRAM-TAXES PIC 9(04)V99. 05 PROGRAM-RECORD-COUNT PIC 9(01). 05 PROGRAM-HOURS-WORKED PIC 9(04)V99. 05 PROGRAM-AVERAGE-GROSS PIC 9(04)V99. 05 PROGRAM-AVERAGE-NET PIC 9(04)V99. 05 PROGRAM-OVERTIME-HOURS PIC 9(02)V99. 05 PROGRAM-OVERTIME-PAY PIC 9(03)V99. 01 WS-DATE-IN PIC 9(08). PROCEDURE DIVISION. DISPLAY 'PAYROLL HW04YM FOR YIMENG MA'. ACCEPT WS-TODAYS-DATE-6 DISPLAY 'PROGRAM BEGINS : ' WS-TODAYS-DATE-6-MM '/' WS-TODAYS-DATE-6-DD '/' WS-TODAYS-DATE-6-YY DISPLAY '--'. ACCEPT EMPLOYEE-RECORD-IN. IF HOURS-WORKED > 40 COMPUTE EMP-OVERTIME-HOURS = HOURS-WORKED - 40. COMPUTE EMP-OVERTIME-PAY = 1.5 * PAY-RATE * EMP-OVERTIME-HOURS IF EMP-PAY-TYPE = 'S' COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE ELSE IF HOURS-WORKED < 40 COMPUTE EMP-GROSS-PAY = HOURS-WORKED * PAY-RATE ELSE COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE + EMP-OVERTIME-PAY COMPUTE EMP-TAXES = EMP-GROSS-PAY * EMP-TAX-RATE. COMPUTE EMP-NET-PAY = EMP-GROSS-PAY - EMP-TAXES. IF EMP-POSITION = 'P' MOVE 'PROGRAMMER' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'A' MOVE 'ACCOUNTANT' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'M' MOVE 'MANAGER' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'I' MOVE 'INTERN' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'T' MOVE 'TESTER' TO EMP-POSITION-TITLE ELSE MOVE 'UNDEFINED POSITION' TO EMP-POSITION-TITLE. COMPUTE PROGRAM-RECORD-COUNT = PROGRAM-RECORD-COUNT + 1 COMPUTE PROGRAM-HOURS-WORKED = PROGRAM-HOURS-WORKED + HOURS-WORKED COMPUTE PROGRAM-GROSS-PAY = PROGRAM-GROSS-PAY + EMP-GROSS-PAY COMPUTE PROGRAM-TAXES = PROGRAM-TAXES + EMP-TAXES COMPUTE PROGRAM-NET-PAY = PROGRAM-NET-PAY + EMP-NET-PAY COMPUTE PROGRAM-OVERTIME-HOURS = PROGRAM-OVERTIME-HOURS + EMP-OVERTIME-HOURS COMPUTE PROGRAM-OVERTIME-PAY = PROGRAM-OVERTIME-PAY + EMP-OVERTIME-PAY DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' TITLE : ' EMP-POSITION-TITLE. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. DISPLAY ' GROSS PAY: ' EMP-GROSS-PAY. DISPLAY ' OT PAY : ' EMP-OVERTIME-PAY. DISPLAY ' OT HOURS : ' EMP-OVERTIME-HOURS. DISPLAY ' TAXES : ' EMP-TAXES. DISPLAY ' NET PAY : ' EMP-NET-PAY. DISPLAY '--'. ACCEPT EMPLOYEE-RECORD-IN. IF HOURS-WORKED > 40 COMPUTE EMP-OVERTIME-HOURS = HOURS-WORKED - 40. COMPUTE EMP-OVERTIME-PAY = 1.5 * PAY-RATE * EMP-OVERTIME-HOURS IF EMP-PAY-TYPE = 'S' COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE ELSE IF HOURS-WORKED < 40 COMPUTE EMP-GROSS-PAY = HOURS-WORKED * PAY-RATE ELSE COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE + EMP-OVERTIME-PAY COMPUTE EMP-TAXES = EMP-GROSS-PAY * EMP-TAX-RATE. COMPUTE EMP-NET-PAY = EMP-GROSS-PAY - EMP-TAXES. IF EMP-POSITION = 'P' MOVE 'PROGRAMMER' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'A' MOVE 'ACCOUNTANT' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'M' MOVE 'MANAGER' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'I' MOVE 'INTERN' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'T' MOVE 'TESTER' TO EMP-POSITION-TITLE ELSE MOVE 'UNDEFINED POSITION' TO EMP-POSITION-TITLE. DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' TITLE : ' EMP-POSITION-TITLE. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. DISPLAY ' GROSS PAY: ' EMP-GROSS-PAY. DISPLAY ' OT PAY : ' EMP-OVERTIME-PAY. DISPLAY ' OT HOURS : ' EMP-OVERTIME-HOURS. DISPLAY ' TAXES : ' EMP-TAXES. DISPLAY ' NET PAY : ' EMP-NET-PAY. DISPLAY '--'. COMPUTE PROGRAM-RECORD-COUNT = PROGRAM-RECORD-COUNT + 1 COMPUTE PROGRAM-HOURS-WORKED = PROGRAM-HOURS-WORKED + HOURS-WORKED COMPUTE PROGRAM-GROSS-PAY = PROGRAM-GROSS-PAY + EMP-GROSS-PAY COMPUTE PROGRAM-TAXES = PROGRAM-TAXES + EMP-TAXES COMPUTE PROGRAM-NET-PAY = PROGRAM-NET-PAY + EMP-NET-PAY COMPUTE PROGRAM-OVERTIME-HOURS = PROGRAM-OVERTIME-HOURS + EMP-OVERTIME-HOURS COMPUTE PROGRAM-OVERTIME-PAY = PROGRAM-OVERTIME-PAY + EMP-OVERTIME-PAY COMPUTE PROGRAM-AVERAGE-GROSS = PROGRAM-GROSS-PAY / 2 COMPUTE PROGRAM-AVERAGE-NET = PROGRAM-NET-PAY /2 DISPLAY 'FILE TOTALS:'. DISPLAY ' RECORDS : ' PROGRAM-RECORD-COUNT. DISPLAY ' HOURS : ' PROGRAM-HOURS-WORKED. DISPLAY ' GROSS : ' PROGRAM-GROSS-PAY. DISPLAY ' TAXES : ' PROGRAM-TAXES. DISPLAY ' NET : ' PROGRAM-NET-PAY. DISPLAY ' OT HOURS : ' PROGRAM-OVERTIME-HOURS. DISPLAY ' OT PAY : ' PROGRAM-OVERTIME-PAY. DISPLAY 'AVERAGE GROSS: ' PROGRAM-AVERAGE-GROSS. DISPLAY ' AVERAGE NET: ' PROGRAM-AVERAGE-NET. DISPLAY '--'. DISPLAY '--'. DISPLAY 'END OF PROGRAM FOR FIRSTNAME LASTNAME'. STOP RUN.
IDENTIFICATION DIVISION. PROGRAM-ID. HW04YM. AUTHOR. YIMENG MA DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TODAYS-DATE-6. 10 WS-TODAYS-DATE-6-YY PIC X(02). 10 WS-TODAYS-DATE-6-MM PIC X(02). 10 WS-TODAYS-DATE-6-DD PIC X(02). 01 EMPLOYEE-RECORD-IN. 05 EMP-PAY-DATE-IN. 10 EMP-PAY-YY PIC X(02). 10 EMP-PAY-MM PIC X(02). 10 EMP-PAY-DD PIC X(02). 05 EMP-NUMBER PIC X(03). 05 EMP-NAME. 10 EMP-LAST-NAME PIC X(15). 10 EMP-FIRST-NAME PIC X(10). 05 HOURS-WORKED PIC 99V99. 05 PAY-RATE PIC 99V99. 05 EMP-PAY-TYPE PIC X. 88 HOURLY-PAY VALUE 'H'. 88 SALARY-PAY VALUE 'S'. 05 EMP-POSITION PIC X. 88 PROGRAMMER VALUE 'P'. 88 ACCOUNTANT VALUE 'A'. 88 MANAGER VALUE 'M'. 88 INTERN VALUE 'I'. 88 TESTER VALUE 'T'. 05 EMP-GROSS-OUT PIC 9(04)V99. 05 EMP-OVERTIME-HOURS-OUT PIC 9(02). 05 EMP-OVERTIME-OUT PIC 9(04)V99. 05 EMP-TAXES-OUT PIC 9(04)V99. 05 EMP-NET-OUT PIC 9(04)V99. 05 FILLER PIC X(10). 01 EMP-TAX-RATE PIC V99 VALUE .32. 01 EMP-POSITION-TITLE PIC X(18). 01 EMPLOYEE-PAY-TOTALS. 05 EMP-GROSS-PAY PIC 9(04)V99. 05 EMP-NET-PAY PIC 9(04)V99. 05 EMP-TAXES PIC 9(04)V99. 05 EMP-OVERTIME-HOURS PIC 9(02)V99. 05 EMP-OVERTIME-PAY PIC 9(03)V99. 01 PROGRAM-TOTALS. 05 PROGRAM-GROSS-PAY PIC 9(04)V99. 05 PROGRAM-NET-PAY PIC 9(04)V99. 05 PROGRAM-TAXES PIC 9(04)V99. 05 PROGRAM-RECORD-COUNT PIC 9(01). 05 PROGRAM-HOURS-WORKED PIC 9(04)V99. 05 PROGRAM-AVERAGE-GROSS PIC 9(04)V99. 05 PROGRAM-AVERAGE-NET PIC 9(04)V99. 05 PROGRAM-OVERTIME-HOURS PIC 9(02)V99. 05 PROGRAM-OVERTIME-PAY PIC 9(03)V99. 01 WS-DATE-IN PIC 9(08). PROCEDURE DIVISION. DISPLAY 'PAYROLL HW04YM FOR YIMENG MA'. ACCEPT WS-TODAYS-DATE-6 DISPLAY 'PROGRAM BEGINS : ' WS-TODAYS-DATE-6-MM '/' WS-TODAYS-DATE-6-DD '/' WS-TODAYS-DATE-6-YY DISPLAY '--'. ACCEPT EMPLOYEE-RECORD-IN. IF HOURS-WORKED > 40 COMPUTE EMP-OVERTIME-HOURS = HOURS-WORKED - 40. COMPUTE EMP-OVERTIME-PAY = 1.5 * PAY-RATE * EMP-OVERTIME-HOURS IF EMP-PAY-TYPE = 'S' COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE ELSE IF HOURS-WORKED < 40 COMPUTE EMP-GROSS-PAY = HOURS-WORKED * PAY-RATE ELSE COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE + EMP-OVERTIME-PAY COMPUTE EMP-TAXES = EMP-GROSS-PAY * EMP-TAX-RATE. COMPUTE EMP-NET-PAY = EMP-GROSS-PAY - EMP-TAXES. IF EMP-POSITION = 'P' MOVE 'PROGRAMMER' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'A' MOVE 'ACCOUNTANT' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'M' MOVE 'MANAGER' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'I' MOVE 'INTERN' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'T' MOVE 'TESTER' TO EMP-POSITION-TITLE ELSE MOVE 'UNDEFINED POSITION' TO EMP-POSITION-TITLE. COMPUTE PROGRAM-RECORD-COUNT = PROGRAM-RECORD-COUNT + 1 COMPUTE PROGRAM-HOURS-WORKED = PROGRAM-HOURS-WORKED + HOURS-WORKED COMPUTE PROGRAM-GROSS-PAY = PROGRAM-GROSS-PAY + EMP-GROSS-PAY COMPUTE PROGRAM-TAXES = PROGRAM-TAXES + EMP-TAXES COMPUTE PROGRAM-NET-PAY = PROGRAM-NET-PAY + EMP-NET-PAY COMPUTE PROGRAM-OVERTIME-HOURS = PROGRAM-OVERTIME-HOURS + EMP-OVERTIME-HOURS COMPUTE PROGRAM-OVERTIME-PAY = PROGRAM-OVERTIME-PAY + EMP-OVERTIME-PAY DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' TITLE : ' EMP-POSITION-TITLE. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. DISPLAY ' GROSS PAY: ' EMP-GROSS-PAY. DISPLAY ' OT PAY : ' EMP-OVERTIME-PAY. DISPLAY ' OT HOURS : ' EMP-OVERTIME-HOURS. DISPLAY ' TAXES : ' EMP-TAXES. DISPLAY ' NET PAY : ' EMP-NET-PAY. DISPLAY '--'. ACCEPT EMPLOYEE-RECORD-IN. IF HOURS-WORKED > 40 COMPUTE EMP-OVERTIME-HOURS = HOURS-WORKED - 40. COMPUTE EMP-OVERTIME-PAY = 1.5 * PAY-RATE * EMP-OVERTIME-HOURS IF EMP-PAY-TYPE = 'S' COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE ELSE IF HOURS-WORKED < 40 COMPUTE EMP-GROSS-PAY = HOURS-WORKED * PAY-RATE ELSE COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE + EMP-OVERTIME-PAY COMPUTE EMP-TAXES = EMP-GROSS-PAY * EMP-TAX-RATE. COMPUTE EMP-NET-PAY = EMP-GROSS-PAY - EMP-TAXES. IF EMP-POSITION = 'P' MOVE 'PROGRAMMER' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'A' MOVE 'ACCOUNTANT' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'M' MOVE 'MANAGER' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'I' MOVE 'INTERN' TO EMP-POSITION-TITLE ELSE IF EMP-POSITION = 'T' MOVE 'TESTER' TO EMP-POSITION-TITLE ELSE MOVE 'UNDEFINED POSITION' TO EMP-POSITION-TITLE. DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' TITLE : ' EMP-POSITION-TITLE. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. DISPLAY ' GROSS PAY: ' EMP-GROSS-PAY. DISPLAY ' OT PAY : ' EMP-OVERTIME-PAY. DISPLAY ' OT HOURS : ' EMP-OVERTIME-HOURS. DISPLAY ' TAXES : ' EMP-TAXES. DISPLAY ' NET PAY : ' EMP-NET-PAY. DISPLAY '--'. COMPUTE PROGRAM-RECORD-COUNT = PROGRAM-RECORD-COUNT + 1 COMPUTE PROGRAM-HOURS-WORKED = PROGRAM-HOURS-WORKED + HOURS-WORKED COMPUTE PROGRAM-GROSS-PAY = PROGRAM-GROSS-PAY + EMP-GROSS-PAY COMPUTE PROGRAM-TAXES = PROGRAM-TAXES + EMP-TAXES COMPUTE PROGRAM-NET-PAY = PROGRAM-NET-PAY + EMP-NET-PAY COMPUTE PROGRAM-OVERTIME-HOURS = PROGRAM-OVERTIME-HOURS + EMP-OVERTIME-HOURS COMPUTE PROGRAM-OVERTIME-PAY = PROGRAM-OVERTIME-PAY + EMP-OVERTIME-PAY COMPUTE PROGRAM-AVERAGE-GROSS = PROGRAM-GROSS-PAY / 2 COMPUTE PROGRAM-AVERAGE-NET = PROGRAM-NET-PAY /2 DISPLAY 'FILE TOTALS:'. DISPLAY ' RECORDS : ' PROGRAM-RECORD-COUNT. DISPLAY ' HOURS : ' PROGRAM-HOURS-WORKED. DISPLAY ' GROSS : ' PROGRAM-GROSS-PAY. DISPLAY ' TAXES : ' PROGRAM-TAXES. DISPLAY ' NET : ' PROGRAM-NET-PAY. DISPLAY ' OT HOURS : ' PROGRAM-OVERTIME-HOURS. DISPLAY ' OT PAY : ' PROGRAM-OVERTIME-PAY. DISPLAY 'AVERAGE GROSS: ' PROGRAM-AVERAGE-GROSS. DISPLAY ' AVERAGE NET: ' PROGRAM-AVERAGE-NET. DISPLAY '--'. DISPLAY '--'. DISPLAY 'END OF PROGRAM FOR FIRSTNAME LASTNAME'. STOP RUN.
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. ENVIRONMENT DIVISION. configuration section. DATA DIVISION. working-storage section. 01 C81004-RBO-BALANCE-AMOUNT PIC s9(04) value 8726. 01 WS-ACCOUNT-BALANCE-DELTA PIC s9(04) value 0000. 01 WS-ACCOUNT-BALANCE PIC s9(4) value 8476. PROCEDURE DIVISION. SUBTRACT C81004-RBO-BALANCE-AMOUNT FROM WS-ACCOUNT-BALANCE-DELTA DISPLAY 'C81004-RBO-BALANCE-AMOUNT: ' C81004-RBO-BALANCE-AMOUNT DISPLAY 'WS-ACCOUNT-BALANCE-DELTA: ' WS-ACCOUNT-BALANCE-DELTA ADD WS-ACCOUNT-BALANCE TO WS-ACCOUNT-BALANCE-DELTA DISPLAY ' ' DISPLAY 'WS-ACCOUNT-BALANCE: ' WS-ACCOUNT-BALANCE DISPLAY 'WS-ACCOUNT-BALANCE-DELTA: ' WS-ACCOUNT-BALANCE-DELTA STOP RUN.
IDENTIFICATION DIVISION. PROGRAM-ID. HW03YM. AUTHOR. YIMENG MA DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TODAYS-DATE-6. 10 WS-TODAYS-DATE-6-YY PIC X(02). 10 WS-TODAYS-DATE-6-MM PIC X(02). 10 WS-TODAYS-DATE-6-DD PIC X(02). 01 EMPLOYEE-RECORD-IN. 05 EMP-PAY-DATE-IN. 10 EMP-PAY-YY PIC X(02). 10 EMP-PAY-MM PIC X(02). 10 EMP-PAY-DD PIC X(02). 05 EMP-NUMBER PIC X(03). 05 EMP-NAME. 10 EMP-LAST-NAME PIC X(15). 10 EMP-FIRST-NAME PIC X(10). 05 HOURS-WORKED PIC 99V99. 05 PAY-RATE PIC 99V99. 05 EMP-PAY-TYPE PIC X. 88 HOURLY-PAY VALUE 'H'. 88 SALARY-PAY VALUE 'S'. 05 EMP-POSITION PIC X. 88 PROGRAMMER VALUE 'P'. 88 ACCOUNTANT VALUE 'A'. 88 MANAGER VALUE 'M'. 88 INTERN VALUE 'I'. 88 TESTER VALUE 'T'. 05 EMP-GROSS-OUT PIC 9(04)V99. 05 EMP-OVERTIME-HOURS-OUT PIC 9(02). 05 EMP-OVERTIME-OUT PIC 9(04)V99. 05 EMP-TAXES-OUT PIC 9(04)V99. 05 EMP-NET-OUT PIC 9(04)V99. 05 FILLER PIC X(10). 01 EMP-TAX-RATE PIC V99. 01 EMPLOYEE-PAY-TOTALS. 05 EMP-GROSS-PAY PIC 9(04)V99. 05 EMP-NET-PAY PIC 9(04)V99. 05 EMP-TAXES PIC 9(04)V99. 01 PROGRAM-TOTALS. 05 FILE-RECORD PIC 9(02). 05 TOTAL-GROSS-PAY PIC 9(04)V99. 05 TOTAL-TAXES PIC 9(04)V99. 05 TOTAL-NET-PAY PIC 9(04)V99. PROCEDURE DIVISION. DISPLAY 'PAYROLL HW03YM FOR YIMENG MA'. ACCEPT WS-TODAYS-DATE-6 DISPLAY 'PROGRAM BEGINS : ' WS-TODAYS-DATE-6-MM '/' WS-TODAYS-DATE-6-DD '/' WS-TODAYS-DATE-6-YY SET EMP-TAX-RATE TO .32 ACCEPT EMPLOYEE-RECORD-IN. COMPUTE EMP-GROSS-PAY = HOURS-WORKED * PAY-RATE. COMPUTE EMP-TAXES = EMP-GROSS-PAY * EMP-TAX-RATE. COMPUTE EMP-NET-PAY = EMP-GROSS-PAY - EMP-TAXES. COMPUTE FILE-RECORD = FILE-RECORD + 1 DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. DISPLAY ' GROSS PAY: ' EMP-GROSS-PAY. DISPLAY ' TAXES : ' EMP-TAXES. DISPLAY ' NET PAY : ' EMP-NET-PAY. DISPLAY '--'. ACCEPT EMPLOYEE-RECORD-IN. COMPUTE EMP-GROSS-PAY = HOURS-WORKED * PAY-RATE. COMPUTE EMP-TAXES = EMP-GROSS-PAY * EMP-TAX-RATE. COMPUTE EMP-NET-PAY = EMP-GROSS-PAY - EMP-TAXES. COMPUTE FILE-RECORD = FILE-RECORD + 1 DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. DISPLAY ' GROSS PAY: ' EMP-GROSS-PAY. DISPLAY ' TAXES : ' EMP-TAXES. DISPLAY ' NET PAY : ' EMP-NET-PAY. DISPLAY '--'. COMPUTE TOTAL-GROSS-PAY = EMP-GROSS-PAY + EMP-GROSS-PAY. COMPUTE TOTAL-TAXES = EMP-TAXES + EMP-TAXES. COMPUTE TOTAL-NET-PAY = EMP-NET-PAY + EMP-NET-PAY. DISPLAY 'FILE TOTALS:'. DISPLAY ' RECORDS : ' FILE-RECORD DISPLAY ' GROSS : ' TOTAL-GROSS-PAY. DISPLAY ' TAXES : ' TOTAL-TAXES. DISPLAY ' NET : ' TOTAL-NET-PAY. DISPLAY '--'. DISPLAY 'END OF PROGRAM FOR YIMENG MA'. STOP RUN.
IDENTIFICATION DIVISION. PROGRAM-ID. DATAS. DATA DIVISION. WORKING-STORAGE SECTION. 01 CABEC1. 05 FILLER PIC X(15) VALUE ALL '-'. 05 CABEC11 PIC X(38) VALUE 'TREINAMENTO EM COBOL – EXERCICIO 15 '. 01 HORA. 05 WK-HORA PIC 9(08) VALUE ZEROS. 05 FILLER REDEFINES WK-HORA. 10 WK-HORAS PIC 9(02). 10 WK-MINUTOS PIC 9(02). 10 WK-SEGUNDOS PIC 9(02). 01 DATACORRENTE. 05 WK-DATACORRENTE PIC 9(08) VALUE ZEROS. 05 FILLER REDEFINES WK-DATACORRENTE. 10 WK-ANO PIC 9(04). 10 WK-MES PIC 9(02). 10 WK-DIA PIC 9(02). 77 WK-FUSO PIC 9(01) VALUE 2. 01 DATARECEBIDA. 05 WK-DATARECEBIDA PIC 9(08) VALUE ZEROS. 05 FILLER REDEFINES WK-DATARECEBIDA. 10 WK-DIARECEBIDO PIC 9(02). 10 WK-MESRECEBIDO PIC 9(02). 10 WK-ANORECEBEIDO PIC 9(04). 01 TABELA. 05 WK-TABELAINTERNA OCCURS 5 TIMES. 10 WK-OCORRENCIA PIC 9(03). PROCEDURE DIVISION. ACCEPT WK-DATACORRENTE FROM DATE YYYYMMDD. ACCEPT WK-HORA FROM TIME. SUBTRACT WK-FUSO FROM WK-HORAS. DISPLAY CABEC1 ' ' WK-DIA'/'WK-MES'/'WK-ANO ' ' WK-HORAS':'WK-MINUTOS':'WK-SEGUNDOS. PAR-A. PERFORM UNTIL DATARECEBIDA EQUAL SPACES ACCEPT DATARECEBIDA IF WK-DIARECEBIDO GREATER OR EQUAL 1 AND LESS 15 AND WK-MESRECEBIDO LESS OR EQUAL 3 ADD 1 TO WK-OCORRENCIA(1) GO TO PAR-A END-IF IF WK-DIARECEBIDO GREATER OR EQUAL 1 AND LESS 27 AND WK-MESRECEBIDO LESS OR EQUAL 5 ADD 1 TO WK-OCORRENCIA(2) GO TO PAR-A END-IF IF WK-DIARECEBIDO GREATER OR EQUAL 1 AND LESS 8 AND WK-MESRECEBIDO LESS OR EQUAL 8 ADD 1 TO WK-OCORRENCIA(3) GO TO PAR-A END-IF IF WK-DIARECEBIDO GREATER OR EQUAL 1 AND LESS 20 AND WK-MESRECEBIDO LESS OR EQUAL 10 ADD 1 TO WK-OCORRENCIA(4) GO TO PAR-A END-IF IF WK-DIARECEBIDO GREATER OR EQUAL 1 AND LESS 32 AND WK-MESRECEBIDO LESS OR EQUAL 12 ADD 1 TO WK-OCORRENCIA(5) GO TO PAR-A END-IF END-PERFORM. DISPLAY 'QTDE DATAS DA PRIMEIRA QUINTA PARTE DO ANO = 'WK-OCORRENCIA(1). DISPLAY 'QTDE DATAS DA SEGUNDA QUINTA PARTE DO ANO = 'WK-OCORRENCIA(2). DISPLAY 'QTDE DATAS DA TERCEIRA QUINTA PARTE DO ANO = 'WK-OCORRENCIA(3). DISPLAY 'QTDE DATAS DA QUARTA QUINTA PARTE DO ANO = 'WK-OCORRENCIA(4). DISPLAY 'QTDE DATAS DA QUINTA QUINTA PARTE DO ANO = 'WK-OCORRENCIA(5). STOP RUN.
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Jared Fishburn'. STOP RUN.
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy. Accept Learn more