Bases de la programmation (trace de pseudo-code)
Lorsque la procédure p suivante est appelée sous la forme p(3), quelle suite de valeurs est affichée ?
○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
Afficher la réponse et l'explication
Réponse : C. 1, 2, 1, 3, 1, 2, 1
p(1) exécute p(0), affiche 1 puis exécute p(0) : elle n'affiche donc que « 1 ». p(2) exécute p(1), affiche 2 et exécute p(1), ce qui donne « 1, 2, 1 ». p(3) donne « 1, 2, 1 » avec p(2), puis 3, puis de nouveau « 1, 2, 1 » avec p(2) : 1, 2, 1, 3, 1, 2, 1. Il y a 2³ − 1 = 7 valeurs affichées, dans le même ordre que les numéros des disques déplacés dans les tours de Hanoï à trois disques.
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)