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
  1. A7
  2. B11
  3. 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é.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de la programmation (trace de pseudo-code)

  1. Les indices du tableau commencent à 1, et + concatène des chaînes. Quelle est la valeur de r après l'exécution du programme suivant ?
  2. La fonction isPal suivante renvoie true si les caractères du tableau de chaînes s se lisent de la même façon dans les deux sens (un palindrome). Les indices du tableau commencent à 1. Que faut-il écrire à la place de 【a】 dans le programme ?
  3. ÷ est la division ; quand le résultat est affecté à une variable entière (y compris un argument de fonction), la partie fractionnaire est supprimée. Quelle est la valeur de retour de la fonction f suivante appelée sous la forme f(9087) ?
  4. ÷ est la division ; quand le résultat est affecté à une variable entière (y compris un argument de fonction), la partie fractionnaire est supprimée. Quelle est la valeur de retour de la fonction toBin suivante appelée sous la forme toBin(12) ?
  5. Le programme suivant soustrait l'un de l'autre les deux entiers a et b jusqu'à ce qu'ils soient égaux. Quelle est la valeur de k après son exécution ?