Delphi-PRAXiS
Seite 3 von 4     123 4      

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)

MrKnogge 25. Jun 2004 18:09

Re: Zahlen "verteilen"
 
durch ListBox2.Items , schrieb ich doch :roll:

Spurius 25. Jun 2004 18:15

Re: Zahlen "verteilen"
 
Oh, das ist ein Missverständnis. Ich meinte eine TStringList. Ich will ja nichts visuelles.

MrKnogge 25. Jun 2004 18:17

Re: Zahlen "verteilen"
 
dann einfach NamenDeinerStringList.Add :wink:

Spurius 25. Jun 2004 18:20

Re: Zahlen "verteilen"
 
Das schon, aber Memo1.Lines.Count, wie kann ich das ersetzen?

MrKnogge 25. Jun 2004 18:30

Re: Zahlen "verteilen"
 
Also jetzt markier mal TMemo und drück F1, anschliesend schaust du dir mal die Eigenschaft Lines an.

Wie ich oben geschrieben habe, ist TMemo.Lines vom Typ TStringList.

Zitat:

Das schon, aber Memo1.Lines.Count, wie kann ich das ersetzen?
`Schau dir doch den unterschied zwischen Memo1.Lines.Add und NameDeinerStringList.Add an, und ändern ihn ebenfalls.

Nicodius 25. Jun 2004 18:30

Re: Zahlen "verteilen"
 
Delphi-Quellcode:
random(32)+1

Spurius 25. Jun 2004 19:00

Re: Zahlen "verteilen"
 
@MrKnogge
Ich hoffe du hältst meine Fragerei noch aus, aber ich bring da grad einiges durcheinander:
Das mit dem Add und Count ist klar, ist ja bei TMemo und TstringList sehr ähnlich.
Aber wie kann ich diesen Ausdruck ersetzen: Memo1.Lines[b] ?
Ich hatte IndexOf probiert, aber dann kamen einige Zahlen doppelt vor.
Vielen Dank für die bisherige Hilfe
Spurius

Spurius 25. Jun 2004 19:05

Re: Zahlen "verteilen"
 
Nachtrag:
Ich hab das jetzt so gemacht:
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;
 List2 := TStringlist.Create;
 for a := 1 to 32 do begin
  List.Add(inttostr(a));
 end;

 while List2.Count < 8 do begin
  Zahl := random(32);
   for b := 1 to List2.Count do begin
    if Zahl = List2.IndexOf(IntToStr(b)) then
     Disc := False;
    end;
   if Disc = true then List2.Add(IntToStr(Zahl));
  Disc := true;

 end;
 memo1.Lines.Add(List2.Text);
end;
end.
Allerdings kommen dabei die Zahlen teilweise mehrfach vor, was mir bei der Lösung mit dem Memo nicht aufgefallen ist. Wie kann ich das umgehen?

Lantis 25. Jun 2004 19:13

Re: Zahlen "verteilen"
 
Hi Spirius,

Deine anfängliches Problem war ja, wie verteile ich 100 zahlen in 4 gleichgroße Portionen.
Hat mich irgendwie angespornt. Um keine doppelten Zahlen zu erhalten, ist mir da auch eine Lösung
eingefallen. Werde mal mein Gedankengut verschütten, auch wenn Du ja selbst schon eine Lösung hast.
Ist 'ne visuelle Darstellung mit 4 Memos (memo1 bis memo4) und ein Button
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i,z,n:integer;
  sl:TStringList;
begin
  z:=0;
  randomize;        //besser nur 1mal im Form.Create
  sl:=TStringList.Create;
  sl.Sorted:=True;  //nötig, damit nächste Zeile funktioniert
  sl.Duplicates:=dupIgnore;  //keine doppelten Zahlen
  for i:=1 to 4 do
   TMemo(FindComponent('memo' + IntToStr(i))).Clear;
  try
  while sl.Count<100 do    //solange, bis alle 100 Zahlen mal dran waren
    for i:=1 to 4 do
    begin
      n:=sl.Count;         //aktuelle Zahlenmenge merken
      while sl.Count=n do  //solange probieren bis neue Zahl ermittelt wurde
      begin
        z:=round(random(100)+1);
        sl.Add(intToStr(z));
      end;
      TMemo(FindComponent('memo' + IntToStr(i))).Lines.Add(intToStr(z));
    end;
  finally
    sl.Free;
  end;
end;
Gruß Lantis

Spurius 25. Jun 2004 19:21

Re: Zahlen "verteilen"
 
Danke dass du dich mit dem Problem beschäftigt hast, ich würde halt gern meine Lösung verwenden, wobei ich den Fehler noch nciht gefunden habe. Also wenn du dir mal meinen Code anschauen würdest, würdest du mir einen Gefallen tun.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr.
Seite 3 von 4     123 4      

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