Informatique Industrielle : Exercices Types de boucles
Télécharger PDFLes différents types de boucles en algorithmique
Les structures répétitives permettent d'exécuter plusieurs fois un même traitement. Voici les principales boucles utilisées en algorithmique :
Boucle DO WHILE
Dans cette structure, le traitement est exécuté une première fois, puis répété tant que la condition reste vraie.
Organigramme :
RÉPÉTER
traitement 1
JUSQU'À condition VRAIE
Exemple en langage algorithmique :
RÉPÉTER
traitement
JUSQU'À condition
Boucle WHILE
Cette structure commence par tester la condition. Si celle-ci est vraie, le traitement est exécuté ; sinon, le programme passe à l'instruction suivante.
Organigramme :
TANT QUE condition vraie
FAIRE
traitement 1
FIN TANT QUE
Exemple en langage algorithmique :
TANT QUE condition vraie
FAIRE
traitement
FIN TANT QUE
Boucle FOR
Cette structure répétitive contrôlée permet d'exécuter un traitement un nombre précis de fois. Elle utilise une variable de boucle (indice I) définie par :
- sa valeur initiale (Vi),
- sa valeur finale (Vf),
- son pas de variation (P).
Organigramme :
POUR I = Vi À Vf (par pas P)
FAIRE
traitement 1
FIN POUR
Exemple en langage algorithmique :
POUR I = 1 À 10 (par pas 1)
FAIRE
traitement
FIN POUR
Exercices pratiques
Exercice 1 : Compteur modulo 10 avec boucle FOR
On souhaite réaliser un compteur modulo 10 (de 0 à 9) en utilisant le schéma suivant :
1) Initialiser PORTB à 0
2) Incrémenter PORTB de 1
3) Tester si PORTB = 10
4) Si non, retourner à l'étape 2
5) Si oui, réinitialiser PORTB à 0
Demande :
1. Écrire un programme en assembleur
2. Écrire un programme en mikroC
Exercice 2 : Compteur conditionnel avec boucle WHILE
Soit un montage où l'on teste la valeur de RA0 pour déclencher ou non un comptage sur PORTB et allumer/éteindre une LED.
Algorithme :
1) Tester si RA0 = 1
2) Si non, aller à l'étape 7
3) Si oui : initialiser PORTB à 0 et éteindre la LED
4) Incrémenter PORTB de 1
5) Tester si PORTB = 10
6) Si non, retourner à l'étape 1
7) Aucun comptage, LED allumée
8) Retourner à l'étape 1
Demande :
1. Écrire un programme en assembleur
2. Écrire un programme en mikroC
Exercice 3 : Compteur avec boucle DO WHILE
On reprend le montage de l'exercice 2 avec une boucle DO WHILE.
Algorithme :
1) Initialiser PORTB à 0 et éteindre la LED
2) Incrémenter PORTB de 1
3) Tester si PORTB = 10
4) Si non, retourner à l'étape 1
5) Tester si RA0 = 0
6) Si non, retourner à l'étape 1
7) Si oui : aucun comptage, LED allumée
8) Retourner à l'étape 5
Demande :
1. Écrire un programme en assembleur
2. Écrire un programme en mikroC
Section FAQ
Quelle est la différence entre une boucle WHILE et une boucle DO WHILE ?
La boucle WHILE teste la condition avant d'exécuter le traitement, tandis que la boucle DO WHILE exécute le traitement au moins une fois avant de tester la condition.
Comment choisir entre une boucle FOR et une boucle WHILE ?
On utilise une boucle FOR lorsque le nombre d'itérations est connu à l'avance, avec une variable d'indice définie par une valeur initiale, finale et un pas. La boucle WHILE est préférable lorsque la condition de sortie dépend d'une variable non contrôlée.
Quelle est la syntaxe de base d'une boucle FOR en assembleur ?
En assembleur, une boucle FOR se traduit généralement par une initialisation de l'indice, une condition de test et une incrémentation à chaque itération. Par exemple :
MOV I, Vi ; Initialisation
Boucle :
FAIRE ; Exécution du traitement
INC I ; Incrémentation
CMP I, Vf ; Comparaison avec la valeur finale
JL Boucle ; Si I < Vf, retourner à la boucle