Sie sind auf Seite 1von 4

Chapitre 5

Les instructions de répétitions


Lorsqu'on a plusieurs instructions qui se répètent, on écrit celles-ci dans une même instruction
composée et l’on réitère plusieurs fois l’exécution. Le nombre d'itérations peut être connu a priori ou
pas. Dans ce dernier cas c’est l’exécution de l’instruction itérative qui déterminera son arrêt.
Exemples:
• Réalisation d'un bulletin
soit B le bloc à répéter, si le nombre d'élèves d'une classe et de 25, donc on doit répéter
l'exécution de ce bloc 25 fois.
• Employé d'une banque
un employé d'une banque ne connait pas à l'avance le nombre de clients qui vont se
présenter devant la caisse. Soit C le bloc d'instructions qui permet de traiter une opération.
L'employé doit répéter C chaque fois qu'un client se présente devant la caisse.

I. Répétition sans compteur


Une répétition sans compteur est toute répétition dont le nombre d'itérations reste indéterminé avant
la réalisation de cette répétition
1. L'instruction tant que

Syntaxe Organigramme

Tant que condition faire


instruction1
Condition faux
instruction2
…………...
…………... vrai
fintantque
Instruction(s)

Tant que la condition est vérifiée on exécutera le corps de la boucle, on s'arrêtera dès que la
condition n’est plus vérifiée.
Exercice 1: corrigé
Ecrire un algorithme permettant de lire une suite finie de nombres réels non nuls. L'algorithme doit
afficher la somme des éléments lus.
Exercice 2 : à faire
Considérons la série S = 1 + 1/2 + 1/3 + 1/4 + …. 1/n. Ecrire un algorithme permettant d'identifier
le premier rang n pour lequel S > 100

1/4 Prof : OUHNINI Abdelaziz


Exercice 1: solution1

Algorithme somme_nombres;
Var
n , som : réels
début
ecrire ("donner un réel: ")
lire ( n )
som ← 0
tant que n < > 0 faire
som ← som + n
ecrire ("donner un autre réel: ")
lire ( n )
fintq
ecrire ("la somme des éléments lus est: ", som)
fin.

2. L'instruction répéter
Syntaxe Organigramme

Répéter
instruction1
instruction2 Instruction(s)
…………...
…………...
jusqu'à condition faux Condition vrai

La boucle Répéter permet de rentrer dans la boucle quelque soit la condition et réitère l’exécution
jusqu'à ce que la condition soit vérifiée.
Exercice 1: solution2

Algorithme somme_nombres;
Var
n , som : réels
début
som ← 0
répéter
ecrire ("donner un réel: ")
lire ( n )
som ← som + n
jusqu'à n = 0
ecrire ("la somme des éléments lus est: ", som)
fin.

2/4 Prof : OUHNINI Abdelaziz


Remarques :
• Quelque soit l'état de la condition, dans la deuxième forme (répéter), on exécutera au moins une
fois le corps de la boucle. Tandis que dans la première forme (tant que), si la condition n'étant
pas vérifiée au départ on n'exécutera pas la boucle.
• Dans ces deux formes, le nombre d'itérations n’est pas connu à priori. Il dépend de la condition.
• Dans le corps de la boucle, il doit exister une variable - dite de contrôle - qui sera modifiée pour
faire évoluer l'état de la condition. En général, cette variable de contrôle doit être initialisée avant
l'entrée dans la boucle.
• Le choix de la forme de la boucle doit répondre au problème à résoudre.

II. Répétition avec compteur


Une répétition avec compteur est toute répétition ou le nombre d'itérations est connu même avant sa
réalisation
• L'instruction pour
Syntaxe

Pour i ← val_initiale à val_finale , val_pas faire


instruction 1
instruction 2
instruction 3
…………..………..….
…..………………..….
finpour

Du fait que le nombre d'itérations est connu, on se sert d'un compteur ( ici i ) qui sera initialisé
automatiquement à la valeur initiale et sera incrémenté ( ou décrémenté ) de la valeur du pas (par défaut
pas = 1), jusqu'à la valeur finale.
Si la val_initiale est inférieur à val_finale on dit qu'elle s'agit d'une boucle progressive, sinon on
dit qu'elle s'agit d'une boucle régressive.
Dans le corps de la boucle il est interdit de modifier la valeur du compteur i, même si on peut s'en
servir.
Exemple

Algorithme affiche_message; Algorithme affiche_message;


début début
ecrire (" bonjour ") Pour i ← 1 à 7 faire
ecrire (" bonjour ") ecrire (" bonjour ")
ecrire (" bonjour ") finpour
équivalent
ecrire (" bonjour ") Fin.
ecrire (" bonjour ")
ecrire (" bonjour ")
ecrire (" bonjour ")
fin.

3/4 Prof : OUHNINI Abdelaziz


Exercice 3 : corrigé
Ecrire un algorithme qui permet de calculer la somme de n premiers nombres entiers
S = 1 + 2 + 3 + ……… + n.
Analyse
Puisque n est variable, donc on ne peut pas calculer l'expression directement. Le principe est de faire
une succession des aditions:

S = 0 i = 1
S = 1 S = S + 1 S = 0
S = S + 2 S = S + 2 S = S + i
S = S + 3 S = S + 3 S = S + i
S = S + 4 S = S + 4 S = S + i i=i+1
…………… …………… +1 S = S + i
n fois
…………… …………… ……………
S = S + (n–1) S = S + (n–1) ……………
S = S + n S = S + n S = S + i
S = S + i

Algorithme somme_n_nombres;
Var
n , s , i : entiers
début
ecrire ("donner un entier: ")
lire ( n )
s ← 0
pour i ← 1 à n faire
s ← s + i
finpour
ecrire ("la somme égale: ", s)
fin.

Remarque: imbrication boucles – tests


Dans le corps d’une boucle ( ou d'un test ), on peut avoir une ou plusieurs autres boucles ( et / ou
tests ).
Exemple : écrire un algorithme qui permet d'afficher les diviseurs d'un entier n.

Algorithme diviseurs_nombre;
Var
n , i : entiers
début
ecrire ("donner un entier: ")
lire ( n )
pour i ← 1 à n faire
si n mod i = 0 alors
ecrire ( i )
finsi
finpour
fin.

4/4 Prof : OUHNINI Abdelaziz