AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sammelbilder [lineares Feld]

Ein Thema von me2u · begonnen am 25. Apr 2007 · letzter Beitrag vom 3. Mai 2007
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz