Basis van programmeren (pseudocode traceren)
In het volgende programma evalueert and de rechterkant niet als de linkerkant false is (kortsluitevaluatie). cnt is een globale variabele. Wat is de waarde van cnt nadat het programma is uitgevoerd?
integer: cnt ← 0
○boolean: even(integer: k)
cnt ← cnt + 1
return k mod 2 = 0
for (i from 1 to 5 step 1)
if (i > 3 and even(i))
output i
endif
endfor
- A1
- B2
- C5
Antwoord en toelichting tonen
Antwoord: B. 2
Voor i = 1 tot 3 is de linkerkant i > 3 false, dus even(i) aan de rechterkant wordt niet aangeroepen. Voor i = 4 en i = 5 is i > 3 true, dus even(i) wordt aangeroepen en cnt wordt 2. Alleen i = 4, waarvoor de hele voorwaarde true is, wordt afgedrukt. Als altijd beide kanten werden geëvalueerd, zou even 5 keer worden aangeroepen en zou cnt 5 zijn.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)