Wie kann man bei Arrays die Elemente verschieben?

2 Antworten

Was heißt das alle um 2 nach rechts verschoben werden müssen?
Hast du mehrere Arrays die jeweils eine Reihe abbilden und die müssen alle zwei nach rechts, oder muss nur eine Reihe(Also ein Array) so verändert werden, dass diese Reihe zwei nach rechts verschoben wird.?

EDIT:Habe gerade noch deinen Kommi unten gesehen.
Also nur die Löcher sollen zwei nach rechts.
Was ist wenn ein Loch an der letzten Stelle rechts ist, soll es dann an der ersten Position links auftauchen?

tigranmanvelyan 
Fragesteller
 03.07.2016, 18:49

Genau nur die Loecher müssen nach rechts und die an letzer stelle rechts soll nach links das wäre perfekt!!

0
ymicky  04.07.2016, 07:59
@tigranmanvelyan

Dann müsste das in etwa so aussehen (angelegt an C#):

// Erzeugen eines temporären Arrays mit verschobenen Werten
// reihenArray ist dein eigentliches Array mit den Werten der Reihe
bool[] tmpArray = new bool[reihenArray.Length]; // false = kein Loch / true = Loch
tmpArray[0] = reihenArray.Lenght - 2; // Zweitletzter Wert aus deinem Reihenarray an die erste Stelle des tmpArrays
tmpArray[1] = reihenArray.Lenght - 1; // Letzter Wert deines Reihenarrays an die zweite Stelle
for (i = 0; i < reihenArray - 2; i++)
{
   tmpArray[i+2] = reihenArray[i];
}
// kopiere alle Werte des temporären Arrays in das eigentliche Reihenarray
for (k = 0; k < tmpArray; k++)
{
  reihenArray[i] = tmpArray[i];
}

Wie gesagt ist es ein C# Code, da ich noch nie mit Java gearbeitet habe, hoffe es hilft dir dennoch weiter :)

0

Was verstehst Du unter Loch? Meinst Du "null"? Und wie groß ist das Array? So ganz klar ist mir die Aufgabenstellung leider nicht ...

tigranmanvelyan 
Fragesteller
 03.07.2016, 18:19

Die Felder im Array haben den Zustand Geschlossen und den Zustand Offen. Und die mit dem Zustand Geschlossen also Loecher werden um 2 nach Rechts verschoben. Also Feld 2 das Geschlossen ist wird Offen gesetzt und Feld 4 soll dann von Offen nach Geschlossen gesetzt werden. Die Sache ist das das Array keine vorgegebene groese hat sondern immer geändert werden kann. Hoffe es ist jetzt verständlicher

0
Katzenpfote73  03.07.2016, 19:06
@tigranmanvelyan

jetzt ist es schon klarer. Aber was ist, wenn die Größe des Arrays nicht ausreicht um das Loch zu verschieben? Und kann es mehrere Löcher geben oder nur ein einziges?

0