LOG4500
Travail Dirig´e 5
M´ethodes d´eductives de v´erification
Prof. John Mullins, Ph.D.
D´epartement de G´enie Informatique
´
Ecole Polytechnique de Montr´eal
D´ecembre 2004
1. Dans l’´etude de cas de la section 5.3 des notes de cours, il est d´emontr´e
que:
S1. {1}Somme Min {∀i,j (1 ≤i≤j≤n→s≤Si,j )}
Montrez que:
S2. {1}Somme Min {∃i,j (1 ≤i≤j≤n∧s=Si,j )}
2. L’algorithme Somme Min pr´esent´e `a la section 5.3 des notes de cours cal-
cule la somme d’une section de somme minimale mais ne fournit aucune
information sur la location de cette section dans le tableau. Adaptez
l’algorithme vu en classe pour remedier `a cela (votre algorithme ne de-
vrait faire encore qu’une seule passe du tableau).
3. L’algorithme suivant calcule l’exponentielle abde deux entiers aet b. Trou-
vez l’invariant de la boucle et prouvez la correction du programme.
{1}
x:= a;y:= b;z:= 1;
while ¬(y= 0) do
if impair(y)then
z:= z∗x;y:= y−1;
else x:= x∗x;y:= ydiv2
end
od
{z=ab}
4. Le progamme suivant calcule le PGCD de deux entiers xet y. Montrez:
1
{1}
a:= x;b:= y;
z:= 0;
while ¬(a=b)do
if a > b then a:= a−b
else b:= b−a
end
od
{PGCD(x,y) = a}
Suggestion: Utilisez les relations suivantes:
(a) Si u > v alors P GCD(u, v) = P GCD(u−v, v)
(b) P GCD(u, v) = P GCD(v, u)
(c) P GCD(u, u) = u
5. Le binˆome de Newton bin(n, k) se d´efinit comme suit:
bin(n, k) = 1 si k=n
bin(n, k + 1) ∗(k+ 1) div (n−k) sinon
alors soit l’algorithme suivant:
{n≥k≥0}
x:= n;y:= 1; b:= 1;
while x6=kdo
b:= b∗xdiv y;
x:= x−1; y:= y+ 1
od
{b=bin(n,k)}
Montrer la correction de l’algorithme.
6. Montrez la correction totale de l’algorithme d’Euclide:
{y>0}
q:= 0; r:= x;
while (r≥y)do
r:= r−y;q:= q+ 1
od
{q∗y+r=x∧0≤r<y}
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!