Vous êtes sur la page 1sur 17

Les Structures itératives(suite)

Séance 5

Année universitaire 2023/2024 – Semestre 1

1
Structure TANT QUE ..FAIRE
Syntaxe TANT QUE <Condition> FAIRE
<Séquence d’instructions>
FIN TANT QUE

Principe de fonctionnement
A l’exécution de l’algorithme, la suite d’instructions est exécutée
tant que la condition (une expression logique) est satisfaite. Si
d’emblée la condition n’est pas remplie, la boucle ne sera
exécutée aucune fois.
Organigramme
faux
Condition La suite du programme

vrai
Séquence d'instructions

2
Exemple 1

Algorithme TEST
VAR
i (entier) L'algorithme continue à
Début demander à l'utilisateur
Ecrire ("donnez un entier S.V.P") de saisir des entiers tant
Lire (i)
Tant que i <> 0 FAIRE
qu'il n'a pas saisi un zéro
Ecrire ("donnez un entier S.V.P")
Lire (i)
Fin tant que
Fin

Remarque: Le nombre d'itérations n'est pas connu à l'avance

3
Exemple 2 10
20
…. 30
i 1 40
Tant que i <= 5 FAIRE 50
ECRIRE (i*10)
ii+1
Fin tant que

Remarque: Le nombre d'itérations est connu à l'avance

Exemple 3
….
i6 Rien n'est affiché
Tant que i <= 5 FAIRE
ECRIRE (i*10)
ii+1
Fin tant que
4
10
10
Exemple 4
10
… 10
i 1 10
Tant que i <= 5 FAIRE 10
ECRIRE (i*10) …
Fin tant que
L'algorithme tourne indéfiniment
car on a omis d'incrémenter le
compteur (on parle d'une boucle
infinie)
Exemple 5

i 1
Tant que i <= 5 FAIRE 10
ECRIRE (i*10) 20
i  i *2 40
Fin tant que
5
Exemple 6 calcul de factoriel

Algorithme Facto
VAR
n, f, i (Entier)
DEBUT
Lire(n)
f1
in
Tant que i >= 1 Faire
ff*i
ii-1
Fin Tant que
Ecrire(n," ! = ",f)
FIN.

6
Structure REPETER .. JUSQU'A
Syntaxe REPETER
<Séquence d’instructions>
JUSQU'A <Condition>

Principe de fonctionnement
A l’exécution de l’algorithme, toutes les instructions écrites entre
Répéter et Jusqu’à sont exécutées au moins une fois et leur
exécution sera répétée jusqu’à ce que la condition placée
derrière Jusqu’à soit satisfaite.
Organigramme

Séquence d'instructions

faux vrai
Condition La suite du programme

7
Exemple 1

i1 10
REPETER 20
ECRIRE (i*10) 30
i i+1 40
JUSQU'A (i > 5)
50

à la différence de l'instruction
Exemple 2 TANT QUE, La condition n'est
testée qu'après avoir exécuté
i6 une fois la séquence
REPETER 60 d'instructions de la boucle
ECRIRE (i*10)
i i+1
JUSQU'A (i > 5)

8
Exemple 3

i1 10
REPETER 10
ECRIRE (i*10) 10
JUSQU'A (i > 5) 10
10

Boucle Infinie
Remarque: Il faut toujours s’assurer que la condition de sortie
sera vérifiée après un certain nombre fini de parcours. Sinon
c’est une boucle infinie.

9
Exemple 5 l’algorithme de calcul du factoriel en
utilisant une boucle “ Répéter …jusqu’à "

ALGORITHME Factoriel
VAR
n, f, i (Entier)
DEBUT
Lire(n)
f1
in
Si n > 0 Alors
Répéter
ff*i
ii-1
Jusqu’à (i <= 1)
FinSi
Ecrire(n,"! = ",f)
FIN
10
Boucles imbriquées
Lorsqu'une boucle contient une autre boucle on dit que l'on est en
présence de boucles imbriquées.
Exemple:
Calcul de la moyenne des notes d'un étudiant, puis calcul des
moyennes sur une classe.

Algo Moyennes
Var
moyEtud, moyClass, note (réel)
nbrEtud, nbrNote, i,j (entier)
Début
écrire ("donnez le nombre d'étudiants")
lire(nbrEtud)
écrire ("donnez le nombre de notes par étudiant")
lire (nbrNote)
moyClass  0

11
deux boucles imbriquées ;
une 'Tant que' à l'intérieur
d'une 'Pour'.
pour i de 1 à nbrEtud faire
moyEtud  0
j1
Tant que j <= nbrNote
écrire ("donnez la note numéro ", j," de l'étudiant numéro ",i)
lire (note)
moyEtud  moyEtud + note/nbrNote
j  j+1
Fin Tant que
écrire ("la moyenne de l'étudiant numéro ",i," est ",moyEtud)
moyclass  moyclass + (moyEtud/nbrEtud)
Fin pour
écrire ("la moyenne de la classe est ", moyClass)
fin

12
D'une manière générale, étant données deux boucles, deux
situations seulement peuvent exister : soit elles sont
disjointes, soit elles sont imbriquées.

Boucles Boucles Schéma


imbriquées disjointes interdit

13
 ATTENTION, lorsque la boucle extérieure est une boucle Pour, la
boucle intérieure ne doit pas modifier l'indice de la boucle extérieure,
ainsi, s'il s'agit de deux boucles Pour imbriquées, les indices ne doivent
pas porter le même nom.
 L'utilisation de deux boucles imbriquées se rencontre dès que l'on
travaille sur un ensemble d'objets dont le traitement de chacun
nécessite une boucle.

14
Synthèse
Passage d’une structure itérative à une autre
Pour cpt de vi à vf Faire
Traitement
Fin Pour

Cpt  vi Cpt  vi
Répéter Tant Que (cpt <= vf) Faire
Traitement Traitement
Cpt  suivant(cpt) Cpt  suivant(cpt)
Jusqu’à (cpt > vf) Fin Tant que

Remarque: Le passage d’une boucle « répéter » à une boucle


« pour » n’est pas toujours possible (cas où le nombre d'itérations
n'est pas connu d'avance)

15
Synthèse
Choix de la structure itérative

Nbre d’itérations connu non Le traitement s’exécute non Boucle


à l’avance au moins une fois "Tant que"

oui oui
Boucle Boucle
"Pour" "Répéter"

16
17

Vous aimerez peut-être aussi