Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

Hallo 38

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.

Hallo 37

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. 

Hallo 29

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.

Gavin Hooper HW03GH

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.

HW04YM

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.

HW04YM

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.

negetive lim cal

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.

HM03YM

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.

teste

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.

Compile and Execute COBOL Online

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY 'Jared Fishburn'.
STOP RUN.

Previous 1 ... 5 6 7 8 9 10 11 ... 67 Next
Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.