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

ISBN

IDENTIFICATION DIVISION.
PROGRAM-ID.         ISBN.

AUTHOR.             Linsley Meadows.

DATE-WRITTEN.       February 2019.

INSTALLATION.       On-line compiler.

SECURITY.           No specific security.

REMARKS.            ISBN -- International Standard Book Number.

*> The purpose of this program is to take a short (10 digit) ISBN and covert it 
*> to the long (13 digit) form, and vice versa. 
*>
*> In printed form ISBN components are separated by hyphens which are ignored 
*> in this implementation. 
*>
*> The format of an ISBN is MMM-L-NNNNNNNN-C
*> where MMM is 978 (or possibly 979) to identify it as a IBN 
*>         L is a language code (0 or 1 for English)
*>         NNNNNNNN is acombination of publisher / inprint and book number.
*>                   these 2 components are of variable length
*>         C is a check digit (0-9 in the long version, and 0-9,X n the short)

*> The shirt versuin excludes the MMM component. 

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. ON-LINE.
OBJECT-COMPUTER. ON-LINE. 

DATA DIVISION.
WORKING-STORAGE SECTION.

*> INDICATORS, SUBSBRIPTS ETC.

77  CONVERSION-TYPE                             PIC A. 
    88  CONVERT-TO-13                                           VALUE "L", "l".
    88  CONVERT-TO-10                                           VALUE "S", "s".
    88  STOP-CONVERSIONS                                        VALUE "X", "x".
    88  VALID-CONVERSION-TYPE                                   VALUES "X","x","L","l","s","S".
    
77  S                                           PIC 99          USAGE COMP.

*> Definitions for the 2 forms of the ISBN 

01  ISBN-13                                     PIC X(13).

01  ISBN-13-COMPONENTS REDEFINES ISBN-13                        USAGE DISPLAY.
    05  ISBN-13-IDENT                           PIC 999.
        88 VALID-ISBN-13-IDENT                                  VALUES "978", "979".
    05  ISBN-13-LANGUAGE                        PIC 9. 
    05  ISBN-13-PUB-BOOK                        PIC 9(8).
    05  ISBN-13-CHECK-DIGIT                     PIC 9.
        88 VALID-ISBN-13-CHECK-DIGITS                           VALUES "1","2","3","4","5",
                                                                       "6","7","8","9","0".
                                                                       
01  ISBN-13-CHARACTERS REDEFINES ISBN-13.
    05  ISBN-13-CHAR                            PIC X           OCCURS 13 TIMES. 


01  ISBN-10                                     PIC X(10).

01  ISBN-10-COMPONENTS REDEFINES ISBN-10                         USAGE DISPLAY.
    05  ISBN-10-LANGUAGE                        PIC 9. 
    05  ISBN-10-PUB-BOOK                        PIC 9(8).
    05  ISBN-10-CHECK-DIGIT                     PIC X.
        88 VALID-ISBN-10-CHECK-DIGITS                           VALUES "1","2","3","4","5",
                                                                       "6","7","8","9","0",
                                                                       "X","x".
                                                                       
01  ISBN-13-CHARACTERS REDEFINES ISBN-10.
    05  ISBN-10-CHAR                            PIC X           OCCURS 10 TIMES.

PROCEDURE DIVISION.

*> Execute main loop until uuser indcates the end by entering the 
*> stop code of X or x.

PERFORM MAIN-LOOP UNTIL STOP-CONVERSIONS.

STOP RUN.

MAIN-LOOP.
*>>>>>>>>>

ACCEPT CONVERSION-TYPE.
DISPLAY CONVERSION-TYPE. *> NOT REQUIRED IN LIVE VESION

EVALUATE TRUE
      WHEN CONVERT-TO-13
         PERFORM GENERATE-ISBN-13;

      WHEN CONVERT-TO-10
         PERFORM GENERATE-ISBN-10;
         
      WHEN STOP-CONVERSIONS
         CONTINUE; *> Do nothing 

      WHEN OTHER
         DISPLAY "Invalid Conversion Type: " & CONVERSION-TYPE & " Valid values are: S, L OR X"; 
         
 END-EVALUATE.
    

GENERATE-ISBN-13.
*>>>>>>>>>>>>>>>>

DISPLAY "CONVERT TO 13".

*> Intialise the receiving 13 character area

MOVE 978 TO ISBN-13-IDENT. *> standard book identifier

MOVE ZERO TO    ISBN-13-LANGUAGE,       *> 0 or 1 for English
                ISBN-13-PUB-BOOK,       *> Publisher & unique Book   
                ISBN-13-CHECK-DIGIT.    *> 0-9 


GENERATE-ISBN-10. 
*>>>>>>>>>>>>>>>>

DISPLAY "CONVERT TO 10".

MOVE ZERO TO    ISBN-10-LANGUAGE,       *> 0 or 1 for English
                ISBN-10-PUB-BOOK.       *> Publisher & unique Book   
MOVE SPACE TO   ISBN-10-CHECK-DIGIT.    *> 0-9, X

stock listing

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-COMPANY-RECORD.
    05  WS-COMPANY-PROFILE.
        10  WS-COMPANY-NAME             PIC X(10).
        10  WS-COMPANY-CODE REDEFINES WS-COMPANY-NAME.
            20  WS-COMPANY-CODE-LIST    PIC X(4).
        10  FILLER                      PIC X(5).
        10  WS-COMPANY-YEAR             PIC 9(4).
        10  FILLER                      PIC X(5).
        10  WS-COMPANY-TYPE             PIC X(3).
        10  FILLER                      PIC X(5).
    05  WS-COMPANY-LISTING.
        10  WS-COMPANY-EXP              PIC 9(2).
        10  WS-COMPANY-CODE             PIC X(4).
01  WS-SWITCH.                         
    05  WS-COMPANY-CHECK                PIC X       VALUE 'N'.
        88  WS-COMPANY-2K                           VALUE 'Y'.
PROCEDURE DIVISION.
DISPLAY 'Hello, world'.
MOVE 'VERIZON'  TO  WS-COMPANY-NAME.
MOVE '2005'     TO  WS-COMPANY-YEAR.
MOVE 'IT'       TO  WS-COMPANY-TYPE.
DISPLAY WS-COMPANY-PROFILE.
COMPUTE WS-COMPANY-EXP  =   2018    -   WS-COMPANY-YEAR.
IF WS-COMPANY-YEAR >= 2000
MOVE 'Y'        TO  WS-COMPANY-CHECK
END-IF.
IF WS-COMPANY-EXP   >= 5
AND WS-COMPANY-2K
DISPLAY 'COMPANY '  WS-COMPANY-NAME ' IS STOCK LISTED AS ' WS-COMPANY-CODE-LIST
ELSE
DISPLAY 'COMPANY ' WS-COMPANY-NAME ' IS NOT ELIGIBLE FOR STOCK LISTING'.
STOP RUN.

Compile and Execute COBOL Online

IDENTIFICATION DIVISION.
PROGRAM-ID.    EXAMPL19.
AUTHOR.        Soren.   
ENVIRONMENT DIVISION.
DATA DIVISION.                              
WORKING-STORAGE SECTION.                    
01 WS-VARIABLES.                            
   05 OPTION                     PIC  X(01).
   05 ELEMENT                    PIC  X(05).
01 WS-INDICES.                                   
   05 I                          PIC S9(04) COMP.
01 WS-TABLES.                                    
   05 STACK                      PIC  X(05)      
                                 OCCURS 10  TIMES
                                 INDEXED BY INDX.
PROCEDURE DIVISION.
00000-MAIN.                                                
                                                           
    DISPLAY 'MENU: 1. PUSH   2. POP   3. POP ALL   4.EXIT'.
    ACCEPT  OPTION.
                   
    SET INDX TO 1. 
                   
    EVALUATE OPTION                               
        WHEN '1'                                    
             PERFORM 10000-PUSH    THRU 10000-EXIT
        WHEN '2'                                    
             PERFORM 20000-POP     THRU 20000-EXIT
        WHEN '3'                                    
             PERFORM 30000-POP-ALL THRU 30000-EXIT
        WHEN OTHER                                
             GO TO 00000-EXIT                     
    END-EVALUATE.                                 
                                                  
00000-EXIT.                                       
    STOP RUN.                                     

10000-PUSH.                                                 
                                                            
    DISPLAY 'ENTER ELEMENTS TO PUSH'.                       
    DISPLAY 'LAST ELEMENT MUST BE SPACE TO INDICATE TO END '
            'OF ENTRY'.
            
    ACCEPT  ELEMENT.
    MOVE ELEMENT TO STACK (INDX).                      
    SET INDX UP BY 1.
    
    ACCEPT  ELEMENT.
    MOVE ELEMENT TO STACK (INDX).                      
    SET INDX UP BY 1.                     
          
    ACCEPT  ELEMENT.
    MOVE ELEMENT TO STACK (INDX).                      
    SET INDX UP BY 1.
    
    ACCEPT  ELEMENT.
    MOVE ELEMENT TO STACK (INDX).                     
    SET INDX UP BY 1.
    
    ACCEPT  ELEMENT.
    MOVE ELEMENT TO STACK (INDX).                      
    SET INDX UP BY 1.
    
    ACCEPT  ELEMENT.
    MOVE ELEMENT TO STACK (INDX).                      
    SET INDX UP BY 1.
    
    ACCEPT  ELEMENT.
    MOVE ELEMENT TO STACK (INDX).                      
    
    PERFORM VARYING I FROM 1 BY 1   
        UNTIL STACK (I) = SPACES
        DISPLAY STACK (I)   
    END-PERFORM.                    

    DISPLAY ' '.
    DISPLAY 'POP ONE ELEMENT FROM STACK'
    PERFORM 20000-POP THRU 20000-EXIT.
    PERFORM 20000-POP THRU 20000-EXIT.
    
    DISPLAY ' '.
    DISPLAY 'POP ALL FROM STACK'.
    PERFORM 30000-POP-ALL THRU 30000-EXIT.
    
10000-EXIT.                                                 
    EXIT.                                                   
    
20000-POP.                              
    
    MOVE STACK (INDX) TO ELEMENT.       
    DISPLAY ELEMENT ' POPED FROM STACK'.
                                        
    SET INDX DOWN BY 1.                 
    IF INDX <= 0                        
       DISPLAY 'STACK IS EMPTY'         
    END-IF.                             
                                        
20000-EXIT.                             
    EXIT.                               
                                        
30000-POP-ALL.                          
    
    DISPLAY 'POPED FROM STACK:'.        
    PERFORM UNTIL INDX = 0              
       MOVE STACK (INDX) TO ELEMENT     
       DISPLAY ELEMENT                  
                                        
       SET INDX DOWN BY 1               
       IF INDX <= 0                     
          DISPLAY 'STACK IS EMPTY'      
       END-IF                           
    END-PERFORM.                        
                                        
30000-EXIT.                             
    EXIT.                               

Compile and Execute COBOL Online

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
source-computer. stf-1040.
object-computer. stf-1040.
input-output section.

DATA DIVISION.
WORKING-STORAGE SECTION. 
77 nombre pic 9(4).
77 nb-nombres pic 99.
77 somme pic 9(6) value is zero.
77 carre pic 9(7).

77 moyenne pic 9(4)V99.
77 ED-moyenne pic zzz9.99.

77 somme-carres pic 9(8) value is zero.
77 ED-somme-carres pic z(7)9.

77 moyenne-carres pic 9(4)V99.
77 ED-moyenne-carres pic zzz9.99.

77 compteur pic 999 value is zero.

77 minimum pic 9(4) value is 9999.
77 ED-minimum pic 9(4).
77 maximum pic 9(4) value is zero.
77 ED-maximum pic 9(4).

77 nom-etudiant pic X(25).

01 Etudiant occurs 10.
    02 Nom pic X(30).
    02 Prenom pic X(25).
    02 Notes pic 99V99 occurs 5.
    



PROCEDURE DIVISION.
    Principal.
        DISPLAY "combien de nombres ?"
        ACCEPT nb-nombres.
        DISPLAY "nom étudiant "
        ACCEPT nom-etudiant.
        PERFORM Calcul
            UNTIL compteur = nb-nombres.
        PERFORM Edition.

STOP RUN.

Calcul.
    accept nombre.
    IF nombre < minimum
        THEN move nombre to minimum
    END-IF.
    IF nombre > maximum
        THEN move nombre to maximum
    END-IF.
        
    add 1 to compteur.
    add nombre to somme.
    multiply nombre by nombre
        giving carre.
    add carre to somme-carres.

Edition.
    divide somme by nb-nombres
        giving moyenne.
    move moyenne to ED-moyenne.
    move somme-carres
        to ED-somme-carres.
    divide somme-carres by nb-nombres
        giving moyenne-carres
    move moyenne-carres 
        to ED-moyenne-carres.
    move minimum 
        to ED-minimum.
    move maximum
        to ED-maximum.
        
    move nom-etudiant to Nom(1).
    move nombre to Notes(1, 2).
        
    display "moyenne :" ED-moyenne.
    display "somme des carres :"
        ED-somme-carres.
    display "moyenne des carres :"
        ED-moyenne-carres.
    display "nombre minimum :"
        ED-minimum.
    display "nombre maximum :"
        ED-maximum.
        
    display "nom :"
        Nom(1).
    display "note :"  
        Notes(1, 2).

Brian Hamil HW05BH

IDENTIFICATION DIVISION.
PROGRAM-ID. HW05BH.
AUTHOR. Brian Hamil.
DATE-WRITTEN. 2/04/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', 'h'.
       88 SALARY-PAY            VALUE 'S', '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'.
       88 DEFALUT               VALUE 'X', 'x'.
       
01 EMP-TITLE                    PIC X(18).
01 EMP-PAY-DISPLAY              PIC X(18).
01 EMP-MESSAGE                  PIC X(30).

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 1.
    05 RECORD-LEN               PIC 9(05) VALUE 2.
    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.
    
01  WS-POSITIONS.
    05 WS-PROGRAMMER.
       10 WS-PROGRAMMER-CODE   PIC X(01)    VALUE 'P'.
       10 WS-PROGRAMMER-TITLE  PIC X(18)    VALUE 'PROGRAMMER'.
       10 WS-PROGRAMMER-RATE   PIC 9(02)V99 VALUE 65.00.
    05 WS-ACCOUNTANT.
       10 WS-ACCOUNTANT-CODE   PIC X(01)    VALUE 'A'.
       10 WS-ACCOUNTANT-TITLE  PIC X(18)    VALUE 'ACCOUNTANT'.
       10 WS-ACCOUNTANT-RATE   PIC 9(02)V99 VALUE 58.00.
    05 WS-MANAGER.
       10 WS-MANAGER-CODE      PIC X(01)    VALUE 'M'.
       10 WS-MANAGER-TITLE     PIC X(18)    VALUE 'MANAGER'.
       10 WS-MANAGER-RATE      PIC 9(02)V99 VALUE 62.00.
    05 WS-INTERN.
       10 WS-INTERN-CODE       PIC X(01)    VALUE 'I'.
       10 WS-INTERN-TITLE      PIC X(18)    VALUE 'INTERN'.
       10 WS-INTERN-RATE       PIC 9(02)V99 VALUE 22.00.
    05 WS-TESTER.
       10 WS-TESTER-CODE       PIC X(01)    VALUE 'T'.
       10 WS-TESTER-TITLE      PIC X(18)    VALUE 'TESTER'.
       10 WS-TESTER-RATE       PIC 9(02)V99 VALUE 22.00.
    05 WS-DEFAULT.
       10 WS-DEFAULT-CODE      PIC X(01)    VALUE 'X'.
       10 WS-DEFAULT-TITLE     PIC X(18)    VALUE 'UNDEFINED POSITION'.
       10 WS-DEFAULT-RATE      PIC 9(02)V99 VALUE 20.00.

PROCEDURE DIVISION.
    DISPLAY 'PAYROLL HW04BH FOR Brian Hamil.'.
    
    DISPLAY WS-PROGRAMMER-CODE ' ' WS-PROGRAMMER-TITLE ' ' WS-PROGRAMMER-RATE
    DISPLAY WS-ACCOUNTANT-CODE ' ' WS-ACCOUNTANT-TITLE ' ' WS-ACCOUNTANT-RATE
    DISPLAY WS-MANAGER-CODE ' ' WS-MANAGER-TITLE ' ' WS-MANAGER-RATE
    DISPLAY WS-INTERN-CODE ' ' WS-INTERN-TITLE ' ' WS-INTERN-RATE
    DISPLAY WS-TESTER-CODE ' ' WS-TESTER-TITLE ' ' WS-TESTER-RATE
    DISPLAY WS-DEFAULT-CODE ' ' WS-DEFAULT-TITLE ' ' WS-DEFAULT-RATE
    
    DISPLAY '   --  BEGINNING OF RECORDS    --'.
    
    DISPLAY '--'.

    PERFORM UNTIL LOOP-COUNTER = RECORD-LEN

    ACCEPT EMPLOYEE-RECORD-IN
    
    EVALUATE TRUE
        WHEN HOURLY-PAY
            MOVE 'HOURLY' TO EMP-PAY-DISPLAY
        WHEN SALARY-PAY
            MOVE 'SALARY' TO EMP-PAY-DISPLAY
            MOVE '  -- NOT ELIGIBLE --' TO EMP-MESSAGE
            MOVE 0 TO EMP-OVERTIME-PAY
            MOVE 0 TO EMP-OVERTIME-RATE
        WHEN OTHER
            MOVE 'INVALID' TO EMP-PAY-DISPLAY
    END-EVALUATE
    
    EVALUATE TRUE
        WHEN PROGRAMMER
            MOVE WS-PROGRAMMER-RATE TO PAY-RATE
            MOVE WS-PROGRAMMER-CODE TO EMP-POSITION
            MOVE WS-PROGRAMMER-TITLE TO EMP-TITLE
        WHEN ACCOUNTANT
            MOVE WS-ACCOUNTANT-RATE TO PAY-RATE
            MOVE WS-ACCOUNTANT-CODE TO EMP-POSITION
            MOVE WS-ACCOUNTANT-TITLE TO EMP-TITLE
        WHEN MANAGER
            MOVE WS-MANAGER-RATE TO PAY-RATE
            MOVE WS-MANAGER-CODE TO EMP-POSITION
            MOVE WS-MANAGER-TITLE TO EMP-TITLE
        WHEN INTERN 
            MOVE WS-INTERN-RATE TO PAY-RATE
            MOVE WS-INTERN-CODE TO EMP-POSITION
            MOVE WS-INTERN-TITLE TO EMP-TITLE
        WHEN TESTER 
            MOVE WS-TESTER-RATE TO PAY-RATE
            MOVE WS-TESTER-CODE TO EMP-POSITION
            MOVE WS-TESTER-TITLE TO EMP-TITLE
        WHEN OTHER 
            MOVE WS-DEFAULT-RATE TO PAY-RATE
            MOVE WS-DEFAULT-CODE TO EMP-POSITION
            MOVE WS-DEFAULT-TITLE TO EMP-TITLE
    END-EVALUATE
    
    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 EMP-MESSAGE
    DISPLAY '    POSITION : ' EMP-POSITION
    DISPLAY '    TITLE    : ' EMP-TITLE
    DISPLAY '    PAY TYPE : ' EMP-PAY-DISPLAY
    DISPLAY '    GROSS PAY:     $' EMP-GROSS-PAY
    DISPLAY '    OT PAY   :     $' EMP-OVERTIME-PAY EMP-MESSAGE
    DISPLAY '    TAXES    :     $' EMP-TAXES
    DISPLAY '    NET PAY  :     $' EMP-NET-PAY
    DISPLAY '--'
    
    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
    
    ADD 1 TO LOOP-COUNTER
    
    END-PERFORM.
    
    DISPLAY '   --  END OF RECORDS  --'.
    
    ADD TOTAL-HOURS-H TO TOTAL-HOURS-S GIVING TOTAL-HOURS.
    ADD OVERTIME-SALARY TO OVERTIME-HOURLY GIVING TOTAL-OVERTIME.
    
    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
    
    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 '   AVERAGE GROSS PAY   :   $' AVERAGE-GROSS-PAY.
    DISPLAY '   AVERAGE TAXES       :   $' AVERAGE-TAXES.
    DISPLAY '   AVERAGE NET PAY     :   $' AVERAGE-NET-PAY.
    
    DISPLAY '--'.
    
    DISPLAY '   NUMBER OF RECORDS   :       ' LOOP-COUNTER.
    DISPLAY '   TOTAL HOURLY HOURS  :      ' TOTAL-HOURS-H.
    DISPLAY '   TOTAL SALARY HOURS  :      ' TOTAL-HOURS-S.
    DISPLAY '   OVERALL HOURS       :      ' TOTAL-HOURS.
    DISPLAY '   TOTAL HOURLY OT     :      ' OVERTIME-HOURLY.
    DISPLAY '   TOTAL SALARY OT     :      ' OVERTIME-SALARY.
    DISPLAY '   OVERALL OT          :      ' TOTAL-OVERTIME.
    
    DISPLAY '--'.

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

MANPROV

    IDENTIFICATION DIVISION.
    PROGRAM-ID. MANPROV.
    DATA DIVISION.
    FILE SECTION.
    WORKING-STORAGE SECTION.
    01  NUMPRO                 PIC 999.
    01  RAZON                  PIC X(40).
    01  CALLE                  PIC X(40).
    01  POBLACION              PIC X(40).
    01  CODPOS                 PIC 99999.
    01  CONTACTO               PIC X(15).
    01  TELEFONO               PIC 9(9).
    01  SITUACION              PIC 9 VALUE ZERO.
    01  LI                     PIC 99.
    01  ESTA                   PIC 9.
    01  SITTEX                 PIC X(8).
        77 TEXTOPA PIC X(28) VALUE "MANTENIMIENTO DE PROVEEDORES".
    PROCEDURE DIVISION.
        DISPLAY TEXTOPA ERASE LINE 01 COL 25.
        IF ESTA=0 PERFORM PANTASI.

        INICIO.
        DISPLAY "01 :" LINE 04 COL 08.
        DISPLAY "Núm. de PROVEEDOR  :" LINE 04 COL 13.
        DISPLAY NUMPRO LINE 04 COL 35.

        DISPLAY "02 : "LINE 06 COL 08.
        DISPLAY "Nombre ó R. SOCIAL : " LINE 06 COL 13.
        DISPLAY RAZON LINE 06 COL 35.

        DISPLAY "03 : " LINE 08 COL 08.
        DISPLAY "CALLE -domicilio-  : " LINE 08 COL 13.
        DISPLAY CALLE LINE 08 COL 35.

        DISPLAY "04 : " LINE 10 COL 08.
        DISPLAY "Código POSTAL      : " LINE 10 COL 13.
        DISPLAY CODPOS LINE 10 COL 35.

        DISPLAY "05 : " LINE 12 COL 08.
        DISPLAY "POBLACION          : " LINE 12 COL 13.
        DISPLAY POBLACION LINE 12 COL 35.

        DISPLAY "06 : " LINE 14 COL 08.
        DISPLAY "PERSONA de CONTACTO:" LINE 14 COL 13.
        DISPLAY CONTACTO LINE 14 COL 35.

        DISPLAY "07 : " LINE 16 COL 08.
        DISPLAY "Núm. TELEFONO      :" LINE 16 COL 13.
        DISPLAY TELEFONO LINE 16 COL 35.

        DISPLAY "08 : " LINE 18 COL 08.
        DISPLAY "Situac 0=ACT 9=BLOQ: " LINE 18 COL 13.
        DISPLAY SITUACION  LINE 18 COL 35.
        DISPLAY SITTEX  LINE 18 COL 37.

    PIES.
        DISPLAY "Núm. " LINE 20 COL 08.
        DISPLAY "Campo a MODIFICAR   :" LINE 20 COL 35.
        ACCEPT LI LINE 20 COL 57.

        IF LI<0 OR LI>8 GO PIES.
        IF LI=1 GO UNO.
        IF LI=2 GO DOS.
        IF LI=3 GO TRES.
        IF LI=4 GO CUATRO.
        IF LI=5 GO CINCO.
        IF LI=6 GO SEIS.
        IF LI=7 GO SIETE.
        IF LI=8 GO OCHO.
    PANTASI.
    UNO.
        DISPLAY "01 : " LINE 04 COL 08.
        DISPLAY "Núm. de PROVEEDOR   : " LINE 04 COL 13.
        IF ESTA=1 DISPLAY NUMPRO LINE 04 COL 35.
        ACCEPT NUMPRO LINE 04 COL 35.
        IF ESTA=1 GO PIES.
    DOS.
        DISPLAY "02 : "LINE 06 COL 08.
        DISPLAY "Nombre ó R.SOCIAL  : " LINE 06 COL 13.
        DISPLAY RAZON LINE 06 COL 35.
        ACCEPT RAZON LINE 06 COL 35.
    TRES.
        DISPLAY "03 : " LINE 08 COL 08.
        DISPLAY "CALLE -domicilio-   : " LINE 08 COL 13.
        IF ESTA=1 DISPLAY CALLE LINE 08 COL 35.
        ACCEPT  CALLE LINE 08 COL 33.
        IF ESTA=1 GO PIES.
    CUATRO.
        DISPLAY "04 : " LINE 10 COL 08.
        DISPLAY "Código POSTAL       : " LINE 10 COL 13.
        IF ESTA=1 DISPLAY CODPOS LINE 10 COL 35.
        ACCEPT  CODPOS LINE 10 COL 35.
        IF ESTA=1 GO PIES.
    CINCO.
        DISPLAY "05 : " LINE 12 COL 08.
        DISPLAY "POBLACION           :" LINE 12 COL 13.
        IF ESTA=1 DISPLAY POBLACION LINE 12 COL 35.
        ACCEPT  POBLACION LINE 12 COL 35.
        IF ESTA=1 GO PIES.
    SEIS.
        DISPLAY "06 : " LINE 14 COL 08.
        DISPLAY "PERSONA de CONTACTO:" LINE 14 COL 13.
        DISPLAY CONTACTO LINE 14 COL 35.
    SIETE.
        DISPLAY "07 : " LINE 16 COL 08.
        DISPLAY "Núm. TELEFONO      :" LINE 16 COL 13.
        DISPLAY TELEFONO LINE 16 COL 35.
    OCHO.
        DISPLAY "08 : " LINE 18 COL 08.
        DISPLAY "Situac 0=ACT 9=BLOQ: " LINE 18 COL 13.
        DISPLAY SITUACION  LINE 18 COL 35.
        DISPLAY SITTEX  LINE 18 COL 37.
        STOP RUN.
    END PROGRAM MANPROV.

Hallo 48

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   EXEC SQL
   INCLUDE SQLCA
   END-EXEC.
   
   EXEC SQL
   INCLUDE STUDENT
   END-EXEC.
   
   EXEC SQL BEGIN DECLARE SECTION
   END-EXEC.
      01 WS-STUDENT-REC.
         05 WS-STUDENT-ID PIC 9(4).
         05 WS-STUDENT-NAME PIC X(25).
         05 WS-STUDENT-ADDRESS X(50).
   EXEC SQL END DECLARE SECTION
   END-EXEC.

PROCEDURE DIVISION.
   MOVE 1005 TO WS-STUDENT-ID.
   MOVE 'TutorialsPoint' TO WS-STUDENT-NAME.
   MOVE 'Hyderabad' TO WS-STUDENT-ADDRESS.
   
   EXEC SQL
      INSERT INTO STUDENT(STUDENT-ID, STUDENT-NAME, STUDENT-ADDRESS)
      VALUES (:WS-STUDENT-ID, :WS-STUDENT-NAME, WS-STUDENT-ADDRESS)
   END-EXEC.
   
   IF SQLCODE = 0 
      DISPLAY 'Record Inserted Successfully'
      DISPLAY WS-STUDENT-REC
   ELSE DISPLAY 'Error'
   END-IF.
STOP RUN.

Hallo 47

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   EXEC SQL
      INCLUDE SQLCA
   END-EXEC.
   
   EXEC SQL
      INCLUDE STUDENT
   END-EXEC.
   
   EXEC SQL BEGIN DECLARE SECTION
   END-EXEC.
      01 WS-STUDENT-REC.
         05 WS-STUDENT-ID PIC 9(4).
         05 WS-STUDENT-NAME PIC X(25).
         05 WS-STUDENT-ADDRESS X(50).
   EXEC SQL END DECLARE SECTION
   END-EXEC.

PROCEDURE DIVISION.
   EXEC SQL
      SELECT STUDENT-ID, STUDENT-NAME, STUDENT-ADDRESS
      INTO :WS-STUDENT-ID, :WS-STUDENT-NAME, WS-STUDENT-ADDRESS FROM STUDENT
      WHERE STUDENT-ID=1004
   END-EXEC.
   
   IF SQLCODE = 0 
      DISPLAY WS-STUDENT-RECORD
   ELSE DISPLAY 'Error'
   END-IF.
STOP RUN.

Hallo 46

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
      SELECT INPUT1 ASSIGN TO IN1.
      SELECT INPUT2 ASSIGN TO IN2.
      SELECT OUTPUT ASSIGN TO OUT.
      SELECT WORK ASSIGN TO WRK.

DATA DIVISION.
   FILE SECTION.
   FD INPUT1.
      01 INPUT1-STUDENT.
         05 STUDENT-ID-I1 PIC 9(5).
         05 STUDENT-NAME-I1 PIC A(25).
   FD INPUT2.
      01 INPUT2-STUDENT.
         05 STUDENT-ID-I2 PIC 9(5).
         05 STUDENT-NAME-I2 PIC A(25).
   FD OUTPUT.
      01 OUTPUT-STUDENT.
         05 STUDENT-ID-O PIC 9(5).
         05 STUDENT-NAME-O PIC A(25).
   SD WORK.
      01 WORK-STUDENT.
         05 STUDENT-ID-W PIC 9(5).
         05 STUDENT-NAME-W PIC A(25).

PROCEDURE DIVISION.
   MERGE WORK ON ASCENDING KEY STUDENT-ID-O
   USING INPUT1, INPUT2 GIVING OUTPUT.
   DISPLAY 'Merge Successful'.
STOP RUN.

Hallo 43

IDENTIFICATION DIVISION.
PROGRAM-ID. MAIN.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-STUDENT-ID PIC 9(4) VALUE 1000.
   01 WS-STUDENT-NAME PIC A(15) VALUE 'Tim'.

PROCEDURE DIVISION.
   CALL 'UTIL' USING BY CONTENT WS-STUDENT-ID, BY CONTENT WS-STUDENT-NAME.
   DISPLAY 'Student Id : ' WS-STUDENT-ID
   DISPLAY 'Student Name : ' WS-STUDENT-NAME
STOP RUN.

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

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