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

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.                               

Advertisements
Loading...

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