Program Zasobnik;

type Nick = ^Naboj;
     Naboj = record
       ostry : char;
       dalsi : Nick;
     end;

var zasobnik, strela : Nick;
    i : integer;
    konec : string;
    akce : char;

begin
  {vytvoen zsobnku}
  zasobnik:=nil;
  repeat
    writeln('Stiskni klvesu. Stelba: s, Plnn: p.');
    readln(akce);
    case akce of
      's':
          begin
            if zasobnik = nil then
              writeln('Nicku, m przdn zsobnk.')
            else
            begin
              writeln('Stlme.');
              strela:=zasobnik;
              zasobnik:=zasobnik^.dalsi;
              dispose(strela);
            end;
          end;
      'p':
          begin
            writeln('Plnme.');
            new(strela);
            strela^.dalsi:=zasobnik;
            strela^.ostry:='l';
            zasobnik:=strela;
          end;
      else writeln('Vykvme.');
    end;
    writeln();
    write('Stav zsobnku: ');
    strela:=zasobnik;
    while strela <> nil do
    begin
      write(strela^.ostry);
      strela:=strela^.dalsi;
    end;
    writeln();
    writeln('Chcete-li skonit, napite Konec');
    writeln('Pro pokraovn stisknte Enter');
    readln(konec);
  until konec = 'Konec';

  {ruen zsobnku}
  strela:=zasobnik;
  while strela <> nil do
  begin
    zasobnik:=zasobnik^.dalsi;
    dispose(strela);
    strela:=zasobnik;
  end;

  writeln('Zbylo nco v zsobnku?');
  write('Stav zsobnku: ');
  strela:=zasobnik;
  while strela <> nil do
  begin
    write(strela^.ostry);
    strela:=strela^.dalsi;
  end;
  dispose(zasobnik);
  readln;
end.