Bases de la programmation (trace de pseudo-code)

Le programme suivant devait calculer la somme de tous les éléments du tableau a. Les indices du tableau commencent à 1. Quelle est la valeur de s après son exécution ?

integer array: a ← {4, 7, 1, 9, 3}
integer: s ← 0
for (i from 1 to length(a) − 1 step 1)
  s ← s + a[i]
endfor
  1. A20
  2. B21
  3. C24
Afficher la réponse et l'explication

Réponse : B. 21

length(a) vaut 5 : i varie donc de 1 à 4, et s = 4 + 7 + 1 + 9 = 21. Le dernier élément a[5] = 3 n'est pas ajouté, et le résultat est inférieur de 3 à la somme correcte, 24. Reprendre telle quelle, pour un tableau dont les indices commencent à 1, l'écriture utilisée dans les langages où ils commencent à 0 (de 0 à length − 1) provoque ce type d'erreur de décalage d'une unité (erreur off-by-one).

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. Le programme suivant cherche le plus grand élément. Quelle est la valeur de m après son exécution ?
  2. 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 ?
  3. Les indices du tableau commencent à 1. Que contient le tableau a après l'exécution du programme suivant ?
  4. Les indices du tableau commencent à 1. Le programme suivant compare des éléments voisins. Quelle est la valeur de c après son exécution ?
  5. m[i, j] désigne l'élément de la ligne i et de la colonne j du tableau à deux dimensions m, et les indices commencent à 1. Quelle est la valeur de s après l'exécution du programme suivant ?