[Back to TURTLE SWAG index] [Back to Main SWAG index] [Original]
(* ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Programated by Vladimir Zahoransky ³
³ Vladko software ³
³ Contact : zahoran@cezap.ii.fmph.uniba.sk ³
³ Program tema : Statical Ostack for beginers ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ *)
{
Well, I had a lot of mails about statical stack. Some programers
write me : The statical stack is difficult to use and they have some
problems about Record prvok. They have problems with rekord, because
it is struktured type and ... .
It is not so difficult to update to this version. This version
is absolutly easy to undestand. The type record have all variables
used in rekusion. (for example n,a are used, but v is REKUSIVE
VARIABLE) You muth not to remember !!! This is usualy mistake.
This version is for rekpic19.pas. If you want to use this unit
in your program, you muth use first statical stack or this, but
you muth to update this in correkt version !
Update this unit : In record write all parameters for rekusion.
Find rekusion variable !
Update all paremeters (input/output) in metods
in this unit ! (push, pop)
Please control positions of parameters in record
in our program !
}
unit oStack_b;
interface
Const maxstack=100;
Type prvok=record
V,N:integer;
A:real
End;
{prvok = item}
Stack=object
st: Array[1..maxstack] of prvok;
vrch: 0..maxstack;
Procedure init;
Function full:boolean;
Function empty:boolean;
Procedure push(v1,n1:integer; a1:real);
Procedure pop(var v1,n1:integer; var a1:real);
End;
Implementation
Procedure chyba(s:string);
Begin
writeln(s);
halt;
End;
Procedure Stack.init;
Begin
vrch:=0;
End;
Function Stack.full:boolean;
Begin
full:=vrch=maxstack;
End;
Function Stack.empty:boolean;
Begin
empty:=vrch=0
End;
Procedure Stack.push(v1,n1:integer; a1:real);
Begin
if full Then chyba('Full stack !') {Chyba = mistake}
Else Begin
Inc(vrch);
With st[vrch] do begin v:=v1; n:=n1; a:=a1 end;
End
End;
Procedure Stack.pop(var v1,n1:integer; var a1:real);
begin
If empty Then chyba('Empty stack !')
Else Begin
With st[vrch] do begin v1:=v; n1:=n; a1:=a end;
Dec(vrch);
End
End;
end.
[Back to TURTLE SWAG index] [Back to Main SWAG index] [Original]