studyklar
GdI 2 · Übungsblatt 3 · Aufgabe 4

Ein Array umdrehen: Städte von hinten nach vorn tauschen

Zehn Städte stehen in einem Array von A bis J. Danach sollen sie im selben Array von J bis A stehen. Der Trick ist das Tauschen von je zwei Plätzen. Rechts steht das fertige Programm, die Zeilen zum aktuellen Schritt sind hervorgehoben. Mit Weiter geht es Schritt für Schritt voran.

Die Aufgabe

Aufgabe 4

Gegeben ist das folgende String-Array in der Klasse „Umdrehen:“

String[] staedte = {"Aachen", "Berlin", "Chemnitz", "Düsseldorf", "Essen",        "Frankfurt", "Goslar", "Hamburg", "Ingelheim", "Jena"};

Schreiben Sie den erforderlichen Java-Code um das Array umzudrehen, so dass es mit Jena, Ingelheim, usw. beginnt.

Wichtig: Es sollen nicht einfach die enthaltenen Strings in umgekehrter Reihenfolge ausgegeben werden, und es soll auch kein neues Array angelegt werden, sondern es sollen die Inhalte des vorhandenen Arrays geändert werden.

Geben Sie die Inhalte des umgedrehten Arrays unter Verwendung von Arrays.toString( ) aus.

Gegeben ist ein Array mit zehn Städten, von Aachen bis Jena. Danach soll Jena vorn stehen und Aachen hinten. Zwei Wege sind verboten: die Städte nur rückwärts ausgeben und ein zweites Array anlegen. Die Werte im vorhandenen Array müssen sich ändern.

Merke: Umdrehen heißt Paare tauschen: den ersten mit dem letzten Platz, den zweiten mit dem vorletzten. Zum Tauschen braucht man eine Hilfsvariable.
  1. Das Array und seine Plätze ansehen.
  2. Zu jedem Platz den Platz gegenüber finden.
  3. Zwei Plätze tauschen.
  4. Nur bis zur Mitte tauschen.
  5. Ausgeben.

Zehn Städte auf den Plätzen 0 bis 9

        String[] staedte = {"Aachen", "Berlin", "Chemnitz", "Düsseldorf", "Essen",                "Frankfurt", "Goslar", "Hamburg", "Ingelheim", "Jena"};
Platz0123456789
StadtA.B.C.D.E.F.G.H.I.J.

Das Array hat zehn Plätze. Gezählt wird ab 0: Aachen steht auf Platz 0, Jena auf Platz 9. staedte.length ist die Zahl der Plätze, also 10. Der letzte Platz ist darum staedte.length - 1 = 9.

In den Tabellen steht jede Stadt kurz mit ihrem Anfangsbuchstaben: A. für Aachen.

Aus Aufgabe 1 („Ein Array mit den Vielfachen von 3 füllen“): Ein Array hat eine feste Zahl von Plätzen. Jeder Platz hat eine Nummer, den Index; gezählt wird ab 0.

Welcher Platz liegt gegenüber?

istaedte.length - 1 - iPaar
010 - 1 - 0 = 9Aachen ↔ Jena
110 - 1 - 1 = 8Berlin ↔ Ingelheim
210 - 1 - 2 = 7Chemnitz ↔ Hamburg
310 - 1 - 3 = 6Düsseldorf ↔ Goslar
410 - 1 - 4 = 5Essen ↔ Frankfurt

Umgedreht muss die Stadt von Platz 0 nach Platz 9, die von Platz 1 nach Platz 8 und so weiter. Die beiden Nummern ergeben zusammen immer 9. Der Platz gegenüber von i ist also 9 − i.

Damit das Programm auch für andere Längen stimmt, steht dort statt 9 staedte.length - 1. Der Platz gegenüber heißt im Programm darum staedte.length - 1 - i.

Noch 4 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Das Programm Umdrehen

Paare tauschen bis zur Mitte

Abbildung 1Das Programm Umdrehen

Paare tauschen bis zur Mitte

import java.util.Arrays; public class Umdrehen {     public static void main(String[] args) {         String[] staedte = {"Aachen", "Berlin", "Chemnitz", "Düsseldorf", "Essen",                "Frankfurt", "Goslar", "Hamburg", "Ingelheim", "Jena"};         for (int i = 0; i < staedte.length / 2; i++) {            String temp = staedte[i];            staedte[i] = staedte[staedte.length - 1 - i];            staedte[staedte.length - 1 - i] = temp;        }         System.out.println(Arrays.toString(staedte));    }}
LegendeDas ganze Programm.