Basis van programmeren (pseudocode traceren)
Het volgende programma was bedoeld om de elementen van de array a in omgekeerde volgorde te zetten. Array-indexen beginnen bij 1. Wat bevat a nadat het programma is uitgevoerd?
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}
Antwoord en toelichting tonen
Antwoord: C. {1, 2, 3, 4, 5, 6}
De drie regels in de lus verwisselen a[i] en a[n − i + 1]. Voor i = 1 tot 3 worden de voorste en achterste helft verwisseld, zodat a op dat moment {6, 5, 4, 3, 2, 1} is. Maar de eindwaarde is n, dus voor i = 4 tot 6 worden de paren a[4] en a[3], a[5] en a[2], en a[6] en a[1] opnieuw verwisseld, waardoor de oorspronkelijke volgorde terugkomt. Om de array om te keren, gebruik je n ÷ 2 (3 voor n = 6) als eindwaarde, zodat elk paar maar één keer wordt verwisseld.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)