Bases de la programmation (trace de pseudo-code)
Dans le programme suivant, and n'évalue pas son membre droit quand le membre gauche est faux (évaluation en court-circuit). cnt est une variable globale. Quelle est la valeur de cnt après l'exécution du programme ?
integer: cnt ← 0
○boolean: even(integer: k)
cnt ← cnt + 1
return k mod 2 = 0
for (i from 1 to 5 step 1)
if (i > 3 and even(i))
output i
endif
endfor
- A1
- B2
- C5
Afficher la réponse et l'explication
Réponse : B. 2
Pour i = 1 à 3, le membre gauche i > 3 est faux : even(i), à droite, n'est pas appelée. Pour i = 4 et i = 5, i > 3 est vrai : even(i) est appelée et cnt passe à 2. Seul i = 4, pour lequel toute la condition est vraie, est affiché. Si les deux membres étaient toujours évalués, even serait appelée 5 fois et cnt vaudrait 5.
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)