|исп стековый калькулятор   
цел I, IMAX   
цел таб S[1:100]    
 
алг |число 2001  
нач  
очистить стек  
запомнить5  
запомнить5  
запомнить5  
запомнить4  
запомнить4   
умножить  
умножить  
умножить  
умножить  
запомнить1  
сложить  
показать  
кон  
 
алг очистить стек   
дано | стек калькулятора   
надо | стек калькулятора пуст   
нач    
I := 0   
IMAX := 100   
кон    
 
алг цел POP   
дано I>0 | стек не пуст   
надо  | верхний элемент вытолкнут из стека   
нач    
знач := S[I]   
I := I-1   
кон    
 
алг PUSH(цел E)   
дано I<IMAX | стек не полон   
надо | новый элемент E помещен в стек   
нач    
I := I+1   
S[I] := E   
кон    
 
алг  запомнить0   
нач    
PUSH(0)   
кон    
 
алг  запомнить1   
нач    
PUSH(1)   
кон    
 
алг  запомнить2   
нач    
PUSH(2)   
кон    
 
алг  запомнить3   
нач    
PUSH(3)   
кон    
 
алг  запомнить4   
нач    
PUSH(4)   
кон    
 
алг  запомнить5   
нач    
PUSH(5)   
кон    
 
алг  запомнить6   
нач    
PUSH(6)   
кон    
 
алг  запомнить7   
нач    
PUSH(7)   
кон    
 
алг  запомнить8   
нач    
PUSH(8)   
кон    
 
алг  запомнить9   
нач    
PUSH(9)   
кон    
 
алг  сложить   
дано |   
надо |   
нач    
цел ARG1, ARG2   
ARG2:=POP   
ARG1:=POP   
PUSH(ARG1+ARG2)   
кон    
 
алг  умножить   
дано |   
надо |   
нач    
цел ARG1, ARG2   
ARG2:=POP   
ARG1:=POP   
PUSH(ARG1*ARG2)   
кон    
 
алг  вычесть   
дано |   
надо |   
нач    
цел ARG1, ARG2   
ARG2:=POP   
ARG1:=POP   
PUSH(ARG1-ARG2)   
кон    
 
алг  разделить   
дано |   
надо |   
нач    
цел ARG1, ARG2   
ARG2:=POP   
утв ARG2<>0   
ARG1:=POP   
PUSH(div(ARG1,ARG2))   
кон    
 
алг показать   
дано I>0 | стек не пуст   
надо | показать на экране верхнее число в стеке   
нач    
вывод "стек: ", S[I], нс   
кон    
|кон    
 
 
 
