Correction : Ex4 du TPn°2
On va évaluer chaque expression pas à pas, en partant des valeurs initiales :
A=20, B=5, C=-10, D=2, X=12, Y=15.
(1) (5*X)+2*((3*B)+4)
= (5×12) + 2×((3×5)+4)
= 60 + 2×(15+4)
= 60 + 2×19 = 98
Aucune variable ne change.
(2) (5*(X+2)*3)*(B+4)
= (5×(12+2)×3)×(5+4)
= (5×14×3)×9 = (210)×9 = 1890
Aucune variable ne change.
(3) A == (B = 5)
D’abord l’affectation B=5 (donc B reste 5).
Ensuite A == 5 → 20 == 5 → faux → 0.
Résultat = 0,
B = 5 (inchangé), aucune autre variable modifiée.
(4) A += (X + 5)
→ A = A + (X + 5) = 20 + (12 + 5) = 20 + 17 = 37
Résultat = 37
A devient 37
(5) A != (C *= (-D))
-D = -2
C *= (-D) → C = -10 × (-2) = 20
Ensuite : A != C → 37 != 20 → 1 (vrai)
Résultat = 1
C devient 20
1/3
(6) A *= C + (X - D)
→ A = A × (C + (X - D))
= 37 × (20 + (12 - 2))
= 37 × (20 + 10) = 37 × 30 = 1110
Résultat = 1110
A devient 1110
(7) A %= D++
Le post-incrément s’applique après l’opération.
D vaut d’abord 2.
→ A = A % 2 = 1110 % 2 = 0
Puis D++ fait D = 3.
Résultat = 0
A = 0, D = 3
(8) A %= ++D
Pré-incrément : D = 3+1 = 4
→A=A%D=0%4=0
Résultat = 0
D = 4 (A reste 0)
(9) (X++)*(A+C)
Le post-incrément fait :
→ utiliser X=12, puis X devient 13.
→ A + C = 0 + 20 = 20
Résultat = 12 × 20 = 240
X devient 13
(10) A = X*(B<C) + Y*!(B<C)
Comparer B et C : 5 < 20 → vrai (1)
Donc !(B<C) → faux (0)
→ A = X×1 + Y×0 = 13 + 0 = 13
A devient 13
2/3
(11) !(X - D + C) || D
X - D + C = 13 - 4 + 20 = 29
!(29) = 0 (car ≠0 → faux)
0 || D → 0 || 4 → vrai (1)
Résultat = 1
(12) A && B || !0 && C && !D
Évaluation :
!0 = 0→ faux → !0 = 0 ? Non !0 = 1 (attention : faux=0, donc !0 = 1 ✅)
Donc :
A && B = 13 && 5 → vrai (1)
!0 && C && !D = 1 && 20 && !(4) → 1 && 20 && 0 → 0
Donc : 1 || 0 = 1
Résultat = 1
(13) ((A && B) || (!0 && C)) && !D
A && B = 13 && 5 → 1
!0 && C = 1 && 20 → 1
(A&&B) || (!0&&C) = 1 || 1 → 1
!D = !(4) = 0
→ 1 && 0 = 0
Résultat = 0
(14) ((A && B) || !0) && (C && (!D))
(A && B) = 13 && 5 → 1
!0 = 1
→ ((A&&B)||!0) = 1 || 1 → 1
!D = !(4) = 0
(C && (!D)) = 20 && 0 = 0
→ 1 && 0 = 0
Résultat = 0
3/3