B
Bata
Gast
Hallo,
ich habe folgende Aufgabe:
1. Legen Sie eine Klasse ArrayMerge mit einer main-Methode an.
2. Defnieren Sie zunächst zwei int-Felder der Größe 10 und füllen Sie beide mit
jeweils einer for-Schleife mit Zahlen in aufsteigender Reihenfolge. Die Zahlen in
beiden Feldern sollen sich nach dem Füllen unterscheiden.
3. Legen Sie ein Feld mergeArray an, das die Elemente Ihrer beiden einzelnen Felder
aufnehmen kann.
4. Nach diesem Schritt sollen die Zahlen auch im Feld mergeArray in aufsteigender
Reihenfolge vorliegen.
Durchlaufen Sie dazu mit einer Schleife das Feld mergeArray. Beachten Sie, dass
Sie sich zusatzlich auch die Positionen in den beiden ursprunglichen Feldern
merken mussen.
Vergleichen Sie also die beiden Elemente, die sich an der jeweils aktuellen Position
in den Einzelfeldern beenden und fügen Sie das kleinere Element an die aktuelle
Position des mergeArray ein.
Wie können Sie den Fall behandeln, dass Sie am Ende eines der beiden Felder
angekommen sind?
1
Beispiel:
feld1: 0 3 6 9
feld2: 1 6 11 16
mergeArray: 0 1 3 6 6 9 11 16
Im ersten Schritt wird die 0 mit der 1 verglichen und die 0 in mergeArray an
Position 0 eingefügt. Im nächsten Schritt wird die 1 mit der 3 verglichen und an
die 1 an Position 1 in das mergeArray eingefügt, usw. Aus den beiden Feldern
feld1 und feld2 entsteht so Schritt für Schritt das neue Feld mergeArray.
5. Geben Sie Ihr zusammengefügtes Feld auf stdout aus und überprüfen Sie, ob die
Zahlen in der korrekten aufsteigenden Reihenfolge ausgegeben werden. Geben Sie
das Feld genauso wie in Aufgabe 1 beschrieben aus.
Ich habe alles bis auf die for schleife in dem Abschnitt 4.
public class ArrayMerge {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] feld1 = new int [10];
int[] feld2= new int [10];
int[] mergeArray = new int[feld1.length + feld2.length];
for(int i=0; i < feld1.length; i++){
feld1 = i + 1;}
for(int i=0; i < feld2.length; i++){
feld2 = i + 11;}
for (int i = 0; i < mergeArray.length; i += 2){
mergeArray = feld1[i / 2];
mergeArray[i + 1] = feld2[i / 2];}
for (int elem : mergeArray)
System.out.println(elem);
}
}
Könnte mir jemand helfen? Vielen Dank
ich habe folgende Aufgabe:
1. Legen Sie eine Klasse ArrayMerge mit einer main-Methode an.
2. Defnieren Sie zunächst zwei int-Felder der Größe 10 und füllen Sie beide mit
jeweils einer for-Schleife mit Zahlen in aufsteigender Reihenfolge. Die Zahlen in
beiden Feldern sollen sich nach dem Füllen unterscheiden.
3. Legen Sie ein Feld mergeArray an, das die Elemente Ihrer beiden einzelnen Felder
aufnehmen kann.
4. Nach diesem Schritt sollen die Zahlen auch im Feld mergeArray in aufsteigender
Reihenfolge vorliegen.
Durchlaufen Sie dazu mit einer Schleife das Feld mergeArray. Beachten Sie, dass
Sie sich zusatzlich auch die Positionen in den beiden ursprunglichen Feldern
merken mussen.
Vergleichen Sie also die beiden Elemente, die sich an der jeweils aktuellen Position
in den Einzelfeldern beenden und fügen Sie das kleinere Element an die aktuelle
Position des mergeArray ein.
Wie können Sie den Fall behandeln, dass Sie am Ende eines der beiden Felder
angekommen sind?
1
Beispiel:
feld1: 0 3 6 9
feld2: 1 6 11 16
mergeArray: 0 1 3 6 6 9 11 16
Im ersten Schritt wird die 0 mit der 1 verglichen und die 0 in mergeArray an
Position 0 eingefügt. Im nächsten Schritt wird die 1 mit der 3 verglichen und an
die 1 an Position 1 in das mergeArray eingefügt, usw. Aus den beiden Feldern
feld1 und feld2 entsteht so Schritt für Schritt das neue Feld mergeArray.
5. Geben Sie Ihr zusammengefügtes Feld auf stdout aus und überprüfen Sie, ob die
Zahlen in der korrekten aufsteigenden Reihenfolge ausgegeben werden. Geben Sie
das Feld genauso wie in Aufgabe 1 beschrieben aus.
Ich habe alles bis auf die for schleife in dem Abschnitt 4.
public class ArrayMerge {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] feld1 = new int [10];
int[] feld2= new int [10];
int[] mergeArray = new int[feld1.length + feld2.length];
for(int i=0; i < feld1.length; i++){
feld1 = i + 1;}
for(int i=0; i < feld2.length; i++){
feld2 = i + 11;}
for (int i = 0; i < mergeArray.length; i += 2){
mergeArray = feld1[i / 2];
mergeArray[i + 1] = feld2[i / 2];}
for (int elem : mergeArray)
System.out.println(elem);
}
}
Könnte mir jemand helfen? Vielen Dank