[Pascal] Stos i wskazniki

0

Witam, od pewnego czasu staram się zrozumieć działanie wskaźników, googlując natrafiłem na artykuł
Podstawowe struktury danych
więc zacząłem od Stosu, mam jednak problem z prawidłowym działaniem mojego problemu, w czym tkwi błąd?

 program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type PStos = ^TStos;
  TStos = record
    Liczba: Byte;
    Nastepny: PStos;
  end;
var
pocz : PStos;
Liczba : byte;

procedure PElem(Pocz : PStos; Liczba : byte);
begin
  Pocz := nil;
  WriteLn('Podaj liczbę');
  Read(Liczba);
  if Liczba <> 0 then
    if Pocz = nil then
    begin
      New(Pocz);
      Pocz^.Liczba := Liczba;
      Pocz^.Nastepny := nil;
    end;
end;

    procedure DodajS(var Pocz: PStos);
  var
    Nowy: PStos;
     Liczba: Byte;
  begin
  writeln('Podaj Liczbe : ');
  read(liczba);
    New(Nowy);
    Nowy^.Liczba := Liczba;
    Nowy^.Nastepny := Pocz;
    Pocz := Nowy;
  end;

    procedure Wypisz(Pocz: PStos);
  begin
    while Pocz <> nil do
    begin
      WriteLn(Pocz^.Liczba);
      Pocz := Pocz^.Nastepny;
    end;
  end;

begin

     PElem(pocz, liczba);
     DodajS(pocz);
     Wypisz(pocz);
     readln;

end.
0

Opisz jaki to błąd. Składniowy? Logiczny? Gdzie występuje?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0