Ĺadny brzuch
Witam,
mam taką procedurkę srotującą listę dwukierunkową
var zmieniono:boolean; poprzedni,poczatek,kolejny, nastepny:wsk; begin poczatek:=gl; if pos=false then begin {sortowanie wedlug ilosc punktow} repeat zmieniono:=false; poprzedni:=nil; kolejny:=poczatek; nastepny:=kolejny^.nast; while nastepny<>nil do begin if kolejny^.druzyna.pkt<nastepny^.druzyna.pkt then begin if poprzedni=nil then poczatek:=nastepny else poprzedni^.nast:=nastepny; kolejny^.nast:=nastepny^.nast; nastepny^.nast:=kolejny; poprzedni:=nastepny; nastepny:=kolejny^.nast; zmieniono:=true; end else begin poprzedni:=kolejny; kolejny:=nastepny; nastepny:=nastepny^.nast; end; end; until not zmieniono; pos:=true; {posortowano} end; end;
a tak wygląda typy wsk:
type wsk=^skladnik; skladnik = record poprz: wsk; druzyna:record {dane dotyczace druzyny} lp:Integer; nazwa:String[30]; mecze:byte; pkt:Integer; zwyciestwa,remisy,porazki:Integer; bramki: record zdobyte,stracone:Integer; end; dom, wyjazd: record zwy,rem,por:Integer; bram: record zdo, stra:Integer; end; end; end; nast: wsk; end;
Gdy wywołam procedurę sortującą po raz pierwszy wszystko jest ok. Gdy zmieni się ilosc punktow jakiejs druzyny w taki sposob ze po sortowaniu ta druzyna powinna byc pierwsza, procedura ta wyrzuca ten element ktory do tej pory byl pierwszy, a powinien teraz byc na drugim miejscu :/ nie wiem gdzie tu jest blad a przesiedzialem nad tym juz sporo czasu. Bardzo licze na pomoc
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
mam taką procedurkę srotującą listę dwukierunkową
var zmieniono:boolean; poprzedni,poczatek,kolejny, nastepny:wsk; begin poczatek:=gl; if pos=false then begin {sortowanie wedlug ilosc punktow} repeat zmieniono:=false; poprzedni:=nil; kolejny:=poczatek; nastepny:=kolejny^.nast; while nastepny<>nil do begin if kolejny^.druzyna.pkt<nastepny^.druzyna.pkt then begin if poprzedni=nil then poczatek:=nastepny else poprzedni^.nast:=nastepny; kolejny^.nast:=nastepny^.nast; nastepny^.nast:=kolejny; poprzedni:=nastepny; nastepny:=kolejny^.nast; zmieniono:=true; end else begin poprzedni:=kolejny; kolejny:=nastepny; nastepny:=nastepny^.nast; end; end; until not zmieniono; pos:=true; {posortowano} end; end;
a tak wygląda typy wsk:
type wsk=^skladnik; skladnik = record poprz: wsk; druzyna:record {dane dotyczace druzyny} lp:Integer; nazwa:String[30]; mecze:byte; pkt:Integer; zwyciestwa,remisy,porazki:Integer; bramki: record zdobyte,stracone:Integer; end; dom, wyjazd: record zwy,rem,por:Integer; bram: record zdo, stra:Integer; end; end; end; nast: wsk; end;
Gdy wywołam procedurę sortującą po raz pierwszy wszystko jest ok. Gdy zmieni się ilosc punktow jakiejs druzyny w taki sposob ze po sortowaniu ta druzyna powinna byc pierwsza, procedura ta wyrzuca ten element ktory do tej pory byl pierwszy, a powinien teraz byc na drugim miejscu :/ nie wiem gdzie tu jest blad a przesiedzialem nad tym juz sporo czasu. Bardzo licze na pomoc