Hi, ich habe mittlerweile folgenden Code: Ich habe übrigens das mit dem boolean geändert, kam irgendwie gerade so, als ich an anderer Stelle das mit + 1 eingebaut habe und dafür natürlich integer oder cardinal benötige.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const bilder_gesamt = 10; //Anzahl aller Bilder
var Bilder : array [0..(bilder_gesamt-1)] of integer;
Tafeln : integer; //Anzahl der Tafeln Schokolade, die gekauft werden
fehlend : integer; //Anzahl der Bilder, die man noch nicht gesammelt hat
i : integer; //Zählvariable
begin
//Zufallsgenerator initialisieren
randomize;
//Startwerte setzen
Tafeln := 0;
fehlend := bilder_gesamt;
//Zuerst müssen alle Bilder den Wert 0 haben
for i := 0 to (bilder_gesamt - 1) do
Bilder[i]:=0;
//Verarbeitung: "Einkauf" Schleife
while fehlend > 0 do
begin
Tafeln := Tafeln + 1;
i := Random(bilder_gesamt);
//Bild wird als gekauft "markiert"
Bilder[i] := Bilder[i] + 1;
//Wenn man das Bild hat, wird fehlend verringert
IF Bilder[i] = 1 THEN
fehlend := fehlend - 1;
end;
//Ausgabe
lblAusgabe.Caption := 'Man muss ' + IntToStr(Tafeln) + ' Tafeln kaufen bis man alle Bilder gesammelt hat.';
end;
Jetzt muss man ja theoretisch aus den ganzen Werten, die man rausbekommt einen Mittelwert berechnen. Dafür muss man aber die ganze Prozedur öfters ausführen lassen. Wie kann man so etwas machen? Meine Idee wäre jetzt alles oben bei private reinzuschreiben und unten bei "procedure TForm1.Button1Click(Sender: TObject);" dann alles öfter hinzuschreiben. Ist aber sehr unsauber
Und natürlich bräuchte man eine neue Variable, sagen wir mal "Mittelwert". Man muss ja dann immer das Ergebnis bei Tafeln irgendwie zwischenspeichern und am Ende dann rechnen
Mittelwert = (Ergebnis1 + Ergebnis2 + Ergebnis3 + ...) / Anzahl Durchläufe
Wie realisiert man so etwas am besten ohne diese Ergebnis1 bis x ?
Mit freundlichen Grüßen
me2u
P.S. Ihr seid echt das geilste Delphi Forum, das ich kenne ! Ohne euch hätte ich das wahrscheinlich nicht gepackt. Aber jetzt ist mir ganz klar, was da oben beim Einkaufen der Schokolade passiert