Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →