home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / teaching / vclang11.zip / MONITOR.CLN < prev    next >
Text File  |  1990-08-17  |  821b  |  59 lines

  1. program REVERSE;
  2.  
  3. const
  4.   TRUE  = 1;
  5.   FALSE = 0;
  6. var
  7.   x;
  8.  
  9. monitor STACKHANDLER;
  10.  
  11.   var
  12.     TOP, STACK[20];
  13.  
  14.   procedure UNDERFLOW;
  15.  
  16.     begin
  17.       write('Stack empty')
  18.     end;
  19.  
  20.   procedure OVERFLOW;
  21.  
  22.     begin
  23.       write('Stack full')
  24.     end;
  25.  
  26.   function *EMPTY;
  27.  
  28.     begin
  29.       EMPTY := FALSE;
  30.       if TOP = 0 then EMPTY := TRUE
  31.     end;
  32.  
  33.   procedure *PUSH(ITEM);
  34.  
  35.     begin
  36.       TOP := TOP+1;
  37.       if TOP > 20 then OVERFLOW;
  38.       STACK[TOP] := ITEM
  39.     end;
  40.  
  41.   function *POP;
  42.  
  43.     begin
  44.       if TOP = 0 then UNDERFLOW;
  45.       POP := STACK[TOP];
  46.       TOP := TOP-1
  47.     end;
  48.  
  49.   begin
  50.     TOP := 0
  51.   end;
  52.  
  53. begin
  54.   read(X);
  55.   while X > 0 do
  56.     begin STACKHANDLER.PUSH(X); read(X) end;
  57.   while STACKHANDLER.EMPTY = FALSE do write(STACKHANDLER.POP)
  58. end.
  59.