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
  1. A20
  2. B21
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. Array-indexen beginnen bij 1. Het volgende programma zoekt het grootste element. Wat is de waarde van m nadat het is uitgevoerd?
  2. 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?
  3. Array-indexen beginnen bij 1. Wat bevat de array a nadat het volgende programma is uitgevoerd?
  4. Array-indexen beginnen bij 1. Het volgende programma vergelijkt naast elkaar liggende elementen. Wat is de waarde van c nadat het is uitgevoerd?
  5. m[i, j] is het element in rij i, kolom j van de tweedimensionale array m, en indexen beginnen bij 1. Wat is de waarde van s nadat het volgende programma is uitgevoerd?