Aufgabe – Feld shiften

Schreibe zwei Funktionen, die den Inhalt eines Feldes um n Stellen nach rechts verschieben. Die Funktion static int[] shiftWithDrop(int[] field, int places) erzeugt ein neues Feld und verschiebt den Inhalt von field um places Positionen nach rechts. Dabei fallen die Elemente aus dem Feld. Stellen, die nach dem Verschieben leer sind, sollen mit 0 befüllt werden. Bei Fehlerfällen (field null oder places<0) soll null als Ergebnis geliefert werden. Die Funktion static int[] shiftWithRotation(int[] field, int places) erzeugt ein neues Feld und verschiebt den Inhalt von field um places Positionen nach rechts. Elemente, die beim Verschieben das Feld auf der rechten Seite verlassen, betreten in der gleichen Reihenfolge das Feld wieder von der linken Seite. Bei Fehlerfällen (field null oder places<0) soll null als Ergebnis geliefert werden.
Image

Ausgabe

Ausgabe
Hinweis: Mit dem Modulo Operator kann man beim Rotieren eines Feldes vermeiden, dass ein Index außerhalb der Länge des Feldes liegt.
Image

Tests

  • Zeige anhand mindestens dreier sinnvoller Testfälle, dass dein Programm funktioniert!
  • Teste die Funktion mit unterschiedlichen Feldern in der main-Methode (vergiss dabei nicht, die Fehlerfälle zu testen).