Auf Thema antworten

Hi,

hier ein Link wie Arrays aufgebaut sind:

Tutorial / Java Grundlagen / Arrays


Dann zu der Aufgabe:



Du hast also ein Array namens "array" und ein Array namens "ziel".

Deine Aufgabe ist es, die elemente aus array in ziel zu packen.

Da beide arrays gleich viele Elemente enthalten sind sie logischerweise gleich lang (genauer gesagt ist Ziel exakt so lang wie array.

Ein int-Array einer bestimmten größe erzeugt man mit new int[größe] und die länge eines Arrays fragt man mit array.length ab.

Du kannst also mit

[code=Java]int[] ziel = new int[array.length];[/code]

Ein Array erzeugen, das soviel Speicherfelder bereitstellt wie array hat.


Dann musst du die Elemente übertragen, dazu bietet sich eine Schleife an.

Der Schleifenzähler fängt bei 0 an.

Du willst das erste Element von Array an die letzte Position von ziel verfrachten.

Die erste Position ist 0, die Zielposition wäre länge-1 (da das array auch bei 0 anfängt).

Im zweiten Schritt ist der Schleifenzähler 1

und du willst Position 1 aus array in ziel an länge-1-1 packen (das erste in das vorletzte)

dann bei Schritt 2 Position 2 aus array in ziel an Position länge-1-2 usw.


Abstrakt kannst du also einen Schritt so formulieren:

Bei Schritt i Speichere Position i aus array an Position array.length-1-i in ziel.

die Zuweisung dabei sieht so aus:

[code=Java]ziel[array.length]-1-i = array[i];[/code]


Jetzt noch eine Schleife außenrum und du erhälst

[code=Java]for(int i = 0; i < array.length; i++){

ziel[array.length]-1-i = array[i];

}[/code]


Zu der Ausgabe habe ich dir ja den Ansatz im vorigen Post schon gegeben.

Die Schleife läuft einmal über das ziel-array, was liegt also näher als jedes Element aus dem ziel-array auszugeben?


Ich hab das ganze hier mal eingesetzt (die Schleifenvariablen heißen hier zwar j, aber das ändert am Programmablauf nichts)


[code=Java]public static void main ( String[] args )

{

    int[] array = {1,2,3,4,5,6,7,8,9,10,11,12,13,14};

    int[] ziel = new int[array.length];


        // die Daten von array in umgekehrter Reihenfolge nach ziel kopieren

        for ( int j = 0; j < array.length; j++)

        {

            ziel[array.length-1-j] = array[j];

        }


    // Ergebnis ausgeben

    for ( int j = 0; j < ziel.length; j++)

    {

        System.out.println(ziel[j]);

    }


}[/code]

Gruß



Oben