Grundlagen der Programmierung (Pseudocode nachverfolgen)
Das folgende Programm sollte die Reihenfolge der Elemente des Arrays a umkehren. Die Array-Indizes beginnen bei 1. Was enthält a nach der Ausführung?
integer array: a ← {1, 2, 3, 4, 5, 6}
integer: n ← 6, t
for (i from 1 to n step 1)
t ← a[i]
a[i] ← a[n − i + 1]
a[n − i + 1] ← t
endfor
- A{6, 5, 4, 3, 2, 1}
- B{6, 5, 4, 4, 5, 6}
- C{1, 2, 3, 4, 5, 6}
Antwort und Erläuterung anzeigen
Antwort: C. {1, 2, 3, 4, 5, 6}
Die drei Zeilen in der Schleife vertauschen a[i] und a[n − i + 1]. Für i = 1 bis 3 werden vordere und hintere Hälfte vertauscht, und zwischenzeitlich ergibt sich {6, 5, 4, 3, 2, 1}. Der Endwert ist aber n, daher werden für i = 4 bis 6 die Paare a[4] und a[3], a[5] und a[2] sowie a[6] und a[1] erneut vertauscht, und die ursprüngliche Reihenfolge ist wiederhergestellt. Um das Array umzukehren, wird n ÷ 2 (bei n = 6 also 3) als Endwert verwendet, sodass jedes Paar nur einmal vertauscht wird.
Weiter: 9 weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)