Einzelnen Beitrag anzeigen

me2u
(Gast)

n/a Beiträge
 
#18

Re: Sammelbilder [lineares Feld]

  Alt 3. Mai 2007, 22:32
Guten Abend,

ich habe mittlerweile ein funktionstüchtiges Programm für das Problem fertiggestellt. Es ist eigentlich garnicht so schwer Und Jelly, du hattest Recht. Ich hatte das mit dem fehlend und noch irgendwas anderes in der falschen Schleife drin und es wurde immer wieder neu gesetzt und konnte somit nie eine andere Bedingung erfüllen.

Hier nochmal der fertige Code:

Delphi-Quellcode:
procedure TForm1.btnBerechnenClick(Sender: TObject);

var Bilder : array of integer;
    bilder_gesamt: integer; //Anzahl aller Bilder
    Tafeln : integer; //Anzahl der Tafeln Schokolade, die gekauft werden
    fehlend : integer; //Anzahl der Bilder, die man noch nicht gesammelt hat
    durchlaeufe : integer; //Zählvariable
    Mittelwert : real;
    Ergebnis : integer; //Summe aller Tafeln
    AnzahlDurchlaeufe : integer;//gewünschte Anzahl der Durchläufe
    i, x : integer; //Zählvariablen

begin
  //Zufallsgenerator initialisieren
  randomize;

  //Eingabe: Variablen holen
  bilder_gesamt := StrToInt(edtGesamtbilder.Text);
  AnzahlDurchlaeufe := StrToInt(edtDurchlaeufe.Text);
  Ergebnis := 0;

  //dynamischer Array
  SetLength(Bilder, bilder_gesamt);


  //Verarbeitung: "Einkauf" Schleife
  for durchlaeufe := 1 to AnzahlDurchlaeufe do
  begin
    fehlend := bilder_gesamt;
    Tafeln := 0;

    //Zuerst müssen alle Bilder den Wert 0 haben
    for i := 0 to (bilder_gesamt - 1) do
    begin
      Bilder[i]:=0;
    end;

    while fehlend > 0 do
    begin
      Tafeln := Tafeln + 1;
      x := Random(bilder_gesamt);

      //Bild wird als gekauft "markiert"
      Bilder[x] := Bilder[x] + 1;

      //Wenn man das Bild hat, wird fehlend verringert
      IF Bilder[x] = 1 THEN
        fehlend := fehlend - 1;
    end;

  //Man addiert alle Tafeln
  Ergebnis := Ergebnis + Tafeln;
  end;

  Mittelwert := Ergebnis/AnzahlDurchlaeufe;

  //Ausgabe
  lblAusgabe.Caption := 'Man muss rund ' + FloatToStr(Mittelwert) + ' Tafeln kaufen bis man alle Bilder gesammelt hat.';
end;

end.
Ahh, ein tolles Gefühl, wenn's endlich läuft ! Vielen Dank nochmal an alle, die hier gepostet haben. Ohne euch hätte ich das bestimmt nicht hingekriegt. Ihr seid einfach die besten!

Mit freundlichen Grüßen
me2u
  Mit Zitat antworten Zitat