Hallo
Im zuge der Klausurvorbereitung gehe ich zz. mehrere Übungsaufgaben durch. Dabei bin ich auf folgende gestoßen:
"Schreiben Sie eine Methode
mit der man Werte in einem Array mit einer Schrittweite verschieben kann. Das übergebene Feld darf nicht verändert werden.
Die Idee war nun folgende:
Man gehe nun von folgendem aus:
Problem ist nun folgendes: Ist man beim 1. Index angekommen so rechnet man: (1 + 2) % 3 was 0 ergibt. An genau diesem Punkt scheitert es auch da dadurch das "neu zugewiesene" Feld durcheinander gerät.
Ich habe leider keine Ahnung wie ich dieses Problem anders lösen soll und hoffe, dass mit jemand helfen kann
Am rande: Es darf kein Java Algorithmus zur lösung verwendet werden!
Im zuge der Klausurvorbereitung gehe ich zz. mehrere Übungsaufgaben durch. Dabei bin ich auf folgende gestoßen:
"Schreiben Sie eine Methode
Code:
int[] verschiebe(int[] feld, int schrittweite)
Die Idee war nun folgende:
Code:
public static int[] verschiebe(int[] feld, int schrittweite) {
int maxIndex = feld.length - 1;
int[] uebergang = new int[feld.length];
for(int schl = 0; schl<feld.length; schl = schl + 1) {
uebergang[schl] = feld[(schl + schrittweite) % maxIndex];
}
feld = uebergang;
return feld;
}
Man gehe nun von folgendem aus:
Code:
int[] feld = new int[]{1, 2, 3, 4};
feld = verschiebe(feld, 2);
Problem ist nun folgendes: Ist man beim 1. Index angekommen so rechnet man: (1 + 2) % 3 was 0 ergibt. An genau diesem Punkt scheitert es auch da dadurch das "neu zugewiesene" Feld durcheinander gerät.
Ich habe leider keine Ahnung wie ich dieses Problem anders lösen soll und hoffe, dass mit jemand helfen kann
Am rande: Es darf kein Java Algorithmus zur lösung verwendet werden!
Zuletzt bearbeitet: