program tester;
{ Tento program velmi základně testuje zásobník z unity UnitZasobnik. Kapacita zásobníku je dána
konstantou MAX z unity UnitData. Zde zkusíme přidat do zásobníku MAX+2 prvků (které načteme ze vstupu)
a následně vybrat MAX+2 prvků (a vypsat je na výstup). }
uses UnitZasobnik, UnitData;
var D:TData;
i:integer;
procedure testZasobnik;
var Z:TZas;
begin
initZas(Z); { Inicializuje zásobník Z, tzn. vytvoří prázdný zásobník. }
writeln('Zadejte ',MAX+2,' dat ve formatu: id mezera jmeno. Kazde na vlastni radek.');
{ Načteme a přidáme do zásobníku MAX+2 prvků. Jelikož zásobník má kapacitu jen MAX prvků,
tak poslední dva se tam nevejdou a vypíše se na obrazovku nějaká hláška. }
for i:=1 to MAX+2 do
begin
nacti(D);
push(Z,D);
end;
writeln('Nasleduje vyber ',MAX+2,', prvku ze zasobniku.');
{ Vybereme ze zásobníku a vypíšeme MAX+2 prvků. Jelikož zásobník má kapacitu jen MAX prvků,
tak u posledních dvou výběrů se na obrazovku vypíše jen nějaká hláška. }
for i:=1 to MAX+2 do
begin
D:=pop(Z);
if (not jsouChybna(D)) then
vypis(D); { Pokud byl zásobník prázdný, vrátil chybná data - a ta vypisovat nechceme.}
end;
end;
begin
testZasobnik;
end.
Kdo byste našel v nějakém z těchto programů chybu, dejte mi to vědět - můžete tak získat bonusové body (1 chyba ≈ 5 bodů). ;)