Basis van programmeren (pseudocode traceren)
Het volgende programma trekt de twee gehele getallen a en b van elkaar af tot ze gelijk zijn. Wat is de waarde van k nadat het is uitgevoerd?
integer: a ← 48, b ← 18, k ← 0
while (a ≠ b)
if (a > b)
a ← a − b
else
b ← b − a
endif
k ← k + 1
endwhile
- A3
- B4
- C6
Antwoord en toelichting tonen
Antwoord: B. 4
Dit is de aftrekvorm van het algoritme van Euclides: trek de kleinste waarde af van de grootste tot de twee gelijk zijn. (a, b) verandert als (48, 18) → (30, 18) → (12, 18) → (12, 6) → (6, 6), vier aftrekkingen, dus k = 4. De uiteindelijke a = b = 6 is de grootste gemene deler. Het algoritme van Euclides met de rest (mod) heeft maar drie stappen nodig: 48 mod 18 = 12, 18 mod 12 = 6, 12 mod 6 = 0.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)