INPUT PROCEDURE (SORT)

 

                                                          

 EDIT       MTPLP06.TABLE.PDS(INPRO) - 01.45              

 Command ===>                                             

 ****** ***************************** Top of Data *********

 000001        IDENTIFICATION DIVISION.                   

 000002        PROGRAM-ID. SORT2.                         

 000003        ENVIRONMENT DIVISION.                      

 000004        INPUT-OUTPUT SECTION.                      

 000005        FILE-CONTROL.                              

 000006              SELECT INFILE ASSIGN TO DD1          

 000007              FILE STATUS IS FS1.                  

 000008              SELECT OUTFILE ASSIGN TO DD2         

 000009              FILE STATUS IS FS2.                  

 000010              SELECT WORKFILE ASSIGN TO DD3.       

 000011        DATA DIVISION.                             

 000012        FILE SECTION.                              

 000013        FD INFILE.                                 

 000014        01 IN-REC.                                 

 000015              02 ECODE PIC X(4).                   

 000016              02       PIC X.                      

 000017              02 ENAME PIC X(10).   

 000018              02       PIC X.                                  

000019              02 ECITY PIC X(8).                               

000020              02       PIC X(56).                              

000021        FD OUTFILE.                                            

000022        01 OUT-REC.                                            

000023              02       PIC X(80).                              

000024        SD WORKFILE.                                           

000025        01 WORK-REC.                                            

000026              02 ECODE PIC X(4).                               

000027              02       PIC X(76).                              

000028        WORKING-STORAGE SECTION.                               

000029        77 FS1 PIC XX.                                         

000030        77 FS2 PIC XX.                                         

000031        77 FS3 PIC XX.                                         

000032        77 EOF PIC X(3) VALUE 'NO'.                             

000033        PROCEDURE DIVISION.                                    

000034              SORT WORKFILE ASCENDING KEY  ECODE OF WORK-REC   

000035              INPUT PROCEDURE IS PARA-1 GIVING OUTFILE.                                                        

000037              STOP RUN.                                

000038         PARA-1.                                       

000039               OPEN INPUT INFILE.                      

000040               PERFORM UNTIL EOF = 'YES'               

000041               READ INFILE AT END MOVE 'YES' TO EOF    

000042               NOT AT END                              

000043               IF ECITY OF IN-REC = 'ROME' THEN        

000044               MOVE IN-REC TO WORK-REC                 

000045               RELEASE WORK-REC                        

000046               ELSE DISPLAY 'CITY NOT EXIST'           

000047               END-IF                                  

000048               END-READ                                 

000049               END-PERFORM.                            

 

COMPILE PROG IS SAME .

 

     TO RUN 

 

 EDIT       MTPLP06.TABLE.PDS(COBRUN) - 01.44              

  Command ===>                                              

 ****** ***************************** Top of Data **********

 000100 //MTPLP06A JOB NOTIFY=&SYSUID                      

 000200 //RUN EXEC PGM=INPUT                               

 000300 //STEPLIB DD DSN=MTPLP06.TABLE1.LOADLIB,DISP=SHR   

 000400 //SYSPRINT DD SYSOUT=*                             

 000500 //SYSOUT DD SYSOUT=*                               

 000600 //DD1 DD DSN=MTPLP06.TABLE.PDS(INFILE),DISP=SHR    

 000700 //DD2 DD DSN=MTPLP06.TABLE.PDS(OUTFILE1),DISP=SHR  

 000800 //SYSIN DD *                                       

 000900 /*                                                 

 001000 //                                                 

 

I/P  -->(WEHN WE WILL SORT FOR SITY PUNE ,IT WILL SEARCH THE CODE NAMED PUNE AND WILL COPY IT IN OUTFILE1.  )

& WHEN WILL WRITE WRONG CITY IT WILL DISPLAY "CITY NOT EXIST IN SPOOL.

 

 

                                                OUTPUT PROCE

                                                         

 EDIT       MTPLP06.TABLE.PDS(OUTPRO) - 01.17            

 Command ===>                                            

 ****** ***************************** Top of Data ********

 000001          IDENTIFICATION DIVISION.                

 000002          PROGRAM-ID. OPRO.                       

 000003          ENVIRONMENT DIVISION.                   

 000004          INPUT-OUTPUT SECTION.                   

 000005          FILE-CONTROL.                           

 000006                SELECT INFILE ASSIGN TO DD1       

 000007                FILE STATUS IS FS1.               

 000008                SELECT OUTFILE ASSIGN TO DD2      

 000009                FILE STATUS IS FS2.               

 000010                SELECT WORKFILE ASSIGN TO DD3.    

 000011          DATA DIVISION.                          

 000012          FILE SECTION.                            

 000013          FD INFILE.                              

 000014          01 IN-REC.                              

 000015                    02 ECODE PIC X(4).            

 000016                    02       PIC X.               

 000017                    02 ENAME PIC X(10).

 000018                    02       PIC X.                   

 000019                    02 ECITY PIC X(8).                

 000020                    02       PIC X(56).               

 000021          FD OUTFILE.                                 

 000022          01 OUT-REC.                                 

 000023                    02 ECODE PIC X(4).                

 000024                    02       PIC X.                   

 000025                    02 ENAME PIC X(10).               

 000026                    02       PIC X.                   

 000027                    02 ECITY PIC X(8).                

 000028                    02       PIC X(56).               

 000029          SD WORKFILE.                                 

 000030          01 WORK-REC.                                

 000031                    02 ECODE PIC X(4).                

 000032                    02       PIC X.                   

 000033                    02 ENAME PIC X(10).               

 000034                    02       PIC X.                   

 000035                    02 ECITY PIC X(8).                

000036                    02       PIC X(56).                               

000037          WORKING-STORAGE SECTION.                                    

000038          77 FS1 PIC XX.                                              

000039          77 FS2 PIC XX.                                              

000040          77 FS3 PIC XX.                                              

000041          77 EOF PIC X(3) VALUE 'NO'.                                 

000042          PROCEDURE DIVISION.                                         

000043                      SORT WORKFILE ASCENDING KEY  ECODE OF WORK-REC  

000044                      USING INFILE OUTPUT PROCEDURE IS PARA1.         

000045                     STOP RUN.                                        

000046          PARA1.                                                      

000047                 OPEN OUTPUT OUTFILE.                                 

000048                 PERFORM UNTIL EOF = 'Y'                              

000049                 RETURN WORKFILE AT END MOVE 'Y' TO EOF NOT AT END    

000050                 MOVE ECODE OF WORK-REC TO ECODE OF OUT-REC           

000051                 MOVE ENAME OF WORK-REC TO ENAME OF OUT-REC           

000052                 MOVE ECITY OF WORK-REC TO ECITY OF OUT-REC           

000053                 WRITE OUT-REC                                        

000054                 END-RETURN  

000055                 END-PERFORM.

 

(THIS IS INFILE  AND BY O/P WILL GET SAME INPUT IN OUTFILE I.E CODE ,NAME AND CITY WILL MOVE TO OUTREC.)

 

EDIT       MTPLP06.TABLE.PDS(INFILE) -

Command ===>                          

****** ***************************** T

000100 1617 ABCAASSDAD MUMBAI        

000200 1212 DEFSAADXZD DELHI         

000300 1312 SDSDDSDSDC PUNE          

000400 1112 GHIFSDASDC CHENNAI       

000500 1000 DDDFJHJHJF BHILLAI       

000600 0022 ASDGQWERTY PUNE          

000700 0112 GESHZXCVVB PUNE      

 

 

                                SEARCH 1D PROG

              

EDIT       MTPLP06.TABLE.PDS(SEARCH1D) - 01.13             Col

Command ===>                                                 

****** ***************************** Top of Data *************

000001        ID DIVISION.                                   

000002        PROGRAM-ID. SEARCH1.                           

000003        ENVIRONMENT DIVISION.                          

000004        DATA DIVISION.                                 

000005        WORKING-STORAGE SECTION.                       

000006        01 STUDENT.                                    

000007             02 STUD OCCURS 8 TIMES INDEXED BY A.      

000008                 03 MARKS PIC  9(2).                   

000009        77 I  PIC  9  VALUE 1.                         

000010        77 CHECK PIC X(2) VALUE 'N'.                   

000011        PROCEDURE DIVISION.                            

000012              PERFORM VARYING I FROM 1 BY 1 UNTIL I > 8

000013              ACCEPT MARKS(I)                          

000014              DISPLAY "   THE MARKS IS:  " MARKS(I)    

000015              END-PERFORM.                             

000016              SEARCH STUD                               

000017              WHEN MARKS(A) = 30

 000018              DISPLAY  MARKS(A)       

 000019              END-SEARCH.             

 000020              STOP RUN.      

 

 

(  WE HAVE TO GIVE 8 I/PS A BELOW IN RUNJCL)

 

EDIT       MTPLP06.TABLE.PDS(COBRUN) - 01.46              

Command ===>                                              

****** ***************************** Top of Data **********

000100 //MTPLP06A JOB NOTIFY=&SYSUID                      

000200 //RUN EXEC PGM=SEARCH1D                            

000300 //STEPLIB DD DSN=MTPLP06.TABLE1.LOADLIB,DISP=SHR   

000400 //SYSPRINT DD SYSOUT=*                             

000500 //SYSOUT DD SYSOUT=*                               

000600 //*DD1 DD DSN=MTPLP06.TABLE.PDS(INFILE),DISP=SHR   

000700 //*D2 DD DSN=MTPLP06.TABLE.PDS(OUTFILE1),DISP=SHR  

000800 //SYSIN DD *                                       

000810 35                                                 

000820 60                                                  

000830 78                                                 

000840 30                                                 

000850 70                                                 

000860 30                                                 

000870 50                                                 

000880 20                                                 

000900 /*                                                 

 

( I/P IS BELOW GIVEN IT WILL SEARCHED 30 )

THE MARKS IS:  35         

   THE MARKS IS:  60         

   THE MARKS IS:  78         

   THE MARKS IS:  30         

   THE MARKS IS:  70         

   THE MARKS IS:  30         

   THE MARKS IS:  50         

   THE MARKS IS:  20         

30                           

 

                                                SEARCH DUPLICATE

                                                                       

 EDIT       MTPLP06.TABLE.PDS(SERDUPLI) - 01.00             Columns 0000

 Command ===>                                                  Scroll ==

 ****** ***************************** Top of Data **********************

 000001        IDENTIFICATION DIVISION.                                

 000002        PROGRAM-ID. XXX.                                        

 000003        ENVIRONMENT DIVISION.                                   

 000004        DATA DIVISION.                                          

 000005        WORKING-STORAGE SECTION.                                

 000006        01 STUDENT.                                             

 000007              05 PERF OCCURS 8 TIMES INDEXED BY A.              

 000008                    10 MARK PIC 9(2).                           

 000009        77 I PIC 9(1).                                          

 000010        77 X PIC X VALUE IS 'N'.                                

 000011        PROCEDURE DIVISION.                                     

 000012                PERFORM VARYING I FROM 1 BY 1 UNTIL I > 8       

 000013                ACCEPT MARK(I)                                  

 000014                END-PERFORM.                                     

 000015                SET A TO 1.                                     

 000016        PARA-2.                                                 

 000017                SEARCH PERF AT END GO TO PARA-1 WHEN MARK(A) = 70

000018                DISPLAY MARK(A)                

000019                END-SEARCH.                    

000020                MOVE 'Y' TO X.                 

000021                SET A UP BY 1.                 

000022                GO TO PARA-2.                   

000023        PARA-1.                                

000024                IF X = 'N' THEN                

000025                DISPLAY "MARKS NOT FOUND".     

000026                STOP RUN.                      

 

 

I/O--> IN THIS  COMPILE & RUN WILL BE SAME AS ABOVE BUT ONLY DIFFERENCE IS IF IN RUN PROG IF WILL GIVE 70,70 70 IN OUTPUT IT WILL DISPLAY ALL THREE OF THEM).

 

 

                               

                                (SORTING)

 EDIT       MTPLP06.TABLE.PDS(SOT) - 01.13          

 Command ===>                                        

 ****** ***************************** Top of Data ***

 000100        IDENTIFICATION DIVISION.             

 000130        PROGRAM-ID. SORTING1.                

 000140        ENVIRONMENT DIVISION.                

 000150        INPUT-OUTPUT SECTION.                

 000160        FILE-CONTROL.                        

 000170              SELECT INFILE ASSIGN TO DD1    

 000180              FILE STATUS IS FS1.            

 000190              SELECT OUTFILE ASSIGN TO DD2   

 000191              FILE STATUS IS FS2.            

 000192              SELECT WORKFILE ASSIGN TO DD3. 

 000193        DATA DIVISION.                       

 000194        FILE SECTION.                        

 000195        FD INFILE.                           

 000196        01 IN-REC.                           

 000197              02 ECODE PIC X(4).             

 000198              02       PIC X(76).            

 000199        FD OUTFILE.

 000200        01 OUT-REC.                                          

000201              02       PIC X(80).                            

000202        SD WORKFILE.                                         

000203        01 WORK-REC.                                         

000204              02 ECODE PIC X(4).                             

000205              02       PIC X(76).                            

000206        WORKING-STORAGE SECTION.                             

000207        77 FS1 PIC XX.                                       

000208        77 FS2 PIC XX.                                        

000209        77 FS3 PIC XX.                                       

000210        PROCEDURE DIVISION.                                  

000211              OPEN INPUT INFILE OUTPUT OUTFILE.              

000212              SORT WORKFILE ASCENDING KEY ECODE OF WORK-REC  

000213              USING INFILE GIVING OUTFILE.                   

000214              CLOSE INFILE OUTFILE.                          

000215              STOP RUN.                                               

 

 

 

EDIT       MTPLP06.TABLE.PDS(INFILE)

Command ===>                       

****** *****************************

000100 1617 ABCAASSDAD MUMBAI      

000200 1212 DEFSAADXZD DELHI       

000300 1312 SDSDDSDSDC PUNE        

000400 1112 GHIFSDASDC CHENNAI     

000500 1000 DDDFJHJHJF BHILLAI     

000600 0022 ASDGQWERTY PUNE        

000700 0112 GESHZXCVVB PUNE    

 

   

 

 EDIT       MTPLP06.TABLE.PDS(COBRUN) - 01.48              

  Command ===>                                               

 ****** ***************************** Top of Data **********

 000100 //MTPLP06A JOB NOTIFY=&SYSUID                      

 000200 //RUN EXEC PGM=SOT                                 

 000300 //STEPLIB DD DSN=MTPLP06.TABLE1.LOADLIB,DISP=SHR   

 000400 //SYSPRINT DD SYSOUT=*                             

 000500 //SYSOUT DD SYSOUT=*                               

 000600 //DD1 DD DSN=MTPLP06.TABLE.PDS(INFILE),DISP=SHR    

 000700 //DD2 DD DSN=MTPLP06.TABLE.PDS(OUTFILE1),DISP=SHR  

 000800 //SYSIN DD *                                       

 000900 /*                                                 

 001000 //    

 

O/P---> ( THE SORTED O/P FOR ECODE WIL COME AS BELOW)

 

00001 0022 ASDGQWERTY PUNE  

00002 0112 GESHZXCVVB PUNE  

00003 1000 DDDFJHJHJF BHILLAI

00004 1112 GHIFSDASDC CHENNAI

00005 1212 DEFSAADXZD DELHI 

00006 1312 SDSDDSDSDC PUNE  

00007 1617 ABCAASSDAD MUMBAI                                             

 

 

 

 

( CALL SUBROUTINE--- 1ST STATIC PROG IT WILL COMBINELY RUN AND COMPILE)

 

EDIT       MTPLP06.CALLSUB.PDS(STATIC) - 01.12          

Command ===>                                            

****** ***************************** Top of Data ********

000001        ID DIVISION.                              

000002        PROGRAM-ID. SMITH.                        

000003        ENVIRONMENT DIVISION.                     

000004        DATA DIVISION.                            

000005        WORKING-STORAGE SECTION.                  

000006        77 A PIC X(30).                            

000007        PROCEDURE DIVISION.                       

000008              MOVE "I AM IN MAIN PROGRAM" TO A.   

000009              DISPLAY A.                          

000010              CALL 'SUBPGM' USING A.              

000011              DISPLAY A.                          

000012              STOP RUN.                           

000013        ID DIVISION.                              

000014        PROGRAM-ID. SUBPGM.                       

000015        ENVIRONMENT DIVISION.                      

000016        DATA DIVISION.                            

000017        LINKAGE SECTION.                           000018        77 A PIC X(30).                          

000019        PROCEDURE DIVISION USING A.              

000020               DISPLAY "I AM IN SUBPGM".         

000021               MOVE "LEAVING THE SUBPGM" TO A.   

000022               DISPLAY A.                        

000023        END PROGRAM SUBPGM         Command ===>             

000024        END PROGRAM SMIT  

 

 

                                ( DYNAMIC PROGRAM)

 

FIRST WE HAVE TO COMPILR SUBPGM THEN COMPIL MAIN AND THEN RUN MAIN AND WILL GET O/P GIVEN BELOW)

 

 

EDIT       MTPLP06.CALLSUB.PDS(MAINDYN) - 01.08         

 Command ===>                                            

 ****** ***************************** Top of Data ********

 000100        ID DIVISION.                              

 000200        PROGRAM-ID. SMITH.                        

 000300        ENVIRONMENT DIVISION.                     

 000400        DATA DIVISION.                             

 000500        WORKING-STORAGE SECTION.                  

 000600        77 A PIC X(30).                           

 000700        PROCEDURE DIVISION.                       

 000800              MOVE "I AM IN MAIN PROGRAM" TO A.   

 000900              DISPLAY A.                          

 001000              CALL 'SUBPGM' USING A.              

 001100              DISPLAY A.                          

 001200              STOP RUN.                           

 

 

 EDIT       MTPLP06.CALLSUB.PDS(SUBPGM) - 01.02           

 Command ===>                                             

 ****** ***************************** Top of Data *********

 000100        ID DIVISION.                               

 000200        PROGRAM-ID. SUBPGM.                        

 000300        ENVIRONMENT DIVISION.                      

 000400        DATA DIVISION.                             

 000500        LINKAGE SECTION.                           

 000600        77 A PIC X(30).                             

 000700        PROCEDURE DIVISION USING A.                

 000800                 DISPLAY "I AM IN SUBPGM".         

 000900                 MOVE "LEAVING THE SUBPGM" TO A.   

 001000                DISPLAY A.                         

 001100                GOBACK.    

 

                                (COMPILE FOR CALL WITH LKED COLUMN--USE LKED SYNTAX ONLY WHILE COMPILING MAIN PGM)

 

 EDIT       MTPLP06.CALLSUB.PDS(COMNEW) - 01.99             Columns 00001

 Command ===>                                                  Scroll ===

 ****** ***************************** Top of Data ***********************

 000100 //MTPLP06A JOB NOTIFY=&SYSUID,CLASS=A                           

 000400 //        JCLLIB ORDER=MAINTEC.PROC.LIB                         

 000500 //STEP1 EXEC IGYWCL,                                            

 000600 //          PGMLIB=MTPLP06.TABLE1.LOADLIB, ==>LOADLIB NAME      

 000700 //          GOPGM=GLOBAL                                        

 000800 //COBOL.SYSIN DD DSN=MTPLP06.CALLSUB.PDS(GLOBAL),DISP=SHR       

 000810 //*LKED.SYSLIB DD DSN=MTPLP06.TABLE1.LOADLIB(SUBPGM),DISP=SHR-->ABOVE. 

 001000 //        

 

                (O/P FOR ALL STATIC, DYNAMIC AND GLOBAL WILL BE SAME AS BELOW)                                                                              

 

****************************

I AM IN MAIN PROGRAM       

I AM IN SUBPGM             

LEAVING THE SUBPGM         

LEAVING THE SUBPGM         

                      

 

 

Hosted by www.Geocities.ws

1