welchen fehler übersehe ich? ...kompilieren funkt. nicht

Status
Nicht offen für weitere Antworten.

__LiLLi__

Mitglied
hallo....

ich sitzte jetzt schon über eine Stunde vor meinem pc und versuche (leider vergeblich) auf meinen fehler drauf zu kommen den ich beim programmieren gemacht habe!
die aufgabe war:
wie wahrschienlich ist es, dass beim würfeln dreimal hintereinander die gleiche zahl gewürfelt wird? (Schreiben sie dazu eine Applikation, deren main-Methode ein eindimensionales Feld mt 1000 double-Elementen deklariert und zufällig mit natürlichen Zahlen aus {1-6} belegt.

[Java]
import javax.swing.JOptionPane;
public class muster2 {

public static void main (String args[])
{

//Deklarieren der Felder

double [] Feld1 = new double [1000];
double [] Feld2 = new double [6];


//Zufallsgenerator

for( n=0; n<=6; n++);
Feld1[n]=(int)(Math.random()*6);

//aufrufen der Methode

zaehler(Feld1);

//Ausrechnen der Wahrscheinlichkeit
p=6/zaehler;



}
}




//Methode zum festellen


public static void zaehler(int n,int[] Feld1)
{

int zaehler=0;
for(int i=0; i<=6; i++) {
if(Feld1 == Feld1[i+1] && Feld1[i+1] == Feld1[i+2] && Feld1[i+2]==Feld1[i+3])
zaehler++;

System.out.println("Moeglichkeit von 3 gleichen gewuerfelten Zahlen hintereinander"+p);

System.exit(0);
}
}

[/Java]

lg
Lilli
 
Zuletzt bearbeitet von einem Moderator:
import javax.swing.JOptionPane; warum importierst du das?
public class muster2 { Klassen bitte groß schreiben

public static void main (String args[])
{

//Deklarieren der Felder

double [] Feld1 = new double [1000]; Variablen bitte klein schreiben
double [] Feld2 = new double [6];


//Zufallsgenerator

for( n=0; n<=6; n++); Diese Zeile wird gar nicht machen
Feld1[n]=(int)(Math.random()*6);

//aufrufen der Methode

zaehler(Feld1);Deine Methode erwartet mehr parameter
//Ausrechnen der Wahrscheinlichkeit
p=6/zaehler; Die Variable zaehler existert in diesem Bereich nicht



}
}




//Methode zum festellen


public static void zaehler(int n,int[] Feld1)
{

int zaehler=0;
for(int i=0; i<=6; i++) {
if(Feld1 == Feld1[i+1] && Feld1[i+1] == Feld1[i+2] && Feld1[i+2]==Feld1[i+3])
zaehler++;

System.out.println("Moeglichkeit von 3 gleichen gewuerfelten Zahlen hintereinander"+p); Die Variable p gibt es nicht

System.exit(0); Dein Programm wird an dieser Stelle beendet. Die main Methode wird nicht weiter ausgeführt
}
}


lg
Lilli


Siehe Zitat
 
Zuletzt bearbeitet:
Java:
double p =6/zaehler;

so ist deine methode deklariert:
Java:
public static void zaehler(int n,int[] Feld1)

und so rufst du diese auf:
Java:
zaehler(Feld1);

fällt dir was auf? ;-)
 
wieso erkennt er die variable p nicht?
ich sag java doch p==6/zaehler

und welche parameter fehelen bei meiner methode ich rechne ja nur mit dem feld1... oder hab ich da nen denkfehler?

Abgesehen von den Syntax Fehlern hast du auch Denkfehler drin, ja. Z.B. möchtest du ja laut Code nur 6 Felder von deinem 1000 Felder Array belegen.

Vielleicht hilft es dir, mal ein Struktogramm zu zeichnen, um abseits vom Code mal erst den Ablauf festzulegen.
 
mein gott... aba wenns schon fragt JA in meinen unterlagen die mir java erklären sollen es aba nicht tun) stehen sie so drin!

aba das ist ja nicht das problem wieso sich mein programm nicht kompilieren lässt.....;(
 
Java:
for (int n = 0; n < 1000; n++) Feld1[n] = ((int)(MATH.random() * 6))+1
Vielleicht so?

PS: Was gibt denn der Compiler aus?

PPS: Das n in zaehler(int n, int[] Feld1) verwendest du ja gar nicht???:L
machs doch raus
 
Zuletzt bearbeitet:
Nimmt das int n raus. Das brauchst du ja gar nicht als Parameter.

Wenn du die Methode zaehler(feld1) aufrufst, dann geht das nicht, weil die Methode zaehler(...) zwei Parameter erwarted. Da du das n in der Methode die brauchst, nimm das einfach raus.
 
der kombilierer sagt, dass ein fehler bei
[Java]

public static void zaehler(int n,int[] Feld1)
{
[/Java]

liegt!

Der Compiler sagt dir meist ziemlich genau was der Fehler ist - versuche den mal
1. zu posten
2. selbst zu verstehen! Das hilft wirklich enorm, weil man meist immer die gleichen Fehler macht am Anfang, und wenn du die dann siehst kannst du direkt sagen "aha, das hab ich ja schonmal gehabt, das kann ich so und so lösen"
 
wenns welche habts... ne scherz... wusste ja nicht, dass ihr so hilfsbereit seit... dacht mir ich hab euch schon viel zu sehr gequält mit meinen anfängerfehlern- und fragen!

nun sieht meine javadatei so aus:
[Java]
import javax.swing.JOptionPane;
public class muster2 {

public static void main (String args[])
{

//Deklarieren der Felder

double [] Feld1 = new double [1000];
double [] Feld2 = new double [6];


//Zufallsgenerator

for( n=0; n<=6; n++);
Feld1[n]=(int)(Math.random()*7);

//aufrufen der Methode

zaehler(n);
}






//Methode zum festellen


public static void zaehler(int[] Feld1)
{

int zaehler=0;
for(int i=0; i<=6; i++) {
if(Feld1 == Feld1[i+1] && Feld1[i+1] == Feld1[i+2] && Feld1[i+2]==Feld1[i+3])
zaehler++;
}
}

//Ausrechnen der Wahrscheinlichkeit
double p=6/zaehler;

System.out.println("Moeglichkeit von 3 gleichen gewuerfelten Zahlen hintereinander"+p);

System.exit(0);

}








[/Java]

und er schreibt nun

[Java]
<indentifiere> expected
System.out.println(".....")
^
<indentifiere> expected
System.exit(0);
^
[/Java]
 
Das System.out.println() ist ausserhalb der Methode. Ein Methodenaufruf muss immer innerhalb einer anderen Methode geschehen... der darf da nicht einfach so frei rumstehen.

Verstehst du?
 
Wenn du wüsstest wie ich mich zu Beginn damit quälen musste bis ich das verstanden habe (Java war meine erste Programmiersprache) ^^

Das wird schon mit der Zeit ;-)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben