Les Structures répétitives en algorithme
1) Introduction
Prenons d’une saisie au clavier, par exemple, on pose une question à laquelle doit répondre par « oui » ou « non ».
L’utilisateur risque de taper autre chose (une autre lettre), le programme peut soit planter par une erreur d’exécution soit dérouler normalement jusqu’au bout, mais en produisant des résultats fantaisistes.
Pour éviter ce problème, on peut mettre en place un contrôle de saisie pour vérifier que les données entrées au clavier correspondent bien à celles attendues par l’algorithme.
!!! L’algorithme ci-dessus résout le problème si on se trompe qu’une seule fois, et on fait entrer une valeur correcte à la deuxième demande. Sinon en cas de deuxième erreur, il faudrait rajouter un « SI ». Et ainsi de suite, on peut rajouter des centaines de « SI »
==> La solution à ce problème consiste à utiliser une structure répétitive.
Une structure répétitive, encore appelée boucle, est utilisée quand une instruction ou une liste d’instruction, doit être répétée plusieurs fois. La répétition est soumise à une condition
2-2) La boucle Tant Que …. Faire
La boucle Tant que permet de répéter un traitement tant que la condition est vraie.
Syntaxe :
==> La solution à ce problème consiste à utiliser une structure répétitive.
Une structure répétitive, encore appelée boucle, est utilisée quand une instruction ou une liste d’instruction, doit être répétée plusieurs fois. La répétition est soumise à une condition
2-2) La boucle Tant Que …. Faire
La boucle Tant que permet de répéter un traitement tant que la condition est vraie.
Syntaxe :
==> L’exécution de la boule dépend de la valeur de la condition. Si est vrai, l’algorithme exécute les instructions qui suivent, jusqu’à ce qu’il rencontre la ligne FinTantque .Il retourne ensuite sur la ligne du Tantque, procède au même examen, et ainsi de suite.
==> La boucle ne s’arrête que lorsque prend la valeur fausse, et dans ce cas le programme poursuit son exécution après FinTantQue.
==> La boucle ne s’arrête que lorsque prend la valeur fausse, et dans ce cas le programme poursuit son exécution après FinTantQue.
Exemple :
Remarque :
Si la structure TantQue contient la condition ne devient jamais fausse. Le programme tourne dans une boucle infinie et n’en sort plus.
Exemple :
Si la structure TantQue contient la condition ne devient jamais fausse. Le programme tourne dans une boucle infinie et n’en sort plus.
Exemple :
Dans cet exemple nous avons une boucle infinie. L’ordinateur ne s’arrêtera jamais d’afficher le message Bonsoir car la variable i qui est testée dans la condition n’est jamais incrémenter. Alors pour résoudre le problème de boucle infinie dans ce cas-là, on incrémente la variable i à chaque tour de boucle pour afficher Bonsoir 10 fois exactement.
Exercice1
Ecrire un algorithme qui calcule la somme S = 1+2+3+4+……..+ 10
Ecrire un algorithme qui calcule la somme S = 1+2+3+4+……..+ 10
Exercice2
Ecrire un algorithme qui calcule la somme S= 1+2+3+4+……..+ N, où N saisi par l’utilisateur.
Ecrire un algorithme qui calcule la somme S= 1+2+3+4+……..+ N, où N saisi par l’utilisateur.
3) La boucle Pour …. Faire
La boucle pour …. Faire permet de répéter une liste d’instructions un nombre connu de fois.
Syntaxe
La boucle pour …. Faire permet de répéter une liste d’instructions un nombre connu de fois.
Syntaxe
==> La variable compteur est de type entier. Elle est initialisée par la valeur initiale, le compteur augmente sa valeur de 1 automatiquement à chaque tour de boucle jusqu’à la valeur finale.
==> Lorsque la variable compteur vaut la valeur finale, le traitement est exécuté une seule fois puis le programme sort de la boucle.
==> Lorsque la variable compteur vaut la valeur finale, le traitement est exécuté une seule fois puis le programme sort de la boucle.
Exemple:
Ecrire un algorithme qui affiche Bonjour 10 fois.
Exercice 4
Ecrire un algorithme qui affiche la table de multiplication d’un entier saisie par l’utilisateur, Utilisant la boucle pour.
Ecrire un algorithme qui affiche la table de multiplication d’un entier saisie par l’utilisateur, Utilisant la boucle pour.
4) La boucle Répéter…jusqu’à
Cette boucle permet de répéter une instruction jusqu’à ce qu’une soit vrai.
Remarque : Cette boucle ne s’utilise en général que pour des menus, elle est dangereuse car il n’y a pas de vérification de la condition avant d’y entrer.
Cette boucle permet de répéter une instruction jusqu’à ce qu’une soit vrai.
Remarque : Cette boucle ne s’utilise en général que pour des menus, elle est dangereuse car il n’y a pas de vérification de la condition avant d’y entrer.
Syntaxe :
==> La liste d’instructions est exécutée, puis la condition est évaluée. Si elle est fausse, le corps de la boucle est exécuté à nouveau puis la condition est réévaluée et si elle est vraie, le programme sort de la boucle et exécute l’instruction qui suit Jusqu’à.
Exemple:
En utilisant la boucle Répéter…..jusqu’à, on écrit un algorithme qui affiche Bonjour 10 fois.
Exemple:
En utilisant la boucle Répéter…..jusqu’à, on écrit un algorithme qui affiche Bonjour 10 fois.
Exercice1
Ecrire un algorithme qui calcule la somme S= 1+2+3+…+ 10. Utilisant la boucle Répéter jusqu’à.
Ecrire un algorithme qui calcule la somme S= 1+2+3+…+ 10. Utilisant la boucle Répéter jusqu’à.
Exercice 2
Ecrire un algorithme qui affiche la table de multiplication de 8. Utilisant la boucle Répéter jusqu’à.
Ecrire un algorithme qui affiche la table de multiplication de 8. Utilisant la boucle Répéter jusqu’à.
Remarques :
==> Les boucles « Répéter » et « «TantQue » sont utilisées lorsqu’on ne sait pas au départ combien de fois il faudra exécuter ces boucles.
==> A la différence de la boucle « TantQue » par rapport à la boucle « Répéter » cette
dernière est exécutée au moins une seule fois.
==> La condition d’arrêt de la boucle « répéter » est la négation de la condition de poursuite de la boucle «TantQue »
==> On utilise la boucle « Pour » quand l’on connait le nombre d’itérations à l’avance.
==> Les boucles « Répéter » et « «TantQue » sont utilisées lorsqu’on ne sait pas au départ combien de fois il faudra exécuter ces boucles.
==> A la différence de la boucle « TantQue » par rapport à la boucle « Répéter » cette
dernière est exécutée au moins une seule fois.
==> La condition d’arrêt de la boucle « répéter » est la négation de la condition de poursuite de la boucle «TantQue »
==> On utilise la boucle « Pour » quand l’on connait le nombre d’itérations à l’avance.