Program w Pascalu - pytanie
Mam napisać program który będzie za pomocą listy jednokierunkowej segregował podane słowa alfabetycznie i wypisywał je.
Nie mam pojęcia, gdzie tutaj jest błąd, ponieważ delphi nie wywala żadnych errorów, tylko po prostu się zamyka, jeśli ktoś mógłby pomóc, to byłbym wdzięczny. Na razie mam tylko 2 procedury, menu jest wzięte z innego programu.
Kod:
program pgrzast;
{$APPTYPE CONSOLE}
type
_wsk = ^wpis;
wpis = record
slowo: string;
dalej: _wsk;
end;
function sprawdz(s1, s2:string):boolean;
var
a:integer;
begin
if ord(s1[1]) < ord(s2[1]) then result:= true
else if ord(s1[1]) < ord(s2[1]) then result :=false
else if ord(s1[1]) = ord(s2[1]) then
result:=sprawdz(copy(s1,2,length(s1)),copy(s2,2,length(s2)))
end;
procedure Dodaj(var pocz: _wsk);
var
e,tmp: _wsk;
begin
new(e);
writeln('Podaj slowo do wpisania:');
readln(e^.slowo);
if pocz = nil then
begin
e^.dalej:=pocz;
pocz:=e;
end
else
tmp:=pocz;
while pocz <> nil do
begin
if Sprawdz(e^.slowo,pocz^.slowo) then tmp:=tmp^.dalej;
pocz:=pocz^.dalej;
end;
e^.dalej:=tmp^.dalej;
tmp^.dalej:=e;
end;//Dodaj
procedure PokazListe(Pocz: _wsk);
begin
while Pocz<>nil do
begin
write(Pocz^.slowo,^i);
Pocz:=Pocz^.dalej;
end;
end;
//GLOWNY
var
pocz: _wsk;
slowo1,slowo2:string;
znak:char;
begin
Pocz:=nil;
repeat
writeln('Lista jednokierunkowa');
writeln('1 - pokaz cala Liste');
writeln('2 - dodaj element do Listy');
writeln('3 - zdejmij element z Listy');
writeln('q - zakoncz program');
readln(znak);
case znak of
'1': PokazListe(Pocz);
'2': Dodaj(Pocz);
'q': writeln('Do zobaczenia...');
else
write('Wybrales inny klawisz, nacisnij ENTER aby wrocic');
end;
readln;
until znak='q';
end.