Toll, wenn die Urheber schon klar sind und keiner was macht. Das hier soll ein Ring werden, aber irgendwo ist ein Fehler:
Delphi-Quellcode:
procedure VorLottoZiehung; // Lottotrommel mit 49 Kugeln füllen
var i : byte;
neu : PKugel;
begin
anfang := nil;
i := 1;
new (neu);
neu^.wert := i;
neu^.naechst := anfang;
anfang := neu;
kugel := anfang;
for i := 2 to MaxKugeln do begin
new (neu);
neu^.wert := i;
neu^.naechst := kugel;
new (kugel);
kugel := neu;
end;
new (ende); // verkettete Liste ist fertig
ende := kugel;
ende^.naechst := anfang; // jetzt ist der Kreis geschlossen !!
end;
Muß ein dummer Fehler sein. Auf Anhieb sehe ich ihn aber nicht. Wer wollte den Ring noch bauen ? Dürfte einfach zu finden sein, aber ich habe mich jetzt verhackstückelt.
Und so wollte ich mal die "sich drehende Lottotrommel" simulieren (vorerst sortiert) :
Delphi-Quellcode:
procedure KugelnPruefen (e : integer); // Ziehungsbeamter, haha
var i,
ElementeWeiter : integer;
begin
randomize;
Kugel := anfang;
while kugel <> ende do begin
form1.memo2.Lines.Add(IntToStr (Kugel^.wert));
Kugel := Kugel^.naechst;
end;
end;
Ich vermute mal, mit dem anfang und dem ende, da stimmt was nicht.