Académique Documents
Professionnel Documents
Culture Documents
1. Lire dans le manuel les pages 121 à 123 puis 135 à 137
Travail personnel
2. Chercher les exercices 132-133-134 p 138 (correction en fin de manuel)
Est-ce suffisant pour prouver que q et r sont bien le quotient et le reste tels qu’ils sont définis dans la
division euclidienne ? ……………………………………………………………………………………………………………….
CONSERVATION : supposons que ( P2 ) est vraie au début d’un tour de boucle : est-elle encore vraie à la
fin de ce tour de boucle ?........................................................................................................................
……………………………………………………….……………………………………………………………………………………………………
TERMINAISON : Quand la boucle s’achève, que peut-on déduire de notre invariant de boucle ? Est-ce
utile ?
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………………….
Conclusion :
Avec ces deux invariants de boucle, RAPPEL SUR LES VARIANTS DE BOUCLE :
on prouve que l’algorithme proposé est Ils permettent de montrer que l’algorithme se
correct, c’est-à-dire qu’il renvoie bien le TERMINE même si on a une boucle non bornée.
quotient et le reste tels que définis dans la Un variant de boucle est un nombre entier,
division euclidienne. positif, qui décroît à chaque tour de boucle.
VARIABLES
t : tableau d'entiers Rappel : en langage naturel, les indices vont de 1 à longueur(t)
i, j : nombres entiers Représentent des indices du tableau
x : nombre entier Représente une valeur du tableau (la « carte » à placer)
DEBUT
j←2 Au début : la partie gauche contient déjà 1 carte : on commence à la 2ème
tant que j <= longueur(t): Boucle 1 : on prend chaque « carte » encore non-triée successivement
i ← j-1 La carte juste avant est la + à droite de la partie déjà triée => la + grande
x ← t[j] Carte à placer
tant que i>0 et que t[i] > x: Boucle 2 Le regard balaye de droite à gauche en cherchant la bonne
t[i+1] ← t[i] place
i ← i-1 Décalage de chaque case vers la droite
fin tant que
t[i+1] ← x Fin de la boucle 2 : on a trouvé la bonne place pour la carte x
j ← j+1 On insère la carte à la bonne place
fin tant que On passe à la carte suivante dans la partie non-triée
FIN Fin boucle 1
On peut se représenter mentalement le tableau t en 2 parties :
Une partie qui contient les éléments d'index 1 à j-1 (le j correspond à la variable j dans l'algorithme ci-
dessus). Nous noterons cette partie du tableau t [1 … j−1]
Une seconde partie qui contient le reste du tableau t (index j à n si le tableau t comporte n élément)
Nous allons chercher un invariant sur un exemple : t = [27, 10, 12, 8, 11]
Que peut-on dire du tableau t [ 1 … j−1 ] à chaque tour de la boucle 1 ? ………………………………………….
CONSERVATION : supposons que ( P ) est vrai au début d’un tour de boucle : est-il encore vraie à la fin
de ce tour de boucle ?........................................................................................................................
……………………………………………………….……………………………………………………………………………………………………
……………………………………………………….……………………………………………………………………………………………………
……………………………………………………….
…………………………………………………………………………………………………………………………………………………………….
……………………………………………………………………………………………………
……………………………………………………….……………………………………………………………………………………………………
……………………………………………………….
…………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………….
……………………………………………………………………………………………………
……………………………………………………….……………………………………………………………………………………………………
……………………………………………………….……………………………………………………………………………………………………
TERMINAISON : Quand la boucle s’achève, que peut-on déduire de notre invariant de boucle ? Est-ce
utile ?
…………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………………….
4. A vous
Chercher de même un invariant pour le tri par sélection, puis faire la démonstration en 3 étapes afin
de prouver la correction de ce tri.