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