Bases de la programmation (trace de pseudo-code)

Le programme suivant contient une condition à l'intérieur de boucles imbriquées. Quelle est la valeur de c après son exécution ?

integer: c ← 0
for (i from 1 to 4 step 1)
  for (j from 1 to i step 1)
    if (j mod 2 = 1)
      c ← c + 1
    endif
  endfor
endfor
  1. A4
  2. B6
  3. C10
Afficher la réponse et l'explication

Réponse : B. 6

La boucle intérieure fait varier j de 1 à i et n'incrémente c que lorsque j est impair. Pour i = 1, c'est j = 1 (une fois) ; pour i = 2, j = 1 (une fois) ; pour i = 3, j = 1 et 3 (deux fois) ; pour i = 4, j = 1 et 3 (deux fois), soit au total 1 + 1 + 2 + 2 = 6. Le corps de la boucle intérieure s'exécute 1 + 2 + 3 + 4 = 10 fois en tout, mais la condition n'est vraie que 6 fois. C'est une combinaison élémentaire de structures de contrôle : une sélection à l'intérieur d'une itération.

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

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

  1. 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 ?
  2. 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 ?
  3. 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 ?
  4. Les indices du tableau commencent à 1. Que contient le tableau a après l'exécution du programme suivant ?
  5. 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 ?