• Aucun résultat trouvé

Boucles conditionnelles

N/A
N/A
Protected

Academic year: 2022

Partager "Boucles conditionnelles"

Copied!
1
0
0

Texte intégral

(1)

Boucles conditionnelles

Skander Zannad et Judicaël Courant 2013-09-21

1 Limites des boucles inconditionnelles

– On peut certes s’arrêter avant la fin (break).

– Mais il faut avoir une idée du nombre maximal d’itérations.

2 Calcul du pgcd

Algorithme d’Euclide pour calculer le plus grand diviseur de deux entiers relatifsaet b:

1. Remplaceraetbpar leurs valeurs absolues.

2. Sib= 0, c’est terminé, le pgcd vauta.

3. Sinon, noterrle résultat de la division deaparb.

4. Remplaceraparbetbparret recommencer à la deuxième étape.

Problème : on n’a pas d’idée du nombre d’itérations nécessaires.

3 Boucle indéfinie/conditionnelle

def pgcd(a,b) :

# pr é c o n d i t i o n : (a , b ) != (0 , 0) u = abs(a)

v = abs(b) while v != 0:

# i n v a r i a n t : PGCD(a , b ) == PGCD(u , v ) r = u % v

(u, v) = (v, r) return u

1

4 Correction

4.1 Correction partielle

On justifie la correction (partielle) de la boucle par un invariant en début de boucle.

Il convient de vérifier :

– Que l’invariant est vrai à l’entrée dans la boucle.

– Que s’il est vrai à la fin d’une itération, il est vrai au début de la suivante.

4.2 Terminaison

Pourquoipartielle? Parce qu’il se peut que la boucle ne s’arrête jamais.

Reste à justifier laterminaisonde la boucle.

On le fait avec unvariant: une quantité entière positive ou nulle qui décroît à chaque tour de boucle.

while v != 0:

# i n v a r i a n t : PGCD(a , b ) == PGCD(u , v )

# v a r i a n t : v r = u % v (u, v) = (v, r)

2

Références

Documents relatifs

On teste comme dans l’algorithme précédent pour savoir si un entier en divise un autre.?.

Le nombre de divisions à faire pour trou- ver le plus grand commun diviseur de deux nombres entiers A et B ne peut excéder trois fois le nombre des chiffres du plus petit B des

Dans la recherche du plus grand com- mun diviseur de deux nombres, cinq fois le nombre des chiffres du petit nombre est une limite supéneure du nombre d'opérations à faire avant

Toutes les fois qu'en cherchant le plus grand commun diviseur de deux nombres , on trouve un reste plus grand que la moitié du diviseur correspondant, on dit habi- tuellement que

1° Pour avoir une limite 1' du nombre de divisions à faire dans la recherche du plus grand commun diviseur de deux nombres entiers A et B, on écrit les termes de la série (2) jus-

Algorithme d’Euclide pour calculer le plus grand diviseur de deux entiers relatifs a et b

Par conséquent, en supprimant la première ligne de li py l'élément a m , qui figurait en tète de la dernière colonne, se trouve sup- primé, et la dernière colonne du

En effet, si 9 est de degré p , il résulte du lemme III que le système S^ admet pour les [3 et les a une solution unique (abstraction faite d'un facteur constant arbi- traire),