Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zahlen "verteilen" (https://www.delphipraxis.net/24699-zahlen-verteilen.html)

nailor 24. Jun 2004 21:07

Re: Zahlen "verteilen"
 
dann bekommt man keine vier gleich großen gruppen, und ich bin davon ausgegangen, dass das sein soll. sonst hätte ich es auch so vorgeschlagen. muss man den fragesteller fragen, wie er es haben will.

dizzy 24. Jun 2004 23:07

Re: Zahlen "verteilen"
 
Zitat:

Zitat von nailor
muss man den fragesteller fragen, wie er es haben will.

[OT]sehe ich anders... der Fragesteller sollte besser gleich sagen was er wünscht :mrgreen:[/OT]

nailor 25. Jun 2004 07:47

Re: Zahlen "verteilen"
 
das schon. aber wenn es nicht klar ist, dann:
Zitat:

Zitat von nailor
muss man den fragesteller fragen, wie er es haben will.


Spurius 25. Jun 2004 11:17

Re: Zahlen "verteilen"
 
Hallo,
ich hab das jetzt einigermaßen hinbekommen, ich hab jetzt Code mit dem ich 8 Zahlen aus der Liste mit den Zahlen von 1-32 auswählen kann.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d,e, Zahl: integer;
    SchonEnthalten: boolean;
begin
 List := TStringList.Create;
 List2 := TStringList.Create;

 for a := 1 to 32 do begin
  List.Add(inttostr(a));
 end;

 while List2.Count < 8 do begin
  Zahl := List.IndexOf(inttostr(random(list.Count)));
  for b := 0 to List2.Count - 1 do begin
   if Zahl = strtoint(List2.Strings[b]) then
     SchonEnthalten := true else SchonEnthalten := false;
  end;
  if SchonEnthalten = false then List2.Add(IntToStr(Zahl));
 end;
 Memo1.Lines.Add(List2.Text);
end;

end.
Aber es klappt nicht alles:
1.Warum sind die Zahlen immer die gleichen?
2.Warum bekomme ich manchmal eine -1 als Zahl?
Gruß
Spurius

Spurius 25. Jun 2004 16:40

Re: Zahlen "verteilen"
 
So, ich bin weitergekommen mit diesem Code:
Delphi-Quellcode:
var
  Form1: TForm1;
  List, List2: TStringlist;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a,b,Zahl: integer;
    Disc: boolean;
begin
 randomize;
 List := TStringlist.Create;
 for a := 1 to 32 do begin
  List.Add(inttostr(a));
 end;

 while memo1.Lines.Count < 8 do begin
  Zahl := random(32);
   for b := 1 to memo1.Lines.Count do begin
    if inttostr(Zahl) = Memo1.Lines[b] then
     Disc := False;
    end;
   if Disc = true then Memo1.Lines.Add(IntToStr(Zahl));
  Disc := true;
 end;
end;

end.
Bitte beantwortet mir noch eine Frage:
Wie kann ich verhindern, dass eine 0 mit angezeigt wird?
Wird bei random(32) die 0 mitverwendet oder geht das erst ab 1 los?

jfheins 25. Jun 2004 17:08

Re: Zahlen "verteilen"
 
Bei Random wird die 0 afaik mitverwendet.
Delphi-Quellcode:
Random(32)
erzeugt ganzzahlige Zufallszahlen mit einem minimum von 0 und einem maximum von 31.

Du müsstest also schreiben:
Delphi-Quellcode:
zahl := random (32);
zahl := zahl + 1;

Spurius 25. Jun 2004 17:11

Re: Zahlen "verteilen"
 
Ok, noch ne Frage: Was müsste der Code aussehen wenn ich anstatt dem Memo list2 verwenden will?

whiteshark 25. Jun 2004 17:19

Re: Zahlen "verteilen"
 
Hallo,

wenn du random(32) verwendest nimmt er zufällig die zahlen zwischen 0-31 und nicht 1-32. Wenn du zwischen 1 und 32 eine zahl willst nimm doch einfach random(32)+1, dann nimmt der Rechner die Zahlen zwischen 0 und 31 und rechnet jedesmal +1 dazu.

whiteshark

MrKnogge 25. Jun 2004 17:36

Re: Zahlen "verteilen"
 
Zitat:

Zitat von Spurius
Ok, noch ne Frage: Was müsste der Code aussehen wenn ich anstatt dem Memo list2 verwenden will?

Schau dir doch einfach mal die Datentypen an, TMemo.Lines ist vom Typ TStrings, TListBox.Items ebenfalls :wink:

Spurius 25. Jun 2004 17:55

Re: Zahlen "verteilen"
 
Wie jetzt? Ich hatte es bei der List mit IndexOf versucht, aber des hat net so ganz hingehaun. Ich mein halt, durch was muss ich z.b. das Memo1.Lines[b] ersetzen? Die Zahlen sind ja keine Objekte sondern nur Variablen.


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

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