Autor Beitrag
Baphometschwarz
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 12.07.04 15:00 
Hallo,

ich brauche Hilfe bei einer Funktion, die ich in mein Programm einbinden kann, womit ich zufällig eine Zusammenstellung von verschiedenen Eingaben generieren kann.

Ich hatte vor ein Programm zur Ermittlung von Teams zu programmieren. Ich lese die Teilnehmer in Edit-Feldern ein und möchte sie dann in zufällig in 2er-Gruppen ausgegeben haben.

Wie stelle ich das an ???


Schonmal Danke für die Antworten
inselberg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458



BeitragVerfasst: Mo 12.07.04 15:09 
also du hast eine liste (memo1.lines) in der du einmalig 2er paare bilden möchtest

ausblenden swingerclub
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button1Click(Sender: TObject);
var r1,r2:word;
begin
 randomize;
 with memo1.lines do
 while Count > 1 do
 begin
  r1 := random(Count-1);
  memo2.lines.add(memo1.lines[r1]);
  delete(r1);
  r2 := random(memo1.lines.Count-1);
  memo2.lines[memo2.lines.count-1] :=   memo2.lines[memo2.lines.count-1]  +' und '+memo1.lines[r2];
  delete(r2);
 end;
end;

_________________
hans bist du das ?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 12.07.04 15:13 
Hallo und :welcome:
Eine Möglichkeit wäre diese (in Pseudocode). Wie man das genau in dein Prog inbaut, weiss ich nicht, da ich nicht weiss, wie du z.b. die Personenliste oder die Teams speicherst.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
n:=Anzahl der Personen;
Auswahlliste:=Liste mit allen Personen;
for i:=0 to n do 
begin
   x:=Random(n-i); //zufällige Person wählen
   packe Person_Nr_x in Team_Nr(i DIV 2// diese Person ins Team packen
   entferne Person_Nr_x aus der Auswahlliste; // sicherstellen, dass diese Person nicht nochmal gewählt wird.
end;

_________________
We are, we were and will not be.
Baphometschwarz Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 12.07.04 16:25 
OK, die Lösung funktioniert !
Vielen Dank.

Jetzt habe ich aber noch ein Problem.

Ich möchte 7 Leute in 4 Teams unterteilen. Dazu teile ich die ersten 6 in 3 Teams ein. Der 7. kommt in Team 4 und hinzu kommt ein zufällig gewählter Teilnehmer aus Team 1 oder Team 2.

Wie bewerkstellige ich dies? Kann man nicht besser ein Array dafür benutzen??