Université de Mostaganem Abdelhamid Ben Badis La faculté des sciences et de la
Université de Mostaganem Abdelhamid Ben Badis La faculté des sciences et de la technologie Cellule LMD ST 1ère année. Module: Informatique 1 1 LES STRUCTURES REPETITIVES 1. Introduction Dans les problèmes quotidiens, on ne traite pas uniquement des séquences d'actions, sous ou sans conditions, mais il peut être fréquent d'être obligé d'exécuter un traitement (séquence d'actions) plusieurs fois. En effet, pour saisir les N notes d'un étudiant et calculer sa moyenne, on est amené à saisir N variables, puis faire la somme et ensuite diviser la somme par N. Cette solution nécessite la réservation de l'espace par la déclaration des variables, et une série de séquences d'écriture/lecture. Ce problème est résolu à l'aide des structures répétitives. Celles ci permettent de donner un ordre de répétition d'une action ou d'une séquence d'actions une ou plusieurs fois. 2. Les structures répétitives 2.1. La boucle POUR Cette structure exprime la répétition d'un traitement un nombre de fois. Syntaxe POUR compteur DE Valeur_initial A Valeur_finale [PAS Valeur_pas] FAIRE {Traitement} FINFAIRE Où compteur est une variable entière, qui compte le nombre de répétition du <Traitement>, Valeur_initiale : la valeur initiale à laquelle le compteur est initialisé, Valeur_finale : la valeur finale à laquelle se termine le compteur, Valeur_pas : la valeur du pas, c'est la valeur qu'on rajoute au compteur à chaque fin de traitement. Remarques 1. La boucle POUR est utilisée lorsqu'on connaît le nombre de répétition du <Traitement> d'avance. 2. La valeur du pas peut être positive ou négative et par conséquent, il faut, au départ de la boucle, que la Valeur_initiale <= la Valeur_finale ou la Valeur_initial e>= la Valeur_finale selon la positivité ou la négativité de cette valeur. 3. La valeur du pas est égale à 1 par défaut. 2.1.1. Les étapes d'exécution de la boucle POUR 1. Initialisation de Compteur par la valeur de Valeur_initiale (comme si on avait Compteur=Valeur_initiale) 2. Tester si la Valeur_initiale dépasse la Valeur_finale (du côté supérieur ou inférieur, selon la positivité ou la négativité du pas). Si oui, alors la boucle s'arrête et l'exécution se poursuit après le FINFAIRE Sinon, • Exécution du <Traitement>, • Incrémentation ou décrémentation de compteur par la valeur du pas (selon la positivité ou la négativité du pas), • Retour à l'étape 2. En langage Pascal, la syntaxe de la boucle pour est donnée par : For compteur :=valeur_initiale to valeur_finale do Begin <traitement> End ; Université de Mostaganem Abdelhamid Ben Badis La faculté des sciences et de la technologie Cellule LMD ST 1ère année. Module: Informatique 1 2 Remarques : 1- Le traitement n’est mis entre « Begin » et « End » que s’il contient plus d’une instruction. 2- En Pascal, Si la valeur_finale > la valeur_initiale la syntaxe de la boucle « For » se présente comme suit : For compteur :=valeur_finale downto valeur_initiale do Begin <traitement> End ; 3- En langage Pascal, il n’est pas possible d’écrire une boucle « For » avec un pas différent de 1. Exemple 1 : Ecrire un algorithme qui affiche dans l’ordre les valeurs de 1 à n (où n est un nombre entier positif). Dans cet algorithme, il s’agit d’écrire les instructions permettant d’afficher les nombre de 1 à n. l’instruction d’affichage doit être répétée n fois. Nous utilisons dans cet algorithme, la variable entière i pour compter le nombre de répétition. Cette variable est initialisée par la valeur 1 et incrémentée par 1 à chaque itération de la boucle. Donc, le pas de la boucle dans cet algorithme est égal à 1. Algorithme exemple1 ; Variable n, i : entier ; Début Ecrire (‘Donner un nombre entier positif’) ; Lire(n) ; Pour i de 1 à n pas 1 faire Ecrire (i) ; Finfaire Fin. Exemple 2 : Ecrire un algorithme qui calcule et affiche la moyenne de n nombres. Dans cet algorithme, on doit lire n nombres, calculer leur somme et leur moyenne. L’opération de lecture doit se répétée n fois. Après chaque lecture, l’algorithme doit ajouter la valeur du nombre lu à la somme des nombres lus précédemment. Donc le traitement qui consiste à lire le nombre et à l’ajouter à la somme doit se répéter n fois. Algorithme moyenne ; Variable i, n :entier ; s, m, x : réel ; Début Ecrire (‘Donner le nombre de nombres’) ; Lire (n) ; s0 ; Pour i de 1 à n pas 1 faire Ecrire (‘Donner un nombre’) ; Lire(x) ; ss+x ; finfaire Université de Mostaganem Abdelhamid Ben Badis La faculté des sciences et de la technologie Cellule LMD ST 1ère année. Module: Informatique 1 3 ms/n ; Ecrire (‘La moyenne =’,m) ; fin. 2.2. La boucle Répéter Cette structure permet de répéter le <Traitement> une ou plusieurs fois et de s'arrêter sur une condition. En effet, lorsque la condition est vérifiée, la boucle s'arrête, sinon elle réexécute le <Traitement>. Syntaxe Répéter <Traitement> Jusqu'à (condition d'arrêt) Remarques 1. Dans cette boucle, le traitement est exécuté au moins une fois avant l'évaluation de la condition d'arrêt. 2. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition. 2.2.1. Les étapes d'exécution de la boucle Répéter 1. Exécution du <Traitement> 2. Tester la valeur de la <condition d'arrêt> 3. Si elle est vérifiée Alors la boucle s'arrête, Sinon Retour à l'étape 1 En langage Pascal, la syntaxe de la boucle Répéter est donnée par : Repeat <traitement> Until (condition d’arrêt ) ; Exemples Reprendre les même exemples précédents avec la boucle Répéter. A la différence de la boucle POUR, dans la boucle REPETER, il faut commencer par l’initialisation du compteur avant la boucle. De plus, à la fin du traitement, ce compteur doit être modifié (incrémenté ou décrémenté) afin d’atteindre la valeur finale. Exemple 1 : Algorithme exemple1 ; Variable n, i : entier ; Début Ecrire (‘Donner un nombre entier positif non nul’) ; Lire(n) ; i 1 ; Répéter Ecrire (i) ; i i+1 ; jusqu’à (i>n) ; Fin. Université de Mostaganem Abdelhamid Ben Badis La faculté des sciences et de la technologie Cellule LMD ST 1ère année. Module: Informatique 1 4 Exemple 2 : Algorithme moyenne ; Variable i, n :entier ; s, m, x : réel ; Début Ecrire (‘Donner le nombre de nombres’) ; Lire (n) ; s0 ; i1 ; Répéter Ecrire (‘Donner un nombre’) ; Lire(x) ; ss+x ; ii+1; jusqu’à (i>n); ms/n ; Ecrire (‘La moyenne =’,m) ; fin. 2.3. La boucle TANT QUE Cette structure permet de répéter le <Traitement> zéro ou plusieurs fois et de s'arrêter lorsque la condition d'exécution n'est plus vérifiée. En effet, lorsque la condition d'exécution est vérifiée, le <Traitement> est exécuté, sinon la boucle s'arrête. Syntaxe TANT QUE (condition d'exécution) FAIRE <Traitement> FIN FAIRE 2.3.1. Les étapes d'exécution de la boucle Répéter 1. Tester de la valeur de la <condition d'exécution> 2. Si elle est vérifiée Alors Exécution du <Traitement> Retour à l'étape 1. Sinon Arrêt de la boucle. Remarques 1. Dans cette boucle, le traitement peut ne jamais être exécuté, c'est lorsque la condition d'exécution est à fausse dés le départ. 2. Les paramètres de la condition doivent être initialisés par lecture ou par affectation avant la boucle. 3. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition. En langage Pascal, la syntaxe de la boucle TANT QUE est donnée par : While (condition d'exécution) do begin <Traitement> End ; Université de Mostaganem Abdelhamid Ben Badis La faculté des sciences et de la technologie Cellule LMD ST 1ère année. Module: Informatique 1 5 Remarque : Le traitement n’est mis entre « Begin » et « End » que s’il contient plus d’une instruction. Exemples Reprendre les même exemples précédents avec la boucle Tant que. A la différence de la boucle REPETER, dans la boucle TANT QUE, la condition est évaluée au début. A la différence de la boucle POUR, dans la boucle TANT QUE, il faut commencer par l’initialisation du compteur avant la boucle. De plus, à la fin du traitement, ce compteur doit être modifié afin d’atteindre la valeur finale. Exemple 1 : Algorithme exemple1 ; Variable n, i : entier ; Début Ecrire (‘Donner un nombre entier positif’) ; Lire(n) ; i 1 ; Tant que (i<=n) faire Ecrire (i) ; i i+1 ; finfaire Fin. Exemple 2 : Algorithme moyenne ; Variable i, n :entier ; s, m, x : réel ; Début Ecrire (‘Donner le nombre de nombres’) ; Lire (n) ; s0 ; i1 ; Tant que (i<=n) faire Ecrire (‘Donner un nombre’) ; Lire(x) ; ss+x ; ii+1; finfaire ms/n ; Ecrire (‘La moyenne =’,m) ; fin. Remarques : 1. Tout problème qui peut être résolu avec la boucle POUR, peut aussi être résolu avec les boucles REPETER et TANT QUE mais le contraire n’est pas vrai. 2. Si le nombre d’itération est connu à l’avance, il est préférable d’utiliser la boucle POUR. Université de Mostaganem Abdelhamid Ben Badis La faculté des sciences et de uploads/Sante/ chapitre-5-les-boucles.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/dcWobR2U0OydFVg7VzY78jEegdda6z7eupYwDjJH7XW5i5D22xCMZnI4zTleK6HkpKq44rXg1Sj3w3jG2TQNyfuz.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/ifvUuno9wTdUrlMg3jcXoeeOTzrntZ0mdFMTmtBkVw9nbWkg8C9qQ45A2SY2YRlqKE2uhQCqBCqgxRv6weerFJhj.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/onSuLXqhAhfsLhWZuJNWYCrjKakw8DeGnckPZW7DbguqqS0eiEOePaqLMTH8GDH5ZXWsHfKsAYDlYVUkTiv8KSy7.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/ocye5JheophE02sTMAZ9NnhBXbpgJwF3AX4YC3IMeq6Ihp4rLzD6Knq0Sla6UypLieEOW1FTwUZfF8M8lKOUm7u0.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/Au5lzl6sYSspJxqhPww9mYcy9KKYRK2gOybDGRJk99b73C25UbT7gr3a3mhLxM5S8UG8NmvfIy64rCJCe8uUuxpw.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/2Zc5h2df51eGgRNN310YfQq6n3YbDjHrUq7xmM5eunKr7tw6mFwGhl0ONM44Bc8V0tl8btRvGNuOlRPNEpMU1XAV.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/3oZDibft1L7bsswQg2CaA591sBLN0GWQ4mNoJXJsS60nNR82g9SI69OzeUEvtMUW1Ljkj5ZRm6nCT7ACl3B7N7QZ.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/2FnCEyDyCIYKankuL9ZZLpRXG3UNUOQzqaZrmLL43zljM1KNXlKOO56gI7kWzZZwenbOh1p8eG6CgF8TAmCGPmiY.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/yATrgngTojyJynkKFxrJT1vCapYqU3SXN7DN9Ece2CgymHk4OA6J8gMUxoKazG5o2dhdb34IaaEB3T91wjwD4xvT.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/rMwyKqEN0KvlYSQB3zpTIZv2aBGGLMLaBrM8J7vGrkOLfAnzuYFs9omibZQGgTuyVE1hzXkBK9iyPXFcRjC0W0f8.png)
-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 13, 2022
- Catégorie Health / Santé
- Langue French
- Taille du fichier 0.1144MB