Basis van programmeren (pseudocode traceren)
Het volgende programma was bedoeld om de som van alle elementen van de array a te berekenen. Array-indexen beginnen bij 1. Wat is de waarde van s nadat het is uitgevoerd?
integer array: a ← {4, 7, 1, 9, 3}
integer: s ← 0
for (i from 1 to length(a) − 1 step 1)
s ← s + a[i]
endfor
- A20
- B21
- C24
Antwoord en toelichting tonen
Antwoord: B. 21
length(a) is 5, dus i loopt van 1 tot 4 en s = 4 + 7 + 1 + 9 = 21. Het laatste element a[5] = 3 wordt niet opgeteld, dus het resultaat is 3 kleiner dan de juiste som 24. Wie het patroon uit talen met indexen vanaf 0 (van 0 tot length − 1) ongewijzigd toepast op arrays die bij 1 beginnen, maakt precies dit soort off-by-one-fout.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)