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

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. Array-indexen beginnen bij 1. Wat bevat de array a nadat het volgende programma is uitgevoerd?
  2. Array-indexen beginnen bij 1. Het volgende programma vergelijkt naast elkaar liggende elementen. Wat is de waarde van c nadat het is uitgevoerd?
  3. 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?
  4. 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?
  5. Array-indexen beginnen bij 1, en + plakt strings aan elkaar. Wat is de waarde van r nadat het volgende programma is uitgevoerd?