Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

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 12:38

Re: Lotto HILFE´!!!
 
Hallo,


Abschließend will ich mich nochmal bedanken. Ihr habt mir sehr weitergeholfen. Meine Fragen werden sich für Profis wahrscheinlich vollkommen unprofessionell anhören. Aber der ganze Stress, obwohl ich Delphi spannend finde und mich auch in meiner nächsten Freizeit mal ohne Schulzwänge so richtig damit befassen werde.

Vielen Dank und baldige schöne Weihnachten!!!!

Lisa

glkgereon 9. Dez 2004 12:48

Re: Lotto HILFE´!!!
 
eins noch:

man muss nur einmal randomize; machen, du machst es zweimal... :wink:

negaH 18. Dez 2004 10:52

Re: Lotto HILFE´!!!
 
Am effizientesten dürfte das sein:

Delphi-Quellcode:
type
  TZahlen = array of Integer;

procedure Lotto(var Sortiert,Gezogene: TZahlen; Ziehungen: Integer = 6; Elemente: Integer = 49);
var
  I,J,K,N: Integer;
begin
  Sortiert := nil; // stellt sicher das Sortiert <> Gezogene ist
  Gezogene := nil;

  if Ziehungen > Elemente then
    raise Exception.Create('Man kann nicht mehr Kugeln ziehen als in der Urne sind');

  SetLength(Sortiert, Ziehungen);
  SetLength(Gezogene, Ziehungen);

  for I := 0 to Ziehungen -1 do
  begin
    K := 0;
    N := Random(Elemente - I) + 1;
    for J := 0 to I -1 do
      if N >= Sortiert[J] then
      begin
        Inc(N);
        Inc(K);
      end else Break;
    for J := I downto K +1 do
      Sortiert[J] := Sortiert[J -1];
    Sortiert[K] := N;
    Gezogene[I] := N;
  end;
end;

procedure Test;

  procedure Print(const Title: String; const Zahlen: TZahlen);
  var
    I: Integer;
  begin
    Write(Title);
    for I := 0 to High(Zahlen) do Write(Zahlen[I]:4);
    WriteLn;
  end;

var
  Sortiert,Gezogene: TZahlen;
begin
  Lotto(Sortiert, Gezogene, 10, 10);

  Print('gezogene : ', Gezogene);
  Print('sortiert : ', Sortiert);
  WriteLn;
end;
In deinem Falle also:

Lotto(Sortiert, Gezogene, 60, 60);

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:25 Uhr.
Seite 4 von 4   « Erste     234   

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