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
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.
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.
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).
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.
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.
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.
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.
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.
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.
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy. Accept Learn more