Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#45

Re: 6 aus 49 will nicht so richtig

  Alt 20. Sep 2009, 18:29
Zitat von funkuchn:
und Unterfunktionen, ja wie meinst das?
Na du kannst dir doch eigene Funktionen und Proceduren schreiben:
Delphi-Quellcode:
procedure TForm1.ErzeugeLottozahlen(liste:TStrings);
var
  i : integer;
  lottozahl : integer;
begin
  // theoretisch kann hier auch die gleiche Lottozahl zweimal gezogen werden
  // die Wahrscheinlichkeit ist klein, aber doch vorhanden
  for i := 1 to 6 do
  begin
    lottozahl := random(49)+1;
    liste.Add(IntToStr(lottozahl));
  end;
end;
und dann aufrufen:
Delphi-Quellcode:
...
  ErzeugeLottozahlen(Memo1.lines);
...
Um zu verhindern, dass die gleiche Lottozahl zweimal gezogen wird, muss man prüfen, ob sie schon in der Liste ist:
Delphi-Quellcode:
function TForm1.IstZahlInListe(zahl:integer; liste:TStrings):Boolean;
var i : integer;
begin
  result := False;
  for i := 0 to liste.Count-1 do
  begin
    if StrToInt(liste[i]) = zahl then
    begin
      result := True;
      break;
    end;
  end;
end;
Wenn du jetzt die Funktion IstZahlInListe() geschickt einsetzt, kannst du verhindern, dass Lottozahlen doppelt gezogen werden.
fork me on Github
  Mit Zitat antworten Zitat