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?