Guten Abend,
[drei Leerzeilen entfernt, Luckie]
ich mache momentan Delphi in Informatik und habe nebenher angefangen ein-zwei eigene Programme zu schreiben.
[drei Leerzeilen entfernt, Luckie]
Darunter war auch die Idee ein "Lotto-Programm" zu schreiben - also 6 aus 49 Möglichkeiten.
[drei Leerzeilen entfernt, Luckie]
Ich habe einen Array "werte" von 0 bis 48 mit den Werten 1-49 Gefüllt.
[drei Leerzeile entfernt, Luckie]
Nun soll nach jeder Ziehung die gezogene Zahl aus diesem Array entfernt werden, damit sie nicht wieder gezogen werden kann.
[drei Leerzeilen entfernt, Luckie]
Ich habe in dieser For Schleife die Zufallszahlenberechnung und das Entfernen des Wertes geschrieben.
Die Fehlerausgabe spricht von einer "
Exception der Klasse EAccessViolation" - so wie ich das Verstanden habe bedeutet das "Übergabe eines ungültigen Wertes"
[drei Leerzeielen entfernt, Luckie]
zw = speichert die gezogene Zahl der "jeweiligen Runde".
Zufall= integer array [0..5], in ihm sollen alle gezogenen Zahlen gespeichert werden
p = ist die Schleifenvariable für die While-Schleife
Delphi-Quellcode:
for i := 0 to 5 do
begin
zw:= RandomFrom (werte);
zufall[i]:= zw;
p:=0;
while (p+zw) <> high(werte) do
begin
werte[zw+p-1]:=werte[zw+p];
p:=p+1;
end;
SetLength(werte,length(werte)-1);
end;
[drei Leerzeielen entfernt, Luckie]
Also die For-Schleife liefert 6 Wiederholungen - für 6 Zahlen.
[eine Leerzeielen entfernt, Luckie]
Die While-schleife soll die Array-Werte verschieben, hier ist ein Beispiel, wie ich mir das gedacht habe:
[eine Leerzeielen entfernt, Luckie]
Code:
zw= 6
->
while (0+6) <> 48 do werte(5):=werte(6)
p:=p+1
(die zweite While runde sollte dann so aussehen:
while ( 1+6) <> 48 do werte(6):=werte(7) usw.)
Aber bei dieser Zeile scheint er ein Problem zu bekommen:
Code:
werte[zw+p-1]:=werte[zw+p];
[drei Leerzeielen entfernt, Luckie] Hat jemand von euch eine Idee wo der Fehler liegt, bzw. hat jemand eine Idee wie ich die gezogene Zahl aus dem Array am besten löschen kann?
[drei Leerzeielen entfernt, Luckie]
Würde mich wirklich sehr freuen
[drei Leerzeielen entfernt, Luckie]
mfg walgo
[edit=Luckie]Jetzt weiß ich auch, wo meine Leerzeilen geblieben sind. Mfg, Luckie[/edit]