Informatik-Felder: Unterschied zwischen den Versionen
Zeile 77: | Zeile 77: | ||
[[Datei:neu.jpg]] | [[Datei:neu.jpg]] | ||
− | {{Aufgaben-blau|1=4|2=Dich interessiert wie oft die Farbe | + | {{Aufgaben-blau|1=4|2=Dich interessiert wie oft die Farbe blau (blau hat die Farbnummer 1) bei der ersten Walze vorkommt.<br> |
a) Beschreibe in 2-3 Sätzen mit Hilfe eines Feldes eine Untersuchungsmethode, mit der du feststellen kannst, wie oft die Farbe rot bei der ersten Walze vorkommt. <br> | a) Beschreibe in 2-3 Sätzen mit Hilfe eines Feldes eine Untersuchungsmethode, mit der du feststellen kannst, wie oft die Farbe rot bei der ersten Walze vorkommt. <br> | ||
− | b)Das Feld wird bei den Attributen durch private int[] | + | b)Das Feld wird bei den Attributen durch private int[] blau deklariert.<br> |
Gib den für die Funktionsweise des Feldes nötigen Eintrag im Konstruktor der Klasse an. <br> | Gib den für die Funktionsweise des Feldes nötigen Eintrag im Konstruktor der Klasse an. <br> | ||
c) In der Methode spiele() ist die Zeile <br> | c) In der Methode spiele() ist die Zeile <br> | ||
− | if (z1==4){ | + | if (z1==4){blau[spielezahl]=1;}else{rot[spielezahl]=0;};<br> |
eingefügt. Was bewirkt diese Zeile? (z1 gibt die Farbe der Walze 1 an.) | eingefügt. Was bewirkt diese Zeile? (z1 gibt die Farbe der Walze 1 an.) | ||
}} | }} | ||
− | {{Lösung versteckt|1=a) Für die Walze wird ein Feld eingerichtet | + | {{Lösung versteckt|1=a) Für die Walze wird ein Feld eingerichtet blau[] vereinbart. <br> |
− | Bei jedem Spiel wird nachgesehen ob die Walze die Farbe | + | Bei jedem Spiel wird nachgesehen ob die Walze die Farbe blau hat und ihr Feld bekommt für dieses Spiel den Eintrag 1. <br> |
− | Auf Abfrage | + | Auf Abfrage abfrageFarbeblau() wird bei jeder Walze gezählt wie oft die Farbe rot vorgekommen ist und die Zahlen werden ausgegeben.<br> |
− | b) Konstruktor: | + | b) Konstruktor: blau = new int[1000];<br> |
− | Es wird ein Feld-Objekt mit den Speicherplätzen | + | Es wird ein Feld-Objekt mit den Speicherplätzen blau[0] bis blau[999] erzeugt. <br> |
− | c) Für jedes Spiel wird nun mit 1 notiert ob die Walze 1 die Farbe | + | c) Für jedes Spiel wird nun mit 1 notiert ob die Walze 1 die Farbe blau hat, wenn sie nicht blau ist wird 0 in die Zelle eingetragen. |
}} | }} | ||
− | {{Aufgaben-blau|1=5|2= | + | {{Aufgaben-blau|1=5|2=Dich interessiert nun wirklich wie oft die Farbe blau bei der ersten Walze vorkommt. Entwickle mit Hilfe eines Feldes eine Untersuchungsmethode, vervollständige den Quelltext von SPIELAUTOMAT und schreibe eine Methode abfrageFarbeblau() , mit der du feststellen kannst wie oft die Farbe blau bei der ersten Walze vorkommt. }} |
− | Entwickle mit Hilfe eines Feldes eine Untersuchungsmethode, mit der du feststellen kannst | + | |
− | + | ||
− | + |
Version vom 25. März 2020, 12:16 Uhr
Wir haben zuletzt eine Methode in der Klasse Spielautomat geschrieben, mit der wir die Anzahl der Hauptgewinne gezählt haben.
Dazu haben wir bei den Attributen ein Feld gewinn vereinbart
private int[] gewinn;
Zusätzlich haben wir ein neues Attribut spielezahl vereinbart
private int spielezahl;.
Im Konstruktor haben wir das Feld mit 1000 Zellen erzeugt.
gewinn = new int[1000];
und den Wert der Variablen spielezahl auf 0 gesetzt
spielezahl = 0;
In der Methode spiele() wurde für jedes Spiel in eine Zelle des Feldes gewinn ein Eintrag mit dem Gewinn gemacht. Dabei wurde jeder Zelle eine Nummer von 0 bis 999 zugewiesen.
public void spiele()
{setzeFarbmuster(zufall.nextInt(9),zufall.nextInt(9),zufall.nextInt(9));
gewinn[spielezahl] = ermittleGewinn();
spielezahl = spielezahl + 1;}
Bearbeite nun in BlueJ folgende Aufgaben:
public double berechneMittel()
{
int summe = 0;
for(int i = 0; i<= spielezahl - 1; i++)
{
summe = summe + gewinn[i];
}
return 1.0*summe/spielezahl;
Methode zaehlerKleingewinne()
public int zaehleKleingewinn()
{
int zaehler = 0;
for(int i = 0; i<= spielezahl - 1; i++)
{
if (gewinn[i] == 2)
{zaehler = zaehler + 1;}
}
return zaehler;
}
Methode zaehleVerluste()
public int zaehleVerlust()
{
int zaehler = 0;
for(int i = 0; i<= spielezahl - 1; i++)
{
if (gewinn[i] == 0)
{zaehler = zaehler + 1;}
}
return zaehler;
public void spieleAnzahl(int Anzahl)
{
for(int i = 1; i<=Anzahl;i++)
{
spiele();
}
System.out.println("Bei "+Anzahl + " Spielen hast du: ");
System.out.println("Hauptgewinne: "+zaehleHauptgewinn() + " Kleingewinne: "+zaehleKleingewinn()+ " kein Gewinn: " + zaehleVerlust());
In alle 4 Methoden konnte man die Einträge aus dem Feld gewinn[] verwenden. Man musste also bei den Attributen und im Konstruktor nichts hinzufügen.
a) Für die Walze wird ein Feld eingerichtet blau[] vereinbart.
Bei jedem Spiel wird nachgesehen ob die Walze die Farbe blau hat und ihr Feld bekommt für dieses Spiel den Eintrag 1.
Auf Abfrage abfrageFarbeblau() wird bei jeder Walze gezählt wie oft die Farbe rot vorgekommen ist und die Zahlen werden ausgegeben.
b) Konstruktor: blau = new int[1000];
Es wird ein Feld-Objekt mit den Speicherplätzen blau[0] bis blau[999] erzeugt.