Basis van programmeren (pseudocode traceren)
Welke reeks waarden wordt afgedrukt als de volgende procedure p wordt aangeroepen als p(3)?
○p(integer: n)
if (n > 0)
p(n − 1)
output n
p(n − 1)
endif
- A1, 1, 2, 1, 1, 2, 3
- B3, 2, 1, 1, 2, 1, 1
- C1, 2, 1, 3, 1, 2, 1
Antwoord en toelichting tonen
Antwoord: C. 1, 2, 1, 3, 1, 2, 1
p(1) voert p(0) uit, drukt 1 af en voert p(0) uit, dus het drukt alleen „1” af. p(2) voert p(1) uit, drukt 2 af en voert p(1) uit, wat „1, 2, 1” geeft. p(3) geeft „1, 2, 1” van p(2), dan 3, dan opnieuw „1, 2, 1” van p(2): 1, 2, 1, 3, 1, 2, 1. Er worden 2³ − 1 = 7 waarden afgedrukt, in dezelfde volgorde als de nummers van de schijven die worden verplaatst bij de torens van Hanoi met drie schijven.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)