4.
Les structures
itératives
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021
Les structures itératives
Les structures itératives (les boucles) permettent de répéter un
bloc d’instructions plusieurs fois.
On distingue trois types de boucles :
Les boucles ;
Les boucles ;
Les boucles .
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 73
Les structures itératives
• On connait d’avance le nombre de répétions: On
Pour répète les instructions en faisant évoluer un compteur
entre une valeur initiale et une valeur finale
• On ne connait pas d’avance le nombre de répétions:
Tant Que • On répète des instructions tant qu'une certaine condition
est réalisée
Répéter • On ne connait pas d’avance le nombre de répétions:
• On répète des instructions jusqu'à ce qu'une certaine
Jusqu’à condition soit réalisée
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 74
Les structures itératives
La boucle Pour
Utilisée lorsqu’on connait d’avance le nombre de répétitions
Syntaxe :
Pour compteur=val_initial à val_final Pas de pas
FinPour
Compteur : variable permettant de compter le nombre d’itérations.
val_initial et val_final : sont respectivement la valeur initiale et finale
prises par le compteur. Elles peuvent être des valeurs, des variables, ou des
expressions de même type que le compteur.
Pas : est la valeur d’augmentation progressive du compteur. Le pas est un
entier qui peut être positif ou négatif. La valeur par défaut du pas est de 1.
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 75
Les structures itératives
La boucle Pour Début de la
Boucle Pour
Cpt← Val_initial
Pour Cpt=val_initial à val_final Pas de pas
Bloc d’instructions
FinPour Cpt <= Val_final
instructions
Cpt← Cpt+Pas
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 76
Les structures itératives
La boucle Pour
Exemple 1 : Ecrire un algorithme qui calcule et affiche l’indice de
masse corporelle (IMC) de 150 personne.
Indication : l’IMC se calcule en divisant le poids (en kg) par le carré de la taille
(m)
Algorithme IMC
Variables taille, poids, imc : Réel
i : Entier
Début
Pour i=1 à 150 Pas de 1
Ecrire("Entrez le poids de la personne:",i,"en KG")
Lire(poids)
Ecrire("Entrez la taille de la personne:",i,"en mètre")
Lire(taille)
imc ← poids/(taille*taille)
Ecrire("L’IMC de la personne",i,"est:",imc)
FinPour
Fin
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 7
Les structures itératives
La boucle Pour
Exemple 2 : Ecrire un algorithme qui calcule la factorielle d’un
nombre saisi par l’utilisateur
Algorithme Factorielle
Variables N, i, Fact: Entier
Début
Ecrire (" Saisir un nombre: ")
Lire (N)
Fact ← 1
Pour i=1 à N
Fact ← Fact*i
FinPour
Ecrire ("La factorielle de ", N, " est : ", Fact)
Fin
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 78
Les structures itératives
La boucle Pour
Remarque :
Modifier la valeur du compteur à l'intérieur de la boucle peut :
Générer une boucle infinie;
Modifier le nombre d'itérations prévu par la boucle;
Exemple :
Pour i=1 à 5
i ← i–1
Ecrire ("i=",i)
FinPour Boucle infinie
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 79
Les structures itératives
La boucle Pour
Une boucle peut contenir parmi ses instructions une autre
structure itérative. Dans ce cas, on aboutit à des boucles
imbriquées
Exemple :
Sortie :
Pour i=1 à 5
Pour j=1 à i 1
Ecrire (j, " ") 1 2
FinPour 1 2 3
Ecrire ("\n") 1 2 3 4
FinPour 1 2 3 4 5
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 80
Les structures itératives
La boucle Tant que
Utilisée lorsqu’on ne connait d’avance le nombre de répétitions
Syntaxe :
Tant que (Condition)
FinTantque
La condition est évaluée avant chaque itération;
Si la condition est vraie, on exécute le bloc d’instructions puis, on retourne pour
re-tester la condition. Si elle est vraie, on ré-exécute le bloc d’instructions et
ainsi de suite;
Si la condition est fausse, on sort de la boucle sans exécuter le bloc
d’instructions.
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 81
Les structures itératives
La boucle Tant que Début de la
Boucle Tant que
Tant que (Condition) Condition
FinTantque
instructions
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 82
Les structures itératives
La boucle Tant que
Remarque :
Le bloc d’instructions ne sera jamais exécuté si la condition
est fausse au départ;
Après un certain nombre d'itérations, le bloc d’instructions doit
changer la valeur de condition de vrai à faux, sinon on obtient
une boucle infinie.
Exemple :
i ← 0
Tant que (i=0)
Ecrire ("Bonjour")
FinTantque Boucle infinie
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 83
Les structures itératives
La boucle Tant que
Exemple : Ecrire un algorithme qui demande à l’utilisateur de
saisir une valeur entre 1 et 10. Si la valeur n’est pas comprise
entre 1 et 10, on redemande la saisie. Sinon l’algorithme affiche le
mot "merci!" et s’arrête.
Algorithme Controle_saisie_V1
Variables n: Réel
Début
Ecrire (" Donnez un nombre entre 1 et 10 ")
Lire (n)
Tant que (n<1 OU n>10)
Ecrire(" Donnez un nombre entre 1 et 10: ")
Lire(n)
FinTantque
Ecrire("Merci!")
Fin
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 84
Les structures itératives
La boucle Répéter…jusqu’à
Utilisée lorsqu’on ne connait d’avance le nombre de répétitions
Syntaxe :
Répéter
Jusqu’à (Condition)
Le bloc d’instructions est exécuté;
Ensuite la condition est évaluée;
Si la condition est vraie, on sort de la boucle, sinon si elle est
fausse on ré-exécute le bloc d’instructions, on réévalue la condition
et ainsi de suite.
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021
85
Les structures itératives
La boucle Répéter…jusqu’à
Début de la Boucle
Répéter…jusqu’à
Répéter
instructions
Jusqu’à (Condition)
Condition
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 86
Les structures itératives
La boucle Répéter…jusqu’à
Remarque :
Le bloc d’instructions est exécuté au moins une fois ;
Après un certain nombre d'itérations, le bloc d’instructions doit
changer la valeur de condition de faux à vrai, sinon on obtient
une boucle infinie.
Exemple :
i ← 0
Répéter
i ← i+1
Jusqu’à (i<0) Boucle infinie
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 87
Les structures itératives
La boucle Répéter…jusqu’à
Exemple : Ecrire un algorithme qui demande à l’utilisateur de
saisir une valeur entre 1 et 10. Si la valeur n’est pas comprise
entre 1 et 10, on redemande la saisie. Sinon l’algorithme affiche le
mot "merci!" et s’arrête.
Algorithme Controle_saisie_V2
Variables n: Réel
Début
Répéter
Ecrire(" Donnez un nombre entre 1 et 10: ")
Lire(n)
Jusqu’à (n>=1 ET n<=10)
Ecrire("Merci!")
Fin
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 88
Les structures itératives
Tant que vs Répéter…jusqu’à
Tant que Répéter…jusqu’à
La condition est vérifiée La condition est vérifiée
avant chaque exécution du après chaque exécution du
bloc d’instructions; bloc d’instructions;
Le bloc d’instructions peut Le bloc d’instructions est
ne pas être exécuté. exécuté au moins une fois.
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 89
Les structures itératives
Les boucles : choix?
Nombre
d’itérations
connu
La boucle
Bloc d’instructions Pour
exécuté au moins
une fois
La boucle La boucle
Tant que Répéter…jusqu’à
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 90
Les structures itératives
Exercices
• Écrire un algorithme qui détermine si un nombre saisi par l’utilisateur
est premier ou non
Algorithme Premier
Variables i, N, compt : entier
Début
Ecrire(" donner un entier ")
Lire(N)
compt ← 0
Pour i=1 à N
Si (N mod i = 0) Alors
compt ← compt + 1
FinSi
FinPour
Si (compt = 2) Alors
Ecrire(" Nombre premier ")
Sinon
Ecrire(" Nombre non premier ")
FinSi
Fin
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 91
Les structures itératives
Exercices
• Ecrire un algorithme qui demande successivement des
nombres à l’utilisateur, et qui calcule leur moyenne. La saisie
des nombres s’arrête lorsque l’utilisateur entre un zéro :
Algorithme ex5cours
Variables N, S : Réel
Début
S ← 0
i ← 0
Répéter
Ecrire(" Donnez un Nombre")
Lire(N)
S ← S +N
i ← i + 1
Jusqu’à (N = 0)
Ecrire(" La Moyenne est: " , S/(i-1))
Fin
Pr. Brahim ALIBOUCH ALGORITHMIQUE 1 SMI2 ( FS - Agadir ) / A.U : 2020-2021 92