Académique Documents
Professionnel Documents
Culture Documents
Séance 5
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
3
Exemple 2 10
20
…. 30
i 1 40
Tant que i <= 5 FAIRE 50
ECRIRE (i*10)
ii+1
Fin tant que
Exemple 3
….
i6 Rien n'est affiché
Tant que i <= 5 FAIRE
ECRIRE (i*10)
ii+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)
f1
in
Tant que i >= 1 Faire
ff*i
ii-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
i1 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é
i6 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
i1 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)
f1
in
Si n > 0 Alors
Répéter
ff*i
ii-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
j1
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.
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
15
Synthèse
Choix de la structure itérative
oui oui
Boucle Boucle
"Pour" "Répéter"
16
17