Informatik-Felder: Unterschied zwischen den Versionen

Aus RSG-Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Wir haben zuletzt eine Methode in der Klasse '''Spielautomat''' geschrieben, mit der wir die '''Anzahl der Hauptgewinne''' gezählt haben. <br> Dazu haben wir …“)
 
Zeile 18: Zeile 18:
  
 
{{Aufgaben-blau|1=1|2=Schreibe eine Methode berechneMittel(), die den mittleren Gewinn pro Spiel zurückgibt. Welchen Ergebnistyp sollte diese Methode haben?}}
 
{{Aufgaben-blau|1=1|2=Schreibe eine Methode berechneMittel(), die den mittleren Gewinn pro Spiel zurückgibt. Welchen Ergebnistyp sollte diese Methode haben?}}
 +
 +
{{Lösung versteckt|1=
 +
public int zaehleKleingewinn()<br>
 +
{<br>
 +
int zaehler = 0;<br>
 +
for(int i = 0; i<= spielezahl - 1; i++)<br>
 +
{<br>
 +
if (gewinn[i] == 2)<br>
 +
{zaehler = zaehler + 1;}<br>
 +
}<br>
 +
return zaehler; <br>
 +
}
 +
}}
  
 
{{Aufgaben-blau|1=2|2=Schreibe Methoden zaehleKleingewinne() und zaehleVerluste(), die die Anzahl der kleinen Gewinne bzw. der verlorenen Spiele zurückgeben.}}
 
{{Aufgaben-blau|1=2|2=Schreibe Methoden zaehleKleingewinne() und zaehleVerluste(), die die Anzahl der kleinen Gewinne bzw. der verlorenen Spiele zurückgeben.}}
 +
 +
{{Lösung versteckt|1=
 +
public int zaehleVerlust()<br>
 +
{<br>
 +
int zaehler = 0;<br>
 +
for(int i = 0; i<= spielezahl - 1; i++)<br>
 +
{<br>
 +
if (gewinn[i] == 0)<br>
 +
{zaehler = zaehler + 1;}<br>
 +
}<br>
 +
return zaehler; <br>
 +
}
 +
}}
  
  
 
{{Aufgaben-blau|1=3|2=Schreibe eine Methode spiele(int zahl), die die Methode spiele() so oft aufruft, wie es dem Wert des Parameters zahl entspricht, und anschließend die Statistik mithilfe der vorstehenden Methoden auf der Konsole ausgibt. }}
 
{{Aufgaben-blau|1=3|2=Schreibe eine Methode spiele(int zahl), die die Methode spiele() so oft aufruft, wie es dem Wert des Parameters zahl entspricht, und anschließend die Statistik mithilfe der vorstehenden Methoden auf der Konsole ausgibt. }}
 +
 +
{{Lösung versteckt|1=
 +
public double berechneMittel()<br>
 +
{<br>
 +
int summe = 0;<br>
 +
for(int i = 0; i<= spielezahl - 1; i++)<br>
 +
{<br>
 +
summe = summe + gewinn[i];<br>
 +
}<br>
 +
return 1.0*summe/spielezahl;<br>
 +
}
 +
}}
 +
 +
In alle 3 Methoden konnte man die Einträge aus dem Feld gewinn[] verwenden. Man musste also bei den Attributen und im Konstruktor nichts hinzufügen.

Version vom 24. März 2020, 12:14 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:


Bleistift 35fach.jpg   Aufgabe 1

Schreibe eine Methode berechneMittel(), die den mittleren Gewinn pro Spiel zurückgibt. Welchen Ergebnistyp sollte diese Methode haben?

public int zaehleKleingewinn()
{
int zaehler = 0;
for(int i = 0; i<= spielezahl - 1; i++)
{
if (gewinn[i] == 2)
{zaehler = zaehler + 1;}
}
return zaehler;

}


Bleistift 35fach.jpg   Aufgabe 2

Schreibe Methoden zaehleKleingewinne() und zaehleVerluste(), die die Anzahl der kleinen Gewinne bzw. der verlorenen Spiele zurückgeben.

public int zaehleVerlust()
{
int zaehler = 0;
for(int i = 0; i<= spielezahl - 1; i++)
{
if (gewinn[i] == 0)
{zaehler = zaehler + 1;}
}
return zaehler;

}


Bleistift 35fach.jpg   Aufgabe 3

Schreibe eine Methode spiele(int zahl), die die Methode spiele() so oft aufruft, wie es dem Wert des Parameters zahl entspricht, und anschließend die Statistik mithilfe der vorstehenden Methoden auf der Konsole ausgibt.

public double berechneMittel()
{
int summe = 0;
for(int i = 0; i<= spielezahl - 1; i++)
{
summe = summe + gewinn[i];
}
return 1.0*summe/spielezahl;

}

In alle 3 Methoden konnte man die Einträge aus dem Feld gewinn[] verwenden. Man musste also bei den Attributen und im Konstruktor nichts hinzufügen.