Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Ich habe mit dem Zafallsgenarator 6 Zahlen zwischen 1 und 6 ausgewählt. Diese möchte aber sortiert nach Wert ausgeben
Ich Hoffe auf Hilfe
Gruß Wilfried Brügmann
Hier ein Sortieralgo:<br>
<br>
<PRE>
procedure BubbleSort(Items: TStrings);
var
done: boolean;
i, n: integer;
Dummy: string;
begin
n := Items.Count;
repeat
done := true;
for i := 0 to n - 2 do
if Items[i] > Items[i + 1] then
begin
Dummy := Items[i];
Items[i] := Items[i + 1];
Items[i + 1] := Dummy;
done := false;
end;
until done;
end;
</PRE>
<br>
Die Zahlen sollten in ein Array[0..5] of integer abgelegt werden.<br>
Die Routine läßt sich sicher leicht daraufhin anpassen.<br>
Hallo Willy Brügmann,
m.H. der Eigenschaft SORT läßt sich eine Stringliste problemlos sortieren. Das Beispiel sollte so laufen.
<PRE>
procedure TForm1.ZufallClick(Sender: TObject);
var Liste :TstringList;
lauf :byte;
begin
ListBox1.Clear;
Liste:=TStringList.Create;
Randomize;
for lauf:=1 to 6 do
Liste.add(IntToStr(Random(lauf)));
Liste.Sort;
for lauf:=0 to Liste.count-1 do
ListBox1.Items.add(Liste[lauf]);
Liste.Free;
end;
Hi Jörg,
mit Deinem Sortieralgo hast Du mir sehr geholfen. Gut das man Neuling auf einen Gebiet nicht alleine ist. Ich komme von der VBA Programmierung, aber Delphi ist doch etwas anderes.
Vielen Dank
Willy Brügman
Hi Hovi,
mit Deiner Routine zum Werte sortieren hast Du mir sehr geholfen. Dafür herzlichen Dank. Eine Kleinigkeit habe ich bereits selber behoben: ich brauche Zufallszahlen zwischen 1 und 6 (Keine 0). Was mir aber augefallen ist: die erste Zahl ist IMMER die eins. Das kann nicht stimmen. Es gibt ja auch Durchgänge in denen gar keine 1 fällt. Ich habe ca 50 Duchgänge gestartet. Die eins viel immer, sehr unwarscheinlich. Zum Verständnis: das Programm soll das Würfelspiel KNIFFEL simulieren. Vieleicht kannst Du mir noch einmal helfen.
Gruß
Willy Brügman
<pre>
procedure TForm1.ZufallClick(Sender: TObject);
var Liste :TstringList;
lauf :byte;
begin
ListBox1.Clear;
Liste:=TStringList.Create;
Randomize;
for lauf:=1 to 6 do
Liste.add(IntToStr(Random(<b>6</b>)));
Liste.Sort;
for lauf:=0 to Liste.count-1 do
ListBox1.Items.add(Liste[lauf]);
Liste.Free;
end;
</pre>
Hallo Torsten,<br>Random(6)liefert eine Zahl aus der Menge {0,1,2,3,4,5}. Da ein Würfel ja nur ein Element aus der Menge {1,2,3,4,5,6} liefert, sollte der Ausdruck Random(6)+1 lauten
Hallo Tosten,
vielen Dank für Deine Hilfe, es hat wunderbar geklappt. Vieleicht könntest Du mir Deine E-Mail Adresse geben, ich hätte dann warscheinlich noch so einige tausend Fragen an Dich.
War ein Scherz, aber als Notbremse würde ich gerne Deiene E-Mail Adresse haben. Danke.
Gruß Will
Hi Hovi,
macht nichts mit der Variable. Macht es Dir viel aus aus mir deine E-Mail Adresse und evtl deine Adresse zu geben? Wenn du in meiner Nähe sitzt, könnte ich, Dein Einverständnis vorausgesetz, mit Dir kontakten.
Viele Dank
Will
Comment