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

Brian Hamil HW04BH

IDENTIFICATION DIVISION.
PROGRAM-ID. HW04BH.
AUTHOR. Brian Hamil.
DATE-WRITTEN. 1/30/19.
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', 'p'.
       88 ACCOUNTANT            VALUE 'A', 'a'.
       88 MANAGER               VALUE 'M', 'm'.
       88 INTERN                VALUE 'I', 'i'.
       88 TESTER                VALUE 'T', 't'.

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.
    05  EMP-OVERTIME-RATE       PIC 9(02)V99.
    05  EMP-OVERTIME-PAY        PIC 9(04)V99.

01  PROGRAM-TOTALS.    
    05 LOOP-COUNTER             PIC 9(05) VALUE 0.
    05 RECORD-LEN               PIC 9(05).
    05 TOTAL-GROSS-PAY          PIC 9(05)V99.
    05 TOTAL-NET-PAY            PIC 9(05)V99.
    05 TOTAL-TAXES              PIC 9(05)V99.
    05 TOTAL-HOURS-S            PIC 9(03)V99.
    05 TOTAL-HOURS-H            PIC 9(03)V99.
    05 TOTAL-HOURS              PIC 9(03)V99.
    05 SYS-DATE.
        10 SYS-YEAR             PIC 9(04).
        10 SYS-MONTH            PIC 9(02).
        10 SYS-DAY              PIC 9(02).
    05 AVERAGE-GROSS-PAY        PIC 9(05)V99.
    05 AVERAGE-TAXES            PIC 9(05)V99.
    05 AVERAGE-NET-PAY          PIC 9(05)V99.
    05 TEMP                     PIC 9(05).
    05 OVERTIME-HOURS           PIC 9(03)V99.
    05 OVERTIME-HOURLY          PIC 9(03)V99.
    05 OVERTIME-SALARY          PIC 9(03)V99.
    05 TOTAL-OVERTIME           PIC 9(03)V99.
    05 OVERTIME-PAY             PIC 9(04)V99.

PROCEDURE DIVISION.
    DISPLAY 'PAYROLL HW04BH FOR Brian Hamil.'.
    DISPLAY '   --  BEGINNING OF RECORDS    --'.
    DISPLAY '--'.
    ACCEPT RECORD-LEN.
    
    IF RECORD-LEN < 1
        ADD 2 TO RECORD-LEN.
    
    PERFORM UNTIL LOOP-COUNTER = RECORD-LEN
    
    ACCEPT EMPLOYEE-RECORD-IN
    
    IF HOURS-WORKED > 40
        SUBTRACT 40 FROM HOURS-WORKED GIVING OVERTIME-HOURS
        IF EMP-PAY-TYPE = 'H' OR 'h'
            MULTIPLY PAY-RATE BY 1.5 GIVING EMP-OVERTIME-RATE
            MULTIPLY OVERTIME-HOURS BY EMP-OVERTIME-RATE GIVING EMP-OVERTIME-PAY
            MULTIPLY PAY-RATE BY 40 GIVING EMP-GROSS-PAY
            ADD EMP-OVERTIME-PAY TO EMP-GROSS-PAY GIVING EMP-GROSS-PAY
        ELSE IF EMP-PAY-TYPE = 'S' OR 's'
            MULTIPLY PAY-RATE BY 40 GIVING EMP-GROSS-PAY
        ELSE
            MULTIPLY PAY-RATE BY HOURS-WORKED GIVING EMP-GROSS-PAY
    ELSE
        MULTIPLY HOURS-WORKED BY PAY-RATE GIVING EMP-GROSS-PAY
    END-IF

    MULTIPLY EMP-GROSS-PAY BY EMP-TAX-RATE GIVING EMP-TAXES
    SUBTRACT EMP-TAXES FROM EMP-GROSS-PAY GIVING EMP-NET-PAY
    
    DISPLAY 'RECORD ENTRY : ' 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 '    OT HOURS : ' OVERTIME-HOURS
    DISPLAY '    PAY RATE : $' PAY-RATE
    DISPLAY '    OT RATE  : $' EMP-OVERTIME-RATE
    DISPLAY '    POSITION : ' EMP-POSITION
    
    EVALUATE TRUE
        WHEN PROGRAMMER DISPLAY '    TITLE    : PROGRAMMER'
        WHEN ACCOUNTANT DISPLAY '    TITLE    : ACCOUNTANT'
        WHEN MANAGER    DISPLAY '    TITLE    : MANAGER'
        WHEN INTERN     DISPLAY '    TITLE    : INTERN'
        WHEN TESTER     DISPLAY '    TITLE    : TESTER'
        WHEN OTHER      DISPLAY '    TITLE    : INVALID ENTRY -- ERROR IN RECORD --'
    END-EVALUATE
    
    IF EMP-PAY-TYPE = 'H' OR 'h' OR 'S' OR 's'
        DISPLAY '    PAY TYPE : ' EMP-PAY-TYPE
    ELSE
        DISPLAY '    PAY TYPE : INVALID ENTRY -- ERROR IN RECORD --'
    END-IF
    
    DISPLAY '    GROSS PAY: $' EMP-GROSS-PAY
    
    IF EMP-PAY-TYPE = 'S'
        DISPLAY '    OT PAY   : NOT ELIGIBLE'
    ELSE
        DISPLAY '    OT PAY   : $' EMP-OVERTIME-PAY
    END-IF
    
    DISPLAY '    TAXES    : $' EMP-TAXES
    DISPLAY '    NET PAY  : $' EMP-NET-PAY
    DISPLAY '--'
    
    ADD 1 TO LOOP-COUNTER
    ADD EMP-GROSS-PAY TO TOTAL-GROSS-PAY
    ADD EMP-TAXES TO TOTAL-TAXES
    ADD EMP-NET-PAY TO TOTAL-NET-PAY
    
    IF EMP-PAY-TYPE = 'H' OR 'h'
        ADD HOURS-WORKED TO TOTAL-HOURS-H
        ADD OVERTIME-HOURS TO OVERTIME-HOURLY
    ELSE
        ADD HOURS-WORKED TO TOTAL-HOURS-S
        ADD OVERTIME-HOURS TO OVERTIME-SALARY
    
    END-PERFORM.
    
    DISPLAY '   --  END OF RECORDS  --'.
    
    MOVE FUNCTION CURRENT-DATE TO SYS-DATE.
    DISPLAY 'PROGRAM RUN DATE    :   '  SYS-MONTH '/'
                                        SYS-DAY '/' 
                                        SYS-YEAR.
    
    DISPLAY '--'.
    
    DISPLAY '   TOTAL GROSS PAY     :   $' TOTAL-GROSS-PAY.
    DISPLAY '   TOTAL TAXES         :   $' TOTAL-TAXES.
    DISPLAY '   TOTAL NET PAY       :   $' TOTAL-NET-PAY.
    
    DISPLAY '--'.
    
    DISPLAY '   NUMBER OF RECORDS   :   ' LOOP-COUNTER.
    DISPLAY '   TOTAL HOURLY HOURS  :   ' TOTAL-HOURS-H.
    DISPLAY '   TOTAL SALARY HOURS  :   ' TOTAL-HOURS-S.
    
    ADD TOTAL-HOURS-H TO TOTAL-HOURS-S GIVING TOTAL-HOURS.
    
    DISPLAY '   OVERALL HOURS       :   ' TOTAL-HOURS
    DISPLAY '   TOTAL HOURLY OT     :   ' OVERTIME-HOURLY.
    DISPLAY '   TOTAL SALARY OT     :   ' OVERTIME-SALARY.
    
    ADD OVERTIME-SALARY TO OVERTIME-HOURLY GIVING TOTAL-OVERTIME.
    
    DISPLAY '   OVERALL OT          :   ' TOTAL-OVERTIME.
    
    DISPLAY '--'.
    
    DIVIDE TOTAL-GROSS-PAY BY LOOP-COUNTER GIVING AVERAGE-GROSS-PAY.
    DIVIDE TOTAL-TAXES BY LOOP-COUNTER GIVING AVERAGE-TAXES.
    DIVIDE TOTAL-NET-PAY BY LOOP-COUNTER GIVING AVERAGE-NET-PAY
    
    DISPLAY '   AVERAGE GROSS PAY   :   $' AVERAGE-GROSS-PAY.
    DISPLAY '   AVERAGE TAXES       :   $' AVERAGE-TAXES.
    DISPLAY '   AVERAGE NET PAY     :   $' AVERAGE-NET-PAY.
    
    DISPLAY '--'.

    DISPLAY 'END OF PROGRAM FOR Brian Hamil'.
    STOP RUN.

Compile and Execute COBOL Online

IDENTIFICATION DIVISION.
PROGRAM-ID. CUST-BILL.

DATA DIVISION.
    WORKING-STORAGE SECTION.
        01 WS-CUST.
            05 WS-CUSTNAME  PIC A(3) VALUE 'ABC'.
            05 WS-UNITS  PIC  9(3) VALUE 70.
            05 WS-BILL PIC 9(4)V9(2).
    
PROCEDURE DIVISION.
       ACCEPT WS-CUSTNAME.
       ACCEPT WS-UNITS.
        IF  WS-UNITS < 100 THEN
                COMPUTE WS-BILL= (2.5 * WS-UNITS)
                DISPLAY 'TOTAL BILL:' WS-BILL
        
        ELSE IF WS-UNITS > 100 AND WS-UNITS < 250 THEN
                COMPUTE WS-BILL=(100 * 2.5)+(WS-UNITS - 100)*4
                DISPLAY 'TOTAL BILL:' WS-BILL
                
        ELSE IF WS-UNITS>250 THEN
                COMPUTE WS-BILL=(100 * 2.5)+(150 * 4)+(WS-UNITS - 100 - 150)*10
                DISPLAY 'TOTAL BILL:'WS-BILL
        ELSE
            DISPLAY 'INVALID'
        END-IF
        

STOP RUN.

Compile and Execute COBOL Online

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 26

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-A PIC 9 VALUE 0.

PROCEDURE DIVISION.
   A-PARA.
   PERFORM B-PARA VARYING WS-A FROM 1 BY 1 UNTIL WS-A=5
   STOP RUN.
   
   B-PARA.
   DISPLAY 'IN B-PARA ' WS-A.

Hallo 25

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

PROCEDURE DIVISION.
   A-PARA.
   PERFORM B-PARA 3 TIMES.
   STOP RUN.
   
   B-PARA.
   DISPLAY 'IN B-PARA'.

Hallo 24

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-CNT PIC 9(1) VALUE 0. 

PROCEDURE DIVISION.
   A-PARA.
   PERFORM B-PARA WITH TEST AFTER UNTIL WS-CNT>3.
   STOP RUN.
   
   B-PARA.
   DISPLAY 'WS-CNT : 'WS-CNT.
   ADD 1 TO WS-CNT.

Hallo 22

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-A PIC 9 VALUE 0.
   
PROCEDURE DIVISION.
   MOVE 3 TO WS-A.
   
   EVALUATE TRUE
      WHEN WS-A > 2
         DISPLAY 'WS-A GREATER THAN 2'

      WHEN WS-A < 0
         DISPLAY 'WS-A LESS THAN 0'

      WHEN OTHER
         DISPLAY 'INVALID VALUE OF WS-A'
   END-EVALUATE.
   
STOP RUN.

Hallo 19

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-NUM PIC 9(3).
   88 PASS VALUES ARE 041 THRU 100.
   88 FAIL VALUES ARE 000 THRU 40.

PROCEDURE DIVISION.
   A000-FIRST-PARA.
   MOVE 65 TO WS-NUM.
   
   IF PASS 
      DISPLAY 'Passed with ' WS-NUM ' marks'.
      
   IF FAIL 
      DISPLAY 'FAILED with ' WS-NUM 'marks'.
      
STOP RUN.

Hallo 16

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-NUM1 PIC 9(9).
   01 WS-NUM2 PIC 9(9).

PROCEDURE DIVISION.
   A000-FIRST-PARA.
   MOVE 25 TO WS-NUM1.
   MOVE 15 TO WS-NUM2.
   
   IF WS-NUM1 IS GREATER THAN OR EQUAL TO WS-NUM2 THEN
      DISPLAY 'WS-NUM1 IS GREATER THAN WS-NUM2'
   ELSE
      DISPLAY 'WS-NUM1 IS LESS THAN WS-NUM2'
   END-IF.
   
STOP RUN.

Welcome to Tutorialspoint

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Welcome to Tutorialspoint'.
STOP RUN.

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

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