Moin 
Also ich soll ein Programm schreiben, welches ein Array "glättet".
Dabei soll der Wert eines Arrays die Werte der 8 umgebenen und sich selbst bekommen.
Allerdings bekomme ich immer eine ArrayIndexOutOfBoundsException ...?
Kann mir da jemand vielleicht einen Hinweis geben, wie ich das beheben kann? Der Fehler muss in den Zeilen liegen, denn die erste Spalte wird mir richtig angezeigt.
Also ich soll ein Programm schreiben, welches ein Array "glättet".
Dabei soll der Wert eines Arrays die Werte der 8 umgebenen und sich selbst bekommen.
Allerdings bekomme ich immer eine ArrayIndexOutOfBoundsException ...?
Kann mir da jemand vielleicht einen Hinweis geben, wie ich das beheben kann? Der Fehler muss in den Zeilen liegen, denn die erste Spalte wird mir richtig angezeigt.
Java:
public class Graustufe {
int a;
byte eing[][];
Graustufe(int size) {
a = size;
byte bild[][] = new byte[this.a][this.a];
eing = bild;
}
void zeichne(Graustufe test) {
for (byte i = 0; i < a; i++) {
for (byte j = 0; j < a; j++) {
eing[j][i] = j;
System.out.print(eing[j][i] + " ");
}
System.out.println();
}
}
void glaetten(Graustufe test) {
System.out.println();
byte temp[][] = new byte[a - 2][a - 2];
for (int k = 0; k < a - 2; k++) {
for (int u = 0; u < a - 2; u++) {
temp[u][k] = eing[u + 1][k + 1];
// System.out.print(temp[u][k] + " ");
}
// System.out.println();
}
short count = 0;
for (int e = 0; e < 3+count; e++) {
for (int r = 0; r < 3 + count; r++) {
temp[r][e] = (byte) (eing[r][e] + eing[r][e+1] + eing[r][e+2]
+ eing[r+1][e] + eing[r+1][e+1] +eing[r+1][e+2]
+ eing[r+2][e] + eing[r+2][e+1]+eing[r+2][e+2] );
System.out.print(temp[r][e] + " ");
count += 2;
}
System.out.println();
}
}
public static void main(String[] args) {
Graustufe test = new Graustufe(6);
test.zeichne(test);
test.glaetten(test);
}
}