Basis van programmeren (pseudocode traceren)
De volgende functie isPal geeft true terug als de tekens in de stringarray s van voren en van achteren gelezen hetzelfde zijn (een palindroom). Array-indexen beginnen bij 1. Wat moet er op de plaats van 【a】 in het programma staan?
○boolean: isPal(string array: s)
integer: n ← length(s)
for (i from 1 to n ÷ 2 step 1)
if (s[i] ≠ s[【a】])
return false
endif
endfor
return true
- An − i + 1
- Bn − i
- Cn + i − 1
Antwoord en toelichting tonen
Antwoord: A. n − i + 1
Het i-de teken wordt vergeleken met het i-de teken van achteren. Het 1e van achteren is s[n] en het 2e is s[n − 1], dus het i-de van achteren is s[n − i + 1]. Het is genoeg om de eerste helft te vergelijken: voor n = 5 is n ÷ 2 = 2,5, dus i = 1 en 2 vergelijken s[1] met s[5] en s[2] met s[4] (het middelste s[3] hoeft niet te worden vergeleken). Met n − i zit de vergelijking er één naast, en zelfs het palindroom „level” geeft false, omdat s[1], „l”, wordt vergeleken met s[4], „e”.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)