007
20.01.2014, 23:51 Uhr
ao
(Operator)
|
Gut. Im ersten Fall musst du einfach nur Feld[0] mit einem neuen Wert überschreiben.
Im zweiten Fall musst du zuerst alle bestehenden Elemente um einen Platz weiterrücken, von Feld[i] nach Feld[i+1], dabei beim letzten Element anfangen und rückwärts in Richtung Anfang arbeiten, sonst überschreibst du Daten. Wenn du damit fertig bist, Feld[0] neu setzen.
Abläufe wie diese hier sind für Anfänger nicht leicht zu überblicken, und dann macht man Indexfehler, läuft einen Schritt zu weit oder hört zu früh auf. Mach es dir zur Angewohnheit, Programmlogik im Einzelschrittverfahren im Debugger zu überprüfen. Oder, wenn du mit einer Umgebung arbeiten musst, die das nicht hergibt, dann bau zumindest Debug-Ausgaben ein und kontrollier damit den Ablauf.
Zum Beispiel könntest du in jedem Schleifendurchlauf das ganze Feld einmal ausgeben und so überwachen, wie sich das Programm verhält: Ob in jedem Durchlauf ein Wert verschoben wird, ob die Anzahl stimmt usw.
Mach dir bewusst, das "richtige" Programme um ein Vielfaches komplexer sind; wenn man die einfach nur losrasen lassen würde und schauen, was passiert, würde man mit der Fehlersuche nie fertig. Das Einkreisen von Fehlern durch gezieltes Untersuchen von Zuständen ist eine wichtige Technik dabei. |