Bases de la programmation (trace de pseudo-code)
Le programme suivant copie les éléments du tableau à deux dimensions m, de 4 lignes et 5 colonnes, dans le tableau b de 20 éléments. m[i, j] désigne l'élément de la ligne i et de la colonne j, et les indices commencent à 1. À quel indice de b m[3, 2] est-il stocké ?
integer: k ← 0
for (i from 1 to 4 step 1)
for (j from 1 to 5 step 1)
k ← k + 1
b[k] ← m[i, j]
endfor
endfor
- A7
- B11
- C12
Afficher la réponse et l'explication
Réponse : C. 12
Le i extérieur est la ligne et le j intérieur la colonne : b reçoit donc les 5 éléments de la ligne 1, puis les 5 de la ligne 2, puis ceux de la ligne 3 (ordre ligne par ligne). Avant m[3, 2] viennent les 10 éléments des lignes 1 et 2 ainsi que m[3, 1], donc k = 10 + 2 = 12. En général, l'indice vaut (i − 1) × 5 + j. Reprendre telle quelle la formule des indices commençant à 0, (i − 1) × 5 + (j − 1), donne 11, avec un décalage d'une unité.
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)