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.
Zakładki