Zufällige Wörter aus einem Wörterpool

Wir haben in der Berufsschule Programmieren. Dort lernen wir Delphi.
Und obwohl ich (wie mein Lehrer es meint) einer der besten Schüler in Programmieren bin, bekomme ich folgendes nicht hin, bzw. ich weiß nicht genau, wie ich es machen soll.

Ich möchte, dass aus einem Wörterpool z.B. Hi, Hallo, Ballo,… ein zufälliges Wort gezogen und angezeigt wird.
Ich möchte mir nämlich ein Programm schreiben, mit dem ich Spanisch lernen kann.

Bei den Zahlen habe ich kein Problem (also bei den deutschen^^)

[b][i]randomize;

for i := 0 to 10 do
begin
kegeln := randomrange(1,15);
[/b]
Aber ich möchte zufalls WÖRTER haben.^^

Bitte um hilfe und eine kleine Erklärung dazu, wenn ich es nicht selber schaffen sollte.

Danke.

mfG

Thomas

Hallo,

mal mit einem Array of String versucht?

Gruß, Niels

mal mit einem Array of String versucht?

Habe ich auch im Gedanken gehabt.

Aber sagen wir mal, ich hätte wirklich in jedem Speicherplatz des Arrays ein Wort gespeichert.
Wie soll ich nun das „random“ auf das Array verwenden?

Ah, mir kommt gerade eine Idee.^^

Könnte man nicht eine Variable vom Typ Integer nehmen, dieser einen Zufallswert zuweisen und diese Variable dann als Index für das Array nehmen?^^

Ok. Ich glaube ich bin gerade selber auf die Lösung gekommen.
Bei weiteren Problem melde ich mich. :wink:

mfG

Thomas

Du kannst es auch wie folgt machen( ist aber etwas mehr zu schreiben)

du machst dir
var i = integer;
begin
i:= randomize (10,5); // kmmt drauf an wie viele wörter du hast
if i = 1 then panel1.caption :=‚hallo‘
else if i=2 then panel1.caption :0 ‚was geht so‘
else if […]

ist viel zu schreiben, aber einfach

Hallo,

mal ehrlich: er hat schon längst die richtige elegante Lösung gefunden und Du kommst mit einem grausigen, von Fehlern durchsetzten Codebeispiel.

var i = integer;

var i: integer;

begin
i:= randomize (10,5); // kmmt drauf an wie viele wörter du

randomize hat keinen Rückgabewert. Die Prozedur initialisiert den Zufallsgenerator. Vermutlich meinst Du Random([Range])

if i = 1 then panel1.caption :=‚hallo‘
else if i=2 then panel1.caption :0 ‚was geht so‘
else if […]

ist viel zu schreiben, aber einfach

Super, alles hart codiert und auch noch mit if-Anweisungen! Wie wäre es mit einer case-Anweisung?

Außerdem: Er hat doch schon ein Array of String, aus dem er per Zufall etwas herausholen will. Dein Code löst also seine Aufgabe nicht. Wie wäre es hiermit:

function GetRandomMember(MyArray: Array of String): String;
begin
 Result := MyArray[low(MyArray) + Random(length(MyArray))];
end;

Damit kann jedes Array (dynamische und statische) per Zufall ausgelesen werden unabhängig von der oberen und unteren Indexgrenze.

Gruß, Niels