Bases de la programmation (trace de pseudo-code)
Le programme suivant devait inverser l'ordre des éléments du tableau a. Les indices du tableau commencent à 1. Que contient a après l'exécution ?
integer array: a ← {1, 2, 3, 4, 5, 6}
integer: n ← 6, t
for (i from 1 to n step 1)
t ← a[i]
a[i] ← a[n − i + 1]
a[n − i + 1] ← t
endfor
- A{6, 5, 4, 3, 2, 1}
- B{6, 5, 4, 4, 5, 6}
- C{1, 2, 3, 4, 5, 6}
Afficher la réponse et l'explication
Réponse : C. {1, 2, 3, 4, 5, 6}
Les trois lignes à l'intérieur de la boucle échangent a[i] et a[n − i + 1]. Pour i = 1 à 3, la première et la seconde moitié sont échangées, ce qui donne à ce stade {6, 5, 4, 3, 2, 1}. Mais la valeur finale est n : pour i = 4 à 6, les paires a[4] et a[3], a[5] et a[2], puis a[6] et a[1] sont échangées une seconde fois, ce qui rétablit l'ordre d'origine. Pour inverser le tableau, on prend n ÷ 2 (3 pour n = 6) comme valeur finale, afin que chaque paire ne soit échangée qu'une seule fois.
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)