Finde Fehler in java Programm nicht?
Hallo zusammen,
Ich muss als Hausaufgabe ein Programm schreiben welches 30 Zufallszahlen ausgibt und dieser per println angibt. Die Aufgabenstellung der ersten Aufgabe war :
Wir wollen jetzt das Würfeln mit einem Würfel simulieren.
a) Implementiere einen Würfelsimulation mit 30, indem du ein Feld der Länge 30 anlegst und die Würfelergebnisse mit Hilfe des Zufallszahlengenerators erzeugst.
Dies habe ich auch gut hinbekommen und das Programm funktioniert. Nun ist die nächste Aufgabe:
Erweitere jetzt dein Programm um die Methoden
int summe() und double durchschnitt().
Die Methode int summe() berechnet die Gesamtsumme der gewürfelten Augenzahlen.
Die Methode double Durchschnitt() berechnet das arithmetische Mittel der gewürfelten Augenzahlen.
Und da komme ich nicht weiter. Habe hier mal einen Ansatz der aber nicht funktioniert. Kann mir jemand dort helfen und mir sagen wie ich das hinbekomme sowohl die erste als auch darauffolgend die 2. Methode.
Hier ist mein Programm was ich bisher geschafft habe:
package FelderAufgaben;
import java.util.Random;
public class Wuerfel
{
public static void main(String[] args)
{
Random wuerfel = new Random();
int augenZahl;
for (int i=0; i<30; i++)
{
augenZahl = 1 + wuerfel.nextInt(6);
System.out.println("Wurf"+ " " + i + " " + "Ergab" + " "+ augenZahl);
}
}
public double durchschnitt()
{
double summe = 0;
for(int i = 0; i <30; i++)
{
summe = summe + augenZahl[i];
}
System.out.println("Der Durchschnitt der gewürfelten Augenzahlen: "+summe/30);
}
Ein Fehler wird mir bei: summe = summe + augenZahl[i]; Angezeigt
Wie bekomme ich den Fehler weg und würde es so Funktionieren?
Wie mache ich das Für die andere Methode?
Vielen Dank schon mal.
Lg Jan
3 Antworten
Die Methode durchschnitt kennt den int Augenzahl nicht, da er in einer anderen Methode deklariert wurde.
Und außerdem speicherst du die Zahlen auch nicht.
Was du also tun musst:
Wenn du die Zahlen generierst, Speicher sie in einem Array. Und wenn du dann die Summe oder den Durchschnitt rechnen willst, iterierst du über dieses Array.
Das habe ich jetzt nicht wirklich verstanden. Bin noch ein Neuling was das angeht Sorry. Kannst du mir das an einem Beispiel zeigen? Und habe grade gesehen das ich das vielleicht mit return machen muss? Wie geht das dann?
Das funktioniert so leider nicht.
Die generierten Werte musst du in einem Array speichern .
Dann addierst du einfach jede Zahl im Array mit einander und speicherst sie in einem int. Den int dann durch 30 teilen für den Durchschnitt und fertig.
Alles was du dafür brauchst ist ein Array, int variablen und for schleifen mit ein bisschen googlen sollte das auch ein Anfänger schaffen.
Viel Spaß!
Achja und bitte verwende Code Tags ist einfacher dann den Code zu lesen
indem du ein Feld der Länge 30 anlegst und die Würfelergebnisse mit Hilfe des Zufallszahlengenerators erzeugst
Das hast du vergessen, deswegen gehts nicht!
Momentan hast du eine Variable Augenzahl, und die wird jeden Durchlauf überschrieben. Heißt was davor die Augenzahl war geht einfach verloren!
Ändere dein „int Augenzahl“ zu einem Int-Feld, das alle 30 Augenzahlen speichern kann.
int augenZahl[] = new int[30];
Und danach speichere die jeweilge Augenzahl an der dem Durchlauf entsprechenden Stelle im Array.
for (int i=0; i<30; i++) {
augenZahl[i] = 1 + wuerfel.nextInt(6);
System.out.println("Wurf"+ " " + i + " " + "Ergab" + " "+ augenZahl[i]);
}
Jetzt kannst du die Zusatzaufgabe machen. :)
Mit „Array“ meine ich „Feld“, sorry falls ich mit englischen Begriffen verwirre, ist Gewohnheit.