www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Schul-Informatik Algorithmen" - Delphi6 Anzahl auflisten
Delphi6 Anzahl auflisten < Algorithmen < Schule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Schul-Informatik Algorithmen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Delphi6 Anzahl auflisten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:10 Sa 19.02.2011
Autor: pc_doctor

Hallo , ich habe mit Delphi 6 einen Würfel programmiert , in der Schule..
So , jetzt habe ich eine Funktion eingebaut , wo der Benutzer die Anzahl der Würfe entscheiden kann.
Also wenn er eine 3 eintippt , dann wird 3 mal gewürfelt , die Augenzahlen sind zufällig.

Jetzt möchte ich es so haben , dass wenn der Würfel gewürfelt hat , die Augenzahlen zusammengefasst dargestellt werden.

Also , wenn der Benutzer sagt würfel 3 mal , dann würfelt er 3 mal und es kommen z.B diese Augenzahlen : 1 , 3 ,3.


Jetzt soll es so dargestellt werden :
1
2 x 3.

Wie kriege ich das hin ?

        
Bezug
Delphi6 Anzahl auflisten: Antwort
Status: (Antwort) fertig Status 
Datum: 20:31 Sa 19.02.2011
Autor: Kroni

Hallo,

indem du dir ein 'Histogramm' erstellst:

Du musst zaehlen, wie oft die 1, 2, 3, 4, 5 oder 6 gewuerfelt worden ist.

Dazu kann man sich ein Array erstellen, nennen wir es hist. Dann gibt es

hist[1], hist[2], hist[3], hist[4], hist[5] und hist[6]. Der Datentyp waere (vorzugsweise) ein Integer, weil du ja sowieso nur zaehlst. Am Anfang sollte dann hist[i] auf 0 initialisiert werden.

Nehmen wir an, du wuerfelst eine zwei, dann erhoehst du den Wert von hist[2] um eins,

hist[2] = hist[2] + 1

wuerfelst du dann eine 1, machst du das selbe mit hist[1] und wuerfelst du dann die Zahl i, machst du das ganze mit hist[?]

So. Dann hast du also nach allen Wuerfeln in hist[1] die Anzahl der Male, die eine 1 gewuerfelt worden ist usw.

PS: Damit kannst du auch die 'Qualitaet' des Wuerfels testen, indem du den Zufallsgenerator ziemlich oft wuerfen laesst, und dann mal mit der daraus resultierenden Wahrscheinlichkeit fuer i Augen mit der von dir erwarteten Wahrscheinlichkeit vergleichst.

LG

Kroni


Bezug
                
Bezug
Delphi6 Anzahl auflisten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:40 Sa 19.02.2011
Autor: pc_doctor

Hallo,


Am Anfang sollte dann hist auf 0

> initialisiert werden.

Warum ?

>
> Nehmen wir an, du wuerfelst eine zwei, dann erhoehst du den
> Wert von hist[2] um eins,
>

Warum ?

> hist[2] = hist[2] + 1
>



Irgendwie kann ich das in Delphi nicht umsetzen..
Könntest du es mit Befehlen irgendwie deutlicher machen ?


Bezug
                        
Bezug
Delphi6 Anzahl auflisten: Antwort
Status: (Antwort) fertig Status 
Datum: 22:58 Sa 19.02.2011
Autor: Kroni

Hallo,

>
> Am Anfang sollte dann hist auf 0
>  > initialisiert werden.

>  Warum ?

Nun, ueberlege dir, was passieren wuerde, wenn du die Werte von hist[i] *nicht* auf 0 initialisierst.


>  
> >
>  > Nehmen wir an, du wuerfelst eine zwei, dann erhoehst du

> den
>  > Wert von hist[2] um eins,

>  >
>  Warum ?
>  > hist[2] = hist[2] + 1

Okay, dann ist das Prinzip, welches ich durch diese Beispiele verdeutlichen wollte, noch nicht ganz angenkommen:

Dein Ziel ist doch das Folgende:

Du hast eine Liste von Zahlen (die integer sind), die im Bereich zwischen 1 und 6 liegen. Stellen wir uns also vor, die Liste bestehe aus folgenden Zahlen:

1 1 3 5 6 6 2 3 4 1 1 2 6

Gut. Dann gehen wir mal durch, was ich geschrieben habe.
Wir haben ein Array, das wir hist nennen, also hist[i=1..6] = 0 am Anfang. D.h. jeder Eintrag des Arrays (was ein Array ist, weisst du aber, oder?) hat den Wert 0.

Dann wird als erstes die 1 gewuerfelt, d.h. wir schreiben

hist[1] = hist [1] + 1

D.h. nach dem Wurf ist hist[1] auf 1 gestellt.
Danach wuerfln wir nochmal die 1. Also wieder:

hist[1] = hist[1] + 1

Da hist[1] aber schon auf 1 gestellt war, steht da nun:

hist[1]  = 1+1 = 2

D.h. nun hat hist[1] den Wert 2.  Warum? Weil wir 2 mal die 1 gewuerfelt haben.

Danach kommt die 3. Also schreiben wir

hist[3] = hist[3] + 1

Da hist[3] noch auf 0 gesetzt war, ist nun also

hist[3] = 1.

Und so weiter. Wenn du das jetzt mit der Liste, die oben steht, weiter durcharbeitest, siehst du, dass am Ende in

hist[i] steht, wie oft die Zahl i gewuerfelt worden ist.

Wenn du das eingesehen hast, dann kannst du dir ja ueberlegen, was passiert, wenn irgendeiner der Eintrage von hist[i] am Anfang deiner Wuerfelei *nicht* auf 0 gesetzt worden waere. Waere dann die Zahl, die man aus hist[i] erhaelt gleich der Anzahl der Male, die man die Zahl i gewuerfelt hat?



> Irgendwie kann ich das in Delphi nicht umsetzen..
>  Könntest du es mit Befehlen irgendwie deutlicher machen

Ich habe momentan leider die Pascal-Syntax nicht mehr im Kopf.

Aber nehmen wir an, dass hist ein Array ist der Dimension 6 und hist[i] der i-te Eintrag dieses Arrays ist. Dann sollte eigentlich alles klar sein.

Wenn du das Prinzip oben verstanden hast, musst du dann also nur noch wissen, wie man ein Array in Delphi/Pascal deklariert.

LG

Kroni

> ?
>  


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Schul-Informatik Algorithmen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]