Cours d`Algorithmique Dixi`eme fiche de TD — Logique de Hoare (fin)

publicité
Cours d’Algorithmique
Dixième fiche de TD — Logique de Hoare (fin)
Département Informatique, Réseaux et Multimédia
Polytech Marseille — usage interne
Année 2015-16
Semaine du 14/12/15
1 Calcul de la factorielle
On souhaite écrire un programme permettant de calculer n!, on considère le programme ci-contre. Est-il possible de satisfaire la post-condition {f = n!} ? Corriger
le programme.
c = 1 ;
f = 1 ;
tantque c <> n faire
f = f * c ;
c = c + 1
fin tantque
2 Pour terminer ...
Construire, pour le programme de gauche, la pré-condition correspondant à la postcondition {x = a|b| }.
Quelle pré-condition obtient-on, pour le programme de droite (indépendant du
premier programme), à partir de la post-condition {p = a × b} et qu’impose-t-elle
quant à l’initialisation des variables ?
x = 1 ;
y = b ;
si y < 0
y = -y
fin si ;
tantque y > 0 faire
x = x * a ;
y = y - 1
fin tantque
deuxb = b+b ;
y = b ;
tantque c < a faire
c = c + 2 ;
p = p + deuxb
fin tantque ;
si c > a
p = p - b
fin si
Téléchargement