Einzelnen Beitrag anzeigen
Ungelesen 22.11.10, 21:16   #8
Fighter3
Ist öfter hier
 
Registriert seit: Oct 2008
Beiträge: 193
Bedankt: 9
Fighter3 ist noch neu hier! | 0 Respekt Punkte
Standard

Danke für die Hilfe! Genau das war der Fehler!

Ich musste nun noch etwas an dem Code verändern und bekomme jetzt noch einen anderen Fehler. Das Programm lässt sich zwar kompilieren, anstatt der richtigen Ausgabe kommt der Fehler:
java.lang.ArrayOutOfBoundsExeption

Zitat:
public class drehung2 {
final static int z = 4; //Größe der Matrix bestimmen
public static void belegung (int [][] matrix){
int wert=1;
for (int i = 0; i < matrix.length; i++){ //Belegung der ersten Matrix
for (int j = 0; j < matrix.length; j++){
matrix [i][j] = wert;
wert++;
}
}
}
public static void ausgabe (int [][] matrix){ //Ausgabemethode
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix.length;j++)
System.out.print(matrix[i][j]+"\t");
System.out.println();
}
System.out.println();
}
public static void drehung (int [][] quadrat2){ //Drehmethode um 90°
int speicher;
int a;
int d = 4;
int wert=1;
for (int i = 0; i < quadrat2.length; i++){ //Belegung der ersten Matrix
for (int j = 0; j < quadrat2.length; j++){
quadrat2 [i][j] = wert;
wert++;
}
}
for (a=0; a<=d; a++){ //Variable die nie größer als die Länge der Matrix ist
speicher = quadrat2 [0][d-a]; //Wert in den Speicher übergeben
quadrat2 [0][d-a] = quadrat2 [0][0]; //Übergabe von Werten
quadrat2 [0][0] = quadrat2 [d][a];
quadrat2 [d][a] = quadrat2 [d-a][d];
quadrat2 [d-a][d] = speicher; //Wert aus dem Speicher auslesen
}


}
public static void main (String[]args){
int [][] quadrat1 = new int [z][z]; //Initialisierung von erster Matrix (normale Belegung)
int [][] quadrat2 = new int [z][z]; //Initialisierung von zweiter Matrix (gedreht)

belegung (quadrat1);
ausgabe (quadrat1);
drehung (quadrat2);
ausgabe (quadrat2);
}
}
Jemand noch 'ne Idee?
__________________
Hier könnte ihre Werbung stehen!
Fighter3 ist offline   Mit Zitat antworten