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
- Aa[i] ≠ x and i ≦ n
- Bi ≦ n and a[i] ≠ x
- 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.
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)