Utilisation d'une boucle dans un algorithme publié le 14/09/2012

Pages : 123

2) La boucle « TANT QUE....FAIRE »

Dans les exemples suivants, on ne sait pas à l’avance le nombre de fois que la boucle va être lue. La boucle étudiée au §1 n’est donc pas adaptée.
Exemple 1 : Deviner un nombre
Un nombre A est choisi aléatoirement entre 1 et 10 par l’algorithme. L’utilisateur essaye de deviner le nombre. Le processus est arrêté lorsque le nombre est trouvé. Un compteur n comptabilise le nombre d’essais nécessaires.

fig19
fig20


Remarques : Noter l’initialisation de E à la valeur -1, pour être sûr de pouvoir entrer dans la boucle une première fois.
la syntaxe "E !=A" signifie E différent de A dans Algobox.

Exemple 2 : Faire travailler son petit frère
Pour réviser les tables de multiplication, l’algorithme suivant choisit au hasard 2 entiers A et B compris entre 1 et 9, et il demande qu’on lui donne le produit R=AxB.
Tant que la réponse est fausse la question est posée à nouveau.

table_multiplication
table_multiplication2

Exemple 3 Recherche d’une racine par dichotomie
L’algorithme suivant détermine un encadrement de largeur e de la racine cubique de 2. On sait que ce nombre est compris entre 1 et 2. La précision e est déterminée par l’utilisateur (0,1 ou 0,01...). La fonction F1 est la fonction définie par $F1(x)=x^3-2$
Cet algorithme est plus difficile à construire que les autres mais il doit être étudié au lycée.
Voilà cet algorithme, et le résultat obtenu si on choisit e=0,0001.

dichotomie
dichotomie2


Remarque : Trouver un intervalle de largeur $10^{-n}$ qui contient un nombre p ne signifie pas que l’on connaisse n décimales de p.

Exemple 4 Recherche de seuil pour une suite.
On va considérer la suite U suivante, définie par récurrence :
$U_0=0.5$ et pour tout entier n, $U_{n+1}=3U_n(1-U_n)$
Supposons démontré que cette suite a pour limite $2/3$, et que les termes de cette suite se rapprochent de la limite au fur et à mesure que le rang augmente.
Ecrivons un algorithme qui permet de savoir pour quelles valeurs de n , $|U_n-\frac{2}{3}|<0,01$

suitesrecurrentes1
suitesrecurrentes2


On voit donc qu’il faut attendre le 530 ème terme de la suite pour s’approcher de la limite à moins de 1 centième. Il est vrai que la suite a été choisie pour sa convergence lente.
On peut donc écrire : Pour tout entier $n>=529$, $|U_n-\frac{2}{3}|<0,01$