Basis van programmeren (pseudocode traceren)
Het volgende programma kopieert de elementen van de tweedimensionale array m met 4 rijen en 5 kolommen naar de array b met 20 elementen. m[i, j] is het element in rij i, kolom j, en indexen beginnen bij 1. Op welke index van b komt m[3, 2] terecht?
integer: k ← 0
for (i from 1 to 4 step 1)
for (j from 1 to 5 step 1)
k ← k + 1
b[k] ← m[i, j]
endfor
endfor
- A7
- B11
- C12
Antwoord en toelichting tonen
Antwoord: C. 12
De buitenste i is de rij en de binnenste j de kolom, dus b wordt gevuld met de 5 elementen van rij 1, dan de 5 van rij 2, dan rij 3 (rij-voor-rijvolgorde, row-major). Vóór m[3, 2] komen de 10 elementen van rij 1 en 2 en m[3, 1], dus k = 10 + 2 = 12. In het algemeen is de index (i − 1) × 5 + j. Wie de formule voor indexen vanaf 0, (i − 1) × 5 + (j − 1), ongewijzigd gebruikt, krijgt 11, één te weinig.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)