Hallo,
das Programm hat laut Compiler in Zeile 14 einen Fehler
("symbol : method Punkt(double,double)
location: class Sierpinski.Punkt
return Punkt( (a.x + b.x)/2, (a.y + b.y)/2 );")
Ich weiss aber nicht was hier falsch sein soll.
Ist es eigentlich geschickt in einer Klasse (hier Sierpinski) eine andere (Punkt) zu definieren?
Wäre super wenn mir wer helfen könnte.
Lg Caro
das Programm hat laut Compiler in Zeile 14 einen Fehler
("symbol : method Punkt(double,double)
location: class Sierpinski.Punkt
return Punkt( (a.x + b.x)/2, (a.y + b.y)/2 );")
Ich weiss aber nicht was hier falsch sein soll.
Ist es eigentlich geschickt in einer Klasse (hier Sierpinski) eine andere (Punkt) zu definieren?
Wäre super wenn mir wer helfen könnte.
Lg Caro
Java:
class Sierpinski {
//private double x;
//private double y;
public static class Punkt {
private double x;
private double y;
public Punkt( double x, double y ) { this.x = x; this.y = y; }// hier war ein Fehler
}
private Punkt neuePosition( Punkt a, Punkt b )
{
return Punkt( (a.x + b.x)/2, (a.y + b.y)/2 );
}
public static void main( String[] args ) {
int n = 10000; // Schrittanzahl
// Rasterung fuer das Quadrat mit Ecken (0,0) und (1,1)
int raster = 40;
int[][] Akku = new int[raster][raster]; // hier war ein Fehler
// Die Ecken des Sierpinski-Dreiecks liegen bei (0,0), (1,0), (1/2,sqrt(3/4))
Punkt[] ecken = new Punkt[3];
ecken[0] = new Punkt(0,0);
ecken[0] = new Punkt(1,0);
ecken[0] = new Punkt(1/2,sqrt(3/4));
// Startposition festlegen // hier war ein Fehler
Punkt pos = new Punkt( Math.random(), Math.random() );
// Iteration mit festgelegter Schrittanzahl und Eintragen in Raster
for ( int i = 0; i < n; i++ ) /*hier war ein Fehler*/ {
pos = neuePosition( pos, ecken[(Math.random()*3)] );
Akku[(int)(raster*pos.x)][(int)(raster*pos.y)]++;
}
// Ausgabe des Rasters
System.out.println("Das Sierpinski-Dreieck:"); // hier war ein Fehler
for ( int y = raster-1; y >= 0; y++ )
for ( int x = 0; x < raster; x++ ) {
if ( Akku[x][y] > 5 )
System.out.print( "* " );
else
System.out.println(" ");
}
System.out.print("\n");
}
}