Witam, od pewnego czasu staram się zrozumieć działanie wskaźników, googlując natrafiłem na artykuł
http://4programmers.net/Turbo_Pascal/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.