Bases de la programmation (trace de pseudo-code)

Le programme suivant cherche la valeur x dans le tableau a de n éléments et place dans i l'indice où elle est trouvée. Les indices du tableau commencent à 1. and et or n'évaluent pas leur membre droit quand le membre gauche suffit à déterminer le résultat. Quelle condition en 【a】 lit a[n + 1], en dehors du tableau, quand x n'est pas dans a ?

integer: i ← 1
while (【a】)
  i ← i + 1
endwhile
  1. Aa[i] ≠ x and i ≦ n
  2. Bi ≦ n and a[i] ≠ x
  3. Cnot (i > n or a[i] = x)
Afficher la réponse et l'explication

Réponse : A. a[i] ≠ x and i ≦ n

Si x n'est pas dans a, i augmente jusqu'à n + 1, puis la condition est testée. Dans i ≦ n and a[i] ≠ x, le membre gauche i ≦ n est faux : a[i], à droite, n'est pas évalué, et rien n'est lu en dehors du tableau. Dans not (i > n or a[i] = x), le or est déterminé dès que i > n est vrai : a[i] n'est pas évalué non plus. a[i] ≠ x and i ≦ n évalue d'abord a[n + 1]. Quand on s'appuie sur l'évaluation en court-circuit, on place la vérification de la plage à gauche.

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

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

  1. Les valeurs réelles sont représentées en double précision IEEE 754 (binary64), et chaque somme est arrondie à la valeur représentable la plus proche. Quelle est la valeur de c après l'exécution du programme suivant ?
  2. La classe Counter donne à chaque instance sa propre variable membre entière count (0 à la création), et sa méthode inc() ajoute 1 à son propre count. Quelle est la valeur de x après l'exécution du programme suivant ?
  3. La classe Counter donne à chaque instance sa propre variable membre entière count (0 à la création), et sa méthode inc() ajoute 1 à son propre count. Une variable de type Counter contient une référence à une instance, et non l'instance elle-même. Quelle est la valeur de x après l'exécution du programme suivant ?
  4. Les deux affectations du programme suivant devaient échanger les valeurs de x et y. Quelles sont les valeurs de x et y après son exécution ?
  5. Le programme suivant fait circuler des valeurs entre trois variables. Quelles sont les valeurs de a, b et c après son exécution ?