algorithmique (école d'ingénieur) · Chapitre 11 · Application directe du cours
Triplets de Hoare
Programmes justes : logique de Hoare et invariants · niveau 1 (application)
Énoncé
Dire si les triplets suivants sont vrais. Pour ceux qui sont faux, donner un contre-exemple ; pour ceux qui sont vrais, calculer la plus faible précondition avec la règle de l'affectation.
-
x = 2 * x - 1; -
x = x + y; y = x - y; x = x - y; -
if (x > y) m = x; else m = y; -
x = x / 2;
Corrigé
- Vrai. La règle de l'affectation donne la plus faible précondition , c'est-à-dire : c'est exactement .
- Vrai. On remonte les trois affectations depuis la postcondition :
La plus faible précondition est la précondition donnée. (En Java, le dépassement de capacité ne casse pas l'échange : les calculs sont exacts modulo .)
- Vrai. Règle de la conditionnelle : il faut , vrai car alors , et , vrai de même. La plus faible précondition est .
- Faux : pour , après
x = x / 2;on a et . La division entière perd le bit de poids faible ; le triplet n'est vrai que pour pair.
100 % gratuit
La suite du chapitre est sur Adloun
- 12 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.