Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Lotto HILFE´!!! (https://www.delphipraxis.net/35576-lotto-hilfe%B4.html)

school- delphi 9. Dez 2004 10:42

Re: Lotto HILFE´!!!
 
hallo
danke für eure antworten

also ich hänge and der stelle mit until not und an dieser komischen menge und wenn ich den quellcode so durchlaufen lasse kommt nur eine zahl in der listbox.

sorry, dass ich wahrscheinlich mich richtig unprofessionell anhöre, aber bin echt überfordert momentan- schulstress/abistress

grüße
lisa

fiasko 9. Dez 2004 10:46

Re: Lotto HILFE´!!!
 
Zitat:

Zitat von school- delphi
also ich hänge and der stelle mit until not und an dieser komischen menge und wenn ich den quellcode so durchlaufen lasse kommt nur eine zahl in der listbox.

Also entweder hast du nicht allen Code gepostet... ich sehe jedenfalls kein until dort oben! Das nur ein Wert dort reinkommt ist klar, du willst doch sicher das das ListBox.Add mit in die for-Schleife kommt? Dann bekommst du auch 6 Werte.

Treffnix 9. Dez 2004 10:54

Re: Lotto HILFE´!!!
 
Fangen wir mal an:

for.. Do führt nur die nächste Anweisung in Schleife aus. Wenn du mehrere Anweisungen ausführen willst, musst du es in Begin..End kapseln
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,y: integer;
begin
i:= 0; // unnötig bei For-Schleifen
for i:= 1 to 6 DO
Y:= random(49)+1; // hier läuft dein Programm 6 mal lang ( für i von 1 - 6 )
ListBox1.Items.Add(inttostr(y));// erst anschliessend läuft dein Programm hierhin und schreibt das letzte y in die Box
end;

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,y: integer;
begin
  for i:= 1 to 6 DO
  Begin
    Y:= random(49)+1;
    ListBox1.Items.Add(inttostr(y));
  End;
end;
So hätteste zumindest schonmal alle Zahlen in der Box. Allerdings benutzt du dein Set ja gar nicht und hast somit auch keine Prüfung auf doppelte Zahlen.

school- delphi 9. Dez 2004 10:59

Re: Lotto HILFE´!!!
 
hallo,

schon mal vielen vielen Dank vor allem für die letzte Antwort, die hat mich schon mal sehr weitergebracht.

Nur stellt sich jetzt noch die frage
wie man das überprüfen kann (until not); dass man nicht zweimal die gleiche erzeugt.


Vielen Dank nochmal
und schöne baldige Weihnachten
Viele Grüße
Lisa

Treffnix 9. Dez 2004 11:03

Re: Lotto HILFE´!!!
 
Dafür ist wohl das Set gedacht.

Guck dir mal in der Delphi-Hilfe den Begriff Delphi-Referenz durchsuchenMengentypen an, wenn ihr das noch nicht im Unterricht hattet.

fiasko 9. Dez 2004 11:04

Re: Lotto HILFE´!!!
 
oder schau einfach nach, ob die Zahl schon in der ListBox steht, also sowas der Art:

Delphi-Quellcode:
repeat
  Y:=random(49)+1;
until ListBox1.Items.IndexOf(IntToStr(y))=-1;
(ungetestet, da grad kein Delphi zu Hand)

school- delphi 9. Dez 2004 11:06

Re: Lotto HILFE´!!!
 
Hallo,

also erstmal klappt das jetzt, dass wenigstens 6 Zahlen in der Listbox erscheinen- dafür bin ich unendlich froh. Jetzt könnte man ja die for schleife in repeat until umändern.

begin
for i:= 1 to 6 DO
repeat
Y:= random(49)+1;
ListBox1.Items.Add(inttostr(y));
until not lottozahl= y;
end;

Die rote zeile funktioniert ja nicht, aber so in der art glaube ich sollten wir das machen. Desweiteren haben wir noch aufgeschrieben verschiedene mengenoperationen, wie differenzmenge und so, aber weiß nicht ob das was damit zu tun hat.


Vielen Dank euch allen nochmal
Lisa

school- delphi 9. Dez 2004 11:08

Re: Lotto HILFE´!!!
 
hallo,

also wenn man das so versucht- klappts leider nicht--- unendlich viele zahlen in der listbox erscheinen dann.

begin
for i:= 1 to 6 DO
repeat
Y:= random(49)+1;
ListBox1.Items.Add(inttostr(y));
until not ListBox1.Items.IndexOf(IntToStr(y))=-1;
end;

danke!
grüße
lisa

Treffnix 9. Dez 2004 11:11

Re: Lotto HILFE´!!!
 
1. Benutz für Quellcode bitte die [delphi] Tags ( oder den Button Delphi-Code ). Ist einfach lesbarer.
2. Ja, das geht mit den Mengen. Darum sag ich ja schau mal in der Hilfe nach. In sets kannst du mit + Werte hinzufügen mit - entfernen und mit <Wert> in <Set> kannst du abfragen, ob der Wert schon in der Menge ( der Lottozahlen ) enthalten ist

alcaeus 9. Dez 2004 11:11

Re: Lotto HILFE´!!!
 
Hallo Lisa,

erstmal verwende bitte die [ delphi] [ /delphi]-Tags (ohne Leerzeichen), dann kann man den Code auch vernuenftig lesen.
Zum Problem: Der Code den du gepostet hast ist falsch. Du willst ja keine Zahl doppelt haben. Nachdem du kein Set benutzt, musst du es so machen wie Fiasko gesagt hat:
Delphi-Quellcode:
for i:= 1 to 6 do
begin
  repeat
    Y:=random(49)+1;
  until ListBox1.Items.IndexOf(IntToStr(y))=-1;
  ListBox1.Items.Add(inttostr(y));
end;
Nun die Erklaerungen:
wir machen das Ganze 6 mal, wie bereits gehabt. Anstatt aber nun die Zahl zu suchen, und dann hinzuzufuegen, suchen wir nun bis dir Zahl nicht mehr in der ListBox ist. Dies erledigt der Befehl ListBox1.Items.IndexOf (Delphi-Referenz durchsuchenIndexOf). Wird das Element nicht gefunden, so liefert die Funktion -1 zurueck. In dem Fall fuegen wir die Zahl der Liste hinzu, ansonsten suchen wir weiter.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz