COBOL - MainFrames - Page 2

CONDITIONAL NAMES
Ø In COBOL level no# 88 is used for condition checking
Ø Level no# 88 must start from 12th column only
Ø It does not contain any picture clause



EX
ID DIVISION.                                                    
PROGRAM-ID. PGM15.                                               
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 SEL PIC X(2).                                                
      88 VOWELS VALUES 'A','E','I','O','U'.                      
      88 EVEN VALUES '2','4','6','8','10','12','14','16'.        
      88 ODD VALUES '1','3','5','7','9','11','13','15'.          
PROCEDURE DIVISION.                                             
      ACCEPT SEL.                                                
      IF(VOWELS)                                                 
      DISPLAY 'ENTERED VOWELS'                                   
      ELSE IF EVEN                                                
      DISPLAY 'ENTERED EVEN'                                     
      ELSE IF ODD                                                
      DISPLAY 'ENTERED ODD'                                      
      END-IF.                                                     
      DISPLAY SEL.                                               
      STOP RUN.



USAGE CLAUSE
Ø Usage is mainly used for reducing the memory by usage also specifies the internal allocation
Ø By having USAGE we can store large amount of data in small amount of storage
Ø In USAGE we have mainly 4 types. They are…..
1.     USAGE COMP
2.     USAGE COMP-1
3.     USAGE COMP-2
4.     USAGE COMP-3
1. USAGE COMP
Ø COMP means Computational
Ø COMP is binary format having specific ranges
Ø In COMP we have fixed range values as follows
                             9(1) – 9(4)                          2 Bytes
                             9(5) – 9(9)                          4 Bytes
                             9(10) – 9(18)                      8 Bytes
EX
                             01 A PIC 9(3) USAGE COMP.
                             PROCEDURE DIVISION.
                                  MOVE 123 TO A.
                                  DISPLAY A.
                                  STOP RUN.
2. USAGE COMP-1
Ø COMP-1 is single precision floating point number
Ø COMP-1 does not contain picture clause because the value of COMP-1 is fixed for 4 Bytes
Ø COMP-1 accepts only 8 to 9 characters of data
EX
                             01 A USAGE COMP-1

3. USAGE COMP-2
Ø COMP-2 is a double precision floating point number
Ø COMP-2 does not contain picture clause because the value is fixed for 8 Bytes
Ø COMP-2 accepts 17 to 18 characters of data
EX
                             01 A USAGE COMP-2
4. USAGE COMP-3
Ø COMP-3 is a packed decimal format
Ø Packed decimal means “it stores two characters of data within 1 Byte of storage”
Ø In COMP-3 depending on picture clause it allocates the memory for the data item
Ø If picture clause is even. Then……..
                             N/2+1, where n = length of picture clause
EX
                             01 A PIC 9(6) USAGE COMP-3
                             N/2+1 = 6/2+1 = 4 Bytes
Ø If picture clause is odd. Then……….
                             N+1/2
EX
                             01 PIC 9(7) USAGE COMP-3
                             7+1/2 = 4 Bytes
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM16.                                              
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                         
01 A PIC 9(3) USAGE COMP.                                       
01 B PIC 9(5) USAGE COMP.                                       
01 C PIC 9(17) USAGE COMP.                                      
01 D USAGE COMP-1.                                               
01 E USAGE COMP-2.
01 F PIC 9(3) USAGE COMP-3.                                                                                    
01 G PIC 9(5) USAGE COMP-3.                                     
01 H PIC 9(6) USAGE COMP-3.                                      
01 I PIC 9(16) USAGE COMP-3.                                    
PROCEDURE DIVISION.                                             
      DISPLAY LENGTH OF A.                                       
      DISPLAY LENGTH OF B.                                        
      DISPLAY LENGTH OF C.                                       
      DISPLAY LENGTH OF D.                                       
      DISPLAY LENGTH OF E.                                       
      DISPLAY LENGTH OF F.                                       
      DISPLAY LENGTH OF G.                                       
      DISPLAY LENGTH OF H.
      DISPLAY LENGTH OF I.                                       
      STOP RUN.
ARITHMETIC VERBS
           In COBOL we have mainly 4 Arithmetic Verbs. They are…
1.     ADD
2.     SUBTRACT
3.     MULTIPLY
4.     DIVIDE
1. ADD – Used to perform Addition Operation
        SYNTAX
1.     ADD D.NAME1 TO D.NAME2
2.     ADD D.NAME1,D.NAME2………..TO D.NAMEN
3.     ADD D.NAME1 TO D.NAME2 GIVING D.NAME3
4.     ADD D.NAME1,D.NAME2……….. TO D.NAMEN GIVING D.NAMEX
2. SUBTRACT –
         SYNTAX
1.     SUBTRACT D.NAME1 FROM D.NAME2
2.     SUBTRACT D.NAME1,D.NAME2………..FROM D.NAMEN
3.     SUBTRACT D.NAME1 FROM D.NAME2 GIVING D.NAME3
3. MULTIPLY –
         SYNTAX
1.     MULTIPLY D.NAME1 BY D.NAME2
2.     MULTIPLY D.NAME1 BY D.NAME2 GIVING D.NAME3
4. DIVIDE –
            While performing Division Operation we have 2 ways
CASE1: USING ‘BY’
             SYNTAX
1.     DIVIDE D.NAME1 BY D.NAME2
2.     DIVIDE D.NAME1 BY D.NAME2 GIVING D.NAME3
3.     DIVIDE D.NAME1 BY D.NAME2 GIVING D.NAME3 REMAINDER D.NAME4
EX
                DIVIDE A BY B GIVING C      i.e., C = A/B
CASE2: USING ‘INTO’
             SYNTAX
1.     DIVIDE D.NAME1 INTO D.NAME2
2.     DIVIDE D.NAME1 INTO D.NAME2 GIVING D.NAME3
3.     DIVIDE D.NAME1 INTO D.NAME2 GIVING D.NAME3 REMAINDER D.NAME
EX
              DIVIDE A INTO B GIVING C              i.e., C =B/A
EX1
ID DIVISION.
PROGRAM-ID. PGM17.
DATA DIVISION.               
WORKING-STORAGE SECTION.
01 A PIC 9(2).    
01 B PIC 9(2).
01 C PIC 9(4).
PROCEDURE DIVISION.
      ACCEPT A.
      ACCEPT B.                             
      ADD A TO B GIVING C.
      DISPLAY C.                    
      INITIALIZE A.
      INITIALIZE B.
      ADD A,B TO B GIVING C.
      DISPLAY C.                                
      INITIALIZE A.
      INITIALIZE B.
      ADD A TO B.
      DISPLAY B.
      STOP RUN.
EX2
ID DIVISION.                                                    
PROGRAM-ID. PGM19.                                              
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                         
01 A PIC 9(2).                                                  
01 B PIC 9(2).                                                  
01 C PIC 9(4).                           
 PROCEDURE DIVISION.                                              
      ACCEPT A.                                                  
      ACCEPT B.                                                  
      SUBTRACT A FROM B GIVING C.                                         
      DISPLAY C.                                                  
      SUBTRACT A,B FROM B GIVING C.                                       
      DISPLAY C.                                                 
      SUBTRACT A,B FROM B.                                
      DISPLAY B.                                                 
      STOP RUN.
           While doing SUBTRACT in the above example B value must be greater than A
EX3
ID DIVISION.                                                    
PROGRAM-ID. PGM20.                                               
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2).                                                  
01 B PIC 9(2).                                                   
01 C PIC 9(4).                                                  
PROCEDURE DIVISION.                                             
      ACCEPT A.                                                  
      ACCEPT B.                                                  
      MULTIPLY A BY B GIVING C.                                  
      DISPLAY C.                                                 
      MULTIPLY A BY B.                                            
      DISPLAY B.                                                 
      STOP RUN.
EX4
ID DIVISION.                                                    
PROGRAM-ID. PGM21.                                              
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2).                                                  
01 B PIC 9(2).                                                  
01 C PIC 9(4).                                                   
01 D PIC 9(2).                                                  
PROCEDURE DIVISION.                                             
      ACCEPT A.                                                  
      ACCEPT B.                                                   
      DIVIDE A BY B.                                    
      DISPLAY B.                                                 
      DIVIDE A BY B GIVING C REMAINDER D.                        
      DISPLAY C.                                                 
      DISPLAY D.
      DIVIDE A BY B GIVING C.
      DIVIDE C.                                                 
      STOP RUN.
EX5
ID DIVISION.                                                    
PROGRAM-ID. PGM21.                                              
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2).                                                   
01 B PIC 9(2).                                                  
01 C PIC 9(4).                                                  
01 D PIC 9(2).                                                  
PROCEDURE DIVISION.                                              
      ACCEPT A.                                                  
      ACCEPT B.                                                  
      DIVIDE A INTO B.                                    
      DISPLAY B.                                                  
      DIVIDE A INTO B GIVING C REMAINDER D.                        
      DISPLAY C.                                                 
      DISPLAY D.
      DIVIDE A INTO B GIVING C.
      DIVIDE C.                                                  
      STOP RUN. 
COMPUTE VERB
Ø By using ‘COMPUTE’ we can effectively replace COBOL Arithmetic Verbs
Ø Using ‘COMPUTE’ we can also perform Arithmetic Operations as follows
                             ADD with +
                             SUBTACT with –
                             MULTIPLY with *
                             DIVIDE with /
COMPUTE C = A + B
COMPUTE C = A – B
COMPUTE C = A * B
COMPUTE C = A / B


EX
ID DIVISION.                                                    
PROGRAM-ID. PGM21.                                              
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2).                                                  
01 B PIC 9(2).                                                  
01 C PIC 9(2).                                                   
01 D PIC 9(2).                                                  
PROCEDURE DIVISION.                                             
      ACCEPT A.                                                  
      ACCEPT B.                                                   
      COMPUTE C = A + B.                                         
      DISPLAY C.                                                 
      COMPUTE D = A - B.                                         
      DISPLAY D.                                                  
      INITIALIZE C.                                              
      INITIALIZE D.                                              
      COMPUTE C = A * B.                                         
      DISPLAY C.                                                  
      COMPUTE D = A / B.                                         
      DISPLAY D.                                                 
      STOP RUN.                                                  
ON SIZE ERROR
Ø It is a COBOL verb mainly used in arithmetic operations
Ø While performing an arithmetic operation if the resultant data item is unable to store the actual result of an arithmetic operation it will print an user defined message to the output
SYNTAX
      ADD D.NAME1 TO D.NAME2 GIVING D.NAME3 ON SIZE ERROR
      DISPLAY “IMPERATIVE STATEMENT”
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM1.                                               
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2) VALUE ZEROS.                                      
01 B PIC 9(2) VALUE ZEROS.                                      
01 C PIC 9(2) VALUE ZEROS.                                      
PROCEDURE DIVISION.                                             
      ACCEPT A.                                                  
      ACCEPT B.                                                  
      ADD A TO B GIVING C ON SIZE ERROR                          
      DISPLAY "SIZE ERROR OCCURED".                              
      DISPLAY C.                                                 
      STOP RUN.                                                  
INPUT                                                                                    OUTPUT
10   ,   90                                                                                 ON SIZE ERROR
ROUNDED
Ø By using ROUNDED we can round the value after decimal point according to the given picture clause
Ø It is a COBOL VERB and only applicable for arithmetic expressions
EX                      
                             ADD A TO B GIVING C ROUNDED
                             A = 12.3793
                             B = 13.1073
 


                              C = 25.4866
       For >5                NEXT
       For <=5             Same Value
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM24.                                              
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 A PIC 9(3)V9(4) VALUE 117.3237.                              
01 B PIC 9(3)V9(4) VALUE 101.3563.                              
01 C PIC 9(3).9(3).                                              
01 D PIC 9(2).9(2).                                             
01 E PIC 9(2).9(1).                                             
PROCEDURE DIVISION.                                             
      ADD A TO B GIVING C ROUNDED.                               
      DISPLAY C.                                                 
      ADD A TO B GIVING D ROUNDED.                               
      DISPLAY D.                                                 
      ADD A TO B GIVING E ROUNDED.                               
      DISPLAY E.                                                 
      ADD A TO B GIVING C.                                       
      DISPLAY C.                                                  
      STOP RUN.                                                  
COPY STATEMENT
Ø By using COPY STATEMENT we can invoke the repeated lines of code kept in a member of PDS file for code reusability
Ø By using COPY STATEMENT we can invoke the members into currently running COBOL program
Ø The included PDS is called COPY LIBRARY and the members are called COPY BOOKS
Ø We can invoke any no of COPY BOOKS into currently running program
Ø According to the 1st statement column no in COPY BOOK, we have to write the COPY STATEMENT in the program
Ø To include the COPY BOOKS into the program we have to write the following statement while compiling
//COBOL.SYSLIB DD DSN=COPYLIBRARY (COPYBOOK)
The code is written in the members of PDS (MATE02.GRP.PDS)
IN COPY1 (STARTED FROM COLUMN 8)
ID DIVISION.                                                    
PROGRAM-ID. PGM24.                                              
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                         
01 A PIC 9(3).                              
01 B PIC 9(3).                              
01 C PIC 9(6).
IN COPY2 (STARTED FROM COLUMN12)
                COMPUTE C = A + B.
                DISPLAY C.
IN COPY3
                COMPUTE C = A - B.
                DISPLAY C.
IN COPY4
                COMPUTE C = A * B.
                DISPLAY C.
IN COPY5
                COMPUTE C = A / B.
                DISPLAY C.
COPY COPY1.                                                      
PROCEDURE DIVISION.
                ACCEPT A.
                ACCEPT B.
                COPY COPY4.                                                
                STOP RUN.                                                 
PARM PARAMETER
Ø By using PARM we can pass MAX 100 characters of data into the COBOL program
Ø PARM is a variable character which contain both length and text fields
SYNTAX
           01 PARM.
                  02 LENGTH-FIELD PIC S9(VALUE) USAGE COMP.
                  02 TEXT-FIELD PIC X(VALUE).
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM26.                                              
DATA DIVISION.                                                  
LINKAGE SECTION.                                                 
01 PARM-VAL.                                                    
      05 P-LEN PIC S9(4) USAGE COMP.                             
      05 P-TXT PIC X(40).                                        
PROCEDURE DIVISION USING PARM-VAL.                               
      DISPLAY P-TXT.                                             
      DISPLAY P-LEN.                                             
      STOP RUN.                                                  
                                  After successful compilation, at run-time give the input value for PARM as follows
        PARM = ‘WELCOME TO PARM’
CORRESPONDING VERB
Ø It is a COBOL reserved word
Ø In CORRESPONDING it moves the data only to the corresponding data names
Ø In CORRESPONDING we have various types as follows………
1.     MOVE CORRESPONDING
2.     ADD CORRESPONDING
3.     SUBTRACT CORRESPONDING
EX: MOVE CORRESPONDING
ID DIVISION.                                                    
PROGRAM-ID. PGM1.                                               
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 GRP1.                                                        
      02 A2 PIC A(5) VALUE 'HAI'.                                
      02 A4 PIC 9(3) VALUE 178.                                   
01 GRP2.                                                        
      02 A1 PIC A(4) VALUE 'BYE'.                                
      02 A2 PIC A(3) VALUE 'HI'.                                 
      02 A3 PIC X(3) VALUE 'X24'.                                
      02 A4 PIC 9(5) VALUE 1257.                                 
PROCEDURE DIVISION.                                             
      MOVE CORRESPONDING GRP1 TO GRP2.                           
      DISPLAY GRP1.                                              
      DISPLAY GRP2.                                              
      STOP RUN.                                                  


EX: ADD CORRESPONDING
ID DIVISION.                                                     
PROGRAM-ID. PGM1.                                               
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 A.                                                            
      02 X1 PIC 9(3) VALUE 175.                                  
      02 X2 PIC 9(3) VALUE 5.                                    
01 B.                                                           
      02 X3 PIC A(7) VALUE 'WELCOME'.                            
      02 X4 PIC 9(5) VALUE 17573.                                
      02 X1 PIC 9(2) VALUE 17.                                   
PROCEDURE DIVISION.                                             
      ADD CORRESPONDING A TO B.                                  
      DISPLAY A.                                                 
      DISPLAY B.                                                 
      STOP RUN.                                                  
EX: SUBTRACT CORRESPONDING
ID DIVISION.                                                    
PROGRAM-ID. PGM1.                                               
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                         
01 A.                                                           
       02 X1 PIC 9(3) VALUE 175.                                 
       02 X2 PIC 9(3) VALUE 5.                                   
01 B.                                                            
       02 X3 PIC A(15) VALUE 'WELCOME TO SUBTRACT'.              
       02 X1 PIC 9(5) VALUE 18175.                               
       02 X2 PIC 9(2) VALUE 3.                                   
PROCEDURE DIVISION.                                             
       SUBTRACT CORRESPONDING A FROM B.                          
       DISPLAY A.                                                
       DISPLAY B.                                                
       STOP RUN.                                                 
SEQUENCE CONTROL VERB
Ø By using ‘SEQUENCE CONTROL VERB’ we can overcome the sequential process of COBOL program
Ø In COBOL we have various ‘SEQUENCE CONTROL VERB’ as follows…..
1.     PERFORM
2.     GO TO
3.     EVALUATE
4.     IF & NESTED IF
5.     CONTINUE
6.     NEXT SENTENCE
1. PERFORM STATEMENT
Ø Using ‘PERFORM’ statement we can execute any required paragraph existed in the program
Ø In ‘PERFORM’ after successful execution of the paragraph the control will be written back to the next statement after ‘PERFORM’
Ø In PERFORM we have various types as follows……….
1.     PERFORM PARNAME
2.     PERFORM PARANAME N TIMES
3.     PERFORM PARANAME THRU PARANAME
4.     PERFORM PARANAME THRU PARANAME N TIMES
5.     PERFORM PARANAME UNTIL CONDITION
6.     PERFORM PARANAME VARYING UNTIL CONDITION
7.     INLINE PERFORM
1. PERFORM PARANAME
                                  Using this possibility we can evaluate any required paragraph among the paragraph
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM30.                                               
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2).                                                  
01 B PIC 9(2).                                                   
01 C PIC 9(4) VALUE ZEROS.                                      
PROCEDURE DIVISION.                                             
      ACCEPT A.                                                  
      ACCEPT B.                                                   
      PERFORM ADD-PARA.                                          
      PERFORM SUB-PARA.                                          
      STOP RUN.                                                  
      MUL-PARA.                                                   
          COMPUTE C = A * B.                                     
          DISPLAY C.                                             
      ADD-PARA.                                                  
          COMPUTE C = A + B.                                     
          DISPLAY C.                                             
      DIV-PARA.                                                  
          COMPUTE C = A / B.                                     
         DISPLAY C.                                             
      SUB-PARA.                                                  
         COMPUTE C = A - B.                                     
         DISPLAY C.                                             
2. PERFORM PARANAME N TIMES
          Based on requirement we can repeat any paragraph for N no of times
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM30.                                              
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2).                                                  
01 B PIC 9(2).                                                  
01 C PIC 9(4) VALUE ZEROS.                                      
PROCEDURE DIVISION.                                             
      ACCEPT A.                                                  
      ACCEPT B.                                                  
      PERFORM DIV-PARA 2 TIMES.                                          
      PERFORM MUL-PARA 3 TIMES.                                          
      STOP RUN.                                                  
      MUL-PARA.                                                   
          COMPUTE C = A * B.                                     
          DISPLAY C.                                             
      ADD-PARA.                                                  
          COMPUTE C = A + B.                                     
          DISPLAY C.                                             
      DIV-PARA.                                                  
          COMPUTE C = A / B.                                     
         DISPLAY C.                                             
      SUB-PARA.                                                  
         COMPUTE C = A - B.                                     
         DISPLAY C.
3. PERFORM PARANAME THRU PARANAME
            We can process the group of paragraphs within 1 perform statement as follows
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM30.                                              
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2).                                                  
01 B PIC 9(2).                                                  
01 C PIC 9(4) VALUE ZEROS.                                       
PROCEDURE DIVISION.                                             
      ACCEPT A.                                                  
      ACCEPT B.                                                  
      PERFORM ADD-PARA THRU DIV-PARA.                                          
      PERFORM MUL-PARA THRU SUB-PARA 2 TIMES.                                          
      STOP RUN.                                                  
      MUL-PARA.                                                   
          COMPUTE C = A * B.                                     
          DISPLAY C.                                             
      ADD-PARA.                                                  
          COMPUTE C = A + B.                                      
          DISPLAY C.                                             
      DIV-PARA.                                                  
          COMPUTE C = A / B.                                     
         DISPLAY C.                                              
      SUB-PARA.                                                  
         COMPUTE C = A - B.                                     
         DISPLAY C.

4. PERFORM PARANAME UNTIL CONDITION
           In this based on given condition we can execute the required paragraph
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM30.                                              
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 A PIC 9(1) VALUE 1.                                                                                         
PROCEDURE DIVISION.                                             
      PERFORM UNTIL-PARA UNTIL A>3.                                                            
      STOP RUN.                                                  
      UNTIL-PARA.
              DISPLAY ‘WELCOME TO PARA’.
              COMPUTE A = A+1.                                                  
5. PERFORM VARYING CONDITION
            Using varying we can repeat the para for n = no of times sequentially
EX1
ID DIVISION.                                                    
PROGRAM-ID. PGM30.                                               
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 I PIC 9(1).                                                                                          
PROCEDURE DIVISION.                                             
      PERFORM VARY-PARA VARYING I FROM 1 BY 1 UNTIL I>3.
      DISPLAY ‘VARYING SEQUENTIALLY’                                                            
      STOP RUN.                                                   
      VARY-PARA.
              DISPLAY ‘WELCOME TO VARYING’.
EX2
ID DIVISION.                                                    
PROGRAM-ID. PGM30.                                              
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 I PIC 9(1).                                                                                         
PROCEDURE DIVISION.                                              
      PERFORM VARY-PARA VARYING I FROM 3 BY -1 UNTIL I>3.
      DISPLAY ‘VARYING SEQUENTIALLY’                                                            
      STOP RUN.                                                  
      VARY-PARA.
              DISPLAY ‘WELCOME TO VARYING’.
CASE STUDY
GENERATING THE TABLES USING COBOL
          By using PERFORM STATEMENT in COBOL we can generate the tables as follows


EX
ID DIVISION.                                                    
PROGRAM-ID. PGM30.                                              
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2).                                                   
01 B PIC 9(2).                                                  
01 C PIC 9(4) VALUE ZEROS.                                      
PROCEDURE DIVISION.                                             
      ACCEPT A.                                                   
      ACCEPT B.                                                                       
      PERFORM TAB-PARA VARYING A FROM 1 BY 1 UNTIL A>20 AFTER                      B FROM 1 BY 1 UNTIL B>20.
      DISPLAY ’20 * 20 TABLES GENERATED’                                                             
      STOP RUN.                                                  
      TAB-PARA.
              COMPUTE C = A * B.
              DISPLAY A ‘*’ B ‘=’ C
6. INLINE PERFORM
Ø By using INLINE PERFORM we can process the list of statements as follows
Ø For INLINE PERFORM ‘END-PERFORM’ is mandatory


EX
ID DIVISION.                                                    
PROGRAM-ID. PGM1.                                               
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 A PIC 9(2) VALUE 08.                                         
01 B PIC 9(2) VALUE 09.                                         
01 C PIC 9(2).                                                   
PROCEDURE DIVISION.                                             
      PERFORM                                                    
      ADD A TO B GIVING C                                        
      DISPLAY C                                                  
      SUBTRACT B FROM A GIVING C                                 
      DISPLAY C                                                  
      MULTIPLY A BY B GIVING C                                    
      DISPLAY C                                                  
      END-PERFORM.                                               
      STOP RUN.
2. GO TO
Ø By using ‘GO TO’ we can transfer the control permanently from one place to another place within a program
Ø ‘GO TO’ permanently transfers the control, we cant expect cursor back
Ø Compare to PERFORM, GO TO is having more logical errors

EX
ID DIVISION.                                                    
PROGRAM-ID. PGM36.                                               
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 A PIC 9(4) VALUE 0072.                                       
01 B PIC 9(4) VALUE 0082.                                        
01 C PIC 9(4).                                                  
PROCEDURE DIVISION.                                             
      PERFORM ADD-PARA THRU DIV-PARA.                            
      GO TO SUB-PARA.                                             
      PERFORM MUL-PARA.                                          
      STOP RUN.
      MUL-PARA.                                                  
           COMPUTE C = A * B.                                    
           DISPLAY C.                                                  
      ADD-PARA.                                                  
           COMPUTE C = A + B.                                    
           DISPLAY C.                                                                              
      DIV-PARA.                                                  
           COMPUTE C = A / B.                                    
           DISPLAY C.                                            
      SUB-PARA.                                                  
           COMPUTE C = A - B.                                    
           DISPLAY C.
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM36.                                               
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 A PIC 9(4) VALUE 0072.                                       
01 B PIC 9(4) VALUE 0082.                                        
01 C PIC 9(4).                                                  
PROCEDURE DIVISION.                                             
      PERFORM ADD-PARA THRU DIV-PARA.                            
      GO TO SUB-PARA.                                            
      PERFORM MUL-PARA.                                          
      MUL-PARA.                                                  
           COMPUTE C = A * B.                                    
           DISPLAY C.                                                  
      ADD-PARA.                                                  
           COMPUTE C = A + B.                                    
           DISPLAY C.                                                                              
      DIV-PARA.                                                  
           COMPUTE C = A / B.                                    
           DISPLAY C.                                            
      SUB-PARA.                                                  
           COMPUTE C = A - B.                                    
           DISPLAY C.
           STOP RUN.
                                  While using GO TO we always place STOP RUN at-last only
IF & NESTED IF
Ø Using IF we can also PERFORM condition checking
Ø ‘IF AND ELSE’ are used for EVALUATING the given data
SYNTAX
                             IF <COND>
                                  DISPLAY ‘IMPERATIVE STATEMENT’
                             ELSE
                                  DISPLAY ‘IMPERATIVE STATEMENT’
                             END-IF.
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM38.                                              
DATA DIVISION.                                                  
WORKING-STORAGE SECTION.                                        
01 A PIC 9(3) VALUE 127.                                         
01 B PIC 9(3) VALUE 137.                                        
PROCEDURE DIVISION.                                             
     IF A>B                                                     
     DISPLAY 'A IS BIGGER'.                                      
     ELSE                                                       
     DISPLAY 'B IS BIGGER'.                                     
     END-IF.                                                    
     STOP RUN.
EVALUATE
Ø Using EVALUATE we can execute the case structure
Ø Using EVALUATE we can effectively replace ‘NESTED-IF’ statement
SYNTAX
            EVALUATE TRUE/FALSE
            WHEN COND1
              DISPLAY ‘IMPERATIVE STATEMENT’
            WHEN COND2
              DISPLAY ‘IMPERATIVE STATEMENT’
            ………
            ………
            ………
            ………
            ……….
            WHEN CONDn
              DISPLAY ‘IMPERATIVE STATEMENT’
            WHEN OTHER
              DISPLAY ‘IMPERATIVE STATEMENT’
            END-EVALUATE.
EX
ID DIVISION.                                                    
PROGRAM-ID. PGM39.                                              
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                        
01 MONTH PIC 99.
01 MONTHNAME PIC A(15).
01 DAYS PIC 99.                                               
PROCEDURE DIVISION.
     DISPLAY “ENTER THE MONTH NUMBER”.                                        
     ACCEPT MONTH.
     DISPLAY MONTH.
     DISPLAY MONTHNAME.
MONTH-PARA                                      
     EVALUATE MONTH                                              
       WHEN 1 MOVE 'JANUARY' TO MONTHNAME                    
       WHEN 2 MOVE 'FEBRUARY' TO MONTHNAME
       WHEN 3 MOVE 'MARCH' TO MONTHNAME                    
       WHEN 4 MOVE 'APRIL' TO MONTHNAME                
       WHEN 5 MOVE 'MAY' TO MONTHNAME                    
       WHEN 6 MOVE 'JUNE' TO MONTHNAME                
       WHEN 7 MOVE 'JULY' TO MONTHNAME                    
       WHEN 8 MOVE 'AUGUST' TO MONTHNAME                
       WHEN 9 MOVE 'SEPTEMBER' TO MONTHNAME                    
       WHEN 10 MOVE 'OCTOBER' TO MONTHNAME                
       WHEN 11 MOVE 'NOVEMBER’ TO MONTHNAME                    
       WHEN 12 MOVE 'DECEMBER' TO MONTHNAME                
      END-EVALUATE.

DAY-PARA
       MOVE ‘DDDDDDDD’ TO MONTHNAME.
       DISPLAY MONTHNAME.
       EVALUATE TRUE
                  WHEN MONTH = 4 OR 6 OR 9 OR 11
                            MOVE 30 TO DAYS
                  WHEN MONTH = 2
                            MOVE 28 TO DAYS
                  WHEN OTHER MOVE 31 TO DAYS
       END-EVALUATE.                 
       STOP RUN.                                                 
CONTINUE AND NEXT SENTENCE
Ø CONTINUE will transfer the control to the next statement after an explicit scope terminator where as NEXT SENTENCE will transfer control to the next sentence after next period
Ø These two are mainly used for navigating within a program

IF A>B
     CONTINUE/NEXT SENTENCE
IF B>C
     DISPLAY ‘B IS BIGGER’
ELSE
     DISPLAY ‘C IS BIG’
Ø CONTINUE is like a NULL STATEMENT which does not do anything where as NEXT SENTENCE will bypass the statements from execution



No comments:

Post a Comment