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
  1. A{6, 5, 4, 3, 2, 1}
  2. B{6, 5, 4, 4, 5, 6}
  3. 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.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. Die Array-Indizes beginnen bei 1. Was enthält das Array a, nachdem das folgende Programm ausgeführt wurde?
  2. Die Array-Indizes beginnen bei 1. Das folgende Programm vergleicht benachbarte Elemente. Welchen Wert hat c nach der Ausführung?
  3. m[i, j] ist das Element in Zeile i und Spalte j des zweidimensionalen Arrays m, und die Indizes beginnen bei 1. Welchen Wert hat s, nachdem das folgende Programm ausgeführt wurde?
  4. Das folgende Programm kopiert die Elemente des zweidimensionalen Arrays m mit 4 Zeilen und 5 Spalten in das Array b mit 20 Elementen. m[i, j] ist das Element in Zeile i und Spalte j, und die Indizes beginnen bei 1. An welchem Index von b wird m[3, 2] gespeichert?
  5. Die Array-Indizes beginnen bei 1, und + verkettet Zeichenketten. Welchen Wert hat r, nachdem das folgende Programm ausgeführt wurde?