Vous êtes sur la page 1sur 19

Algorithmique et structures de

données I
Cours 3:

Structures itératives

Réalisé par: Dhouha Maatar

2021 / 2022
Semestre I
1
PLAN

 Introduction
 1. La boucle POUR
 2. La boucle TANT QUE
 3. La boucle REPETER
 4. Relation entre les boucles TANT QUE et REPETER

2
Introduction

Les structures de contrôle itératives (boucles) sont utilisées quand


une ou plusieurs instructions doivent être exécutées de manière
répétitive un certain nombre de fois.
Plutôt de recopier n fois les mêmes instructions, on peut demander à
l’ordinateur d’exécuter n fois le même traitement.
Il existe deux catégories d’itérations:

 itérations déterministes: le nombre d’itérations est défini à


l’entrée de la boucle.

 itérations indéterministes: l’exécution de la prochaine boucle


est conditionnée par une expression booléenne.
3
Introduction

 On distingue trois sortes de boucles en algorithmique:


Boucle POUR
Boucle TANT QUE
Boucle RÉPÉTER
• Une structure itérative peut contenir une structure conditionnelle ou
structures itératives (structures itératives imbriquées).

4
1. La boucle POUR
C’est l’instruction pour qui permet de faire des boucles
déterministes. Il s’agit de répéter une suite d’instructions un certain
nombre de fois.

5
1. La boucle POUR
Syntaxe:
POUR < nom_var > DE <Vi> A <Vf> [PAS <val_pas>] FAIRE
< Traitement >
FINPOUR
• <nom_var>: Variable entière (compteur) qui compte le nombre
d’itérations à effectuer.
• Vi: Valeur initiale du compteur.
• Vf: Valeur finale du compteur. Son dépassement implique la sortie de
la boucle.
• PAS <val_pas>: Optionnel. Valeur qu’on ajoute au compteur à la fin
de chaque itération. Par défaut il est égal à 1 et il peut être positif ou
négatif.
Si le pas est positif => Vi + val_pas (Vi <=Vf)
Si le pas est négatif => Vi - val_pas (Vi >=Vf) 6
1. La boucle POUR

Exemple-1: Affichage de tous les nombres pairs entre 1 et 10.

Version1: Version2:
ALGORITHME NombrePairs ALGORITHME NombrePairs
VAR VAR
i : entier i : entier
DEBUT DEBUT
POUR i DE 1 A 10 FAIRE POUR i DE 2 A 10 PAS 2 FAIRE
SI (i Mod 2 = 0) ALORS Écrire(i)
Écrire(i) FINPOUR
FINSI FIN
FINPOUR
FIN

7
1. La boucle POUR
Exemple-2: Calcul de la somme de n nombres saisis.
Algorithme Somme
Var n, cpt: entier
valeur, total: réel
Début
écrire(" combien de valeurs voulez-vous saisir?" )
lire(n)
total ←0
POUR cpt de 1 à n FAIRE
écrire(" donnez un nombre réel" )
lire (valeur)
total ← total + valeur
FINPOUR
écrire(" la somme est " , total)
Fin
8
2. La boucle TANT QUE
Quand le nombre d’itérations n’est pas connu, alors on peut
utiliser la boucleTant que.

Consiste à répéter une suite d’instructions tant que la condition est


remplie.
9
2. La boucle TANT QUE
Syntaxe:
TANT QUE < Condition > FAIRE
< Traitement >
FINTANTQUE

•<Condition>: Expression logique qui retourne Vrai ou Faux.


• Il est nécessaire d’avoir une action dans <Traitement> qui modifie
la valeur de la condition (réaffectation des variables de condition).
•Les paramètres de la conditions doivent être initialisés par lecture
ou par affectation avant la boucle.
Remarque: si la condition est fausse dès le départ, le traitement
n’est jamais exécuté. Le nombre d’itérations dans ce cas est égal à
zéro.
10
2. La boucle TANT QUE
Exemple-3: Affichage des nombres entiers dont le carré est
inférieur à 100.
ALGORITHME Nombre_carré
VAR
nombre : entier
DEBUT
nombre ← 1
TANT QUE (nombre * nombre < 100) FAIRE
Écrire(nombre)
nombre ← nombre +1
FINTANTQUE
FIN
11
2. La boucle TANT QUE
Exemple-4: Calcul de la somme de nombres saisis. Le calcul
s’arrête pour une valeur (-1).
Algorithme Somme
const STOP = -1
Variable
valeur, total: réel
Début
écrire(" donnez une première valeur")
lire (valeur)
total ←0
TANT QUE (valeur ≠ STOP ) FAIRE
total ← total + valeur
écrire(" donnez une autre valeur " )
lire (valeur)
FINTANTQUE
écrire(" la somme est " , total) 12
Fin
3. La boucle REPETER
Quand le nombre d’itérations n’est pas connu, alors on peut
utiliser la boucle Répéter.

Les instructions sont exécutées au moins une fois et répétées jusqu’à


ce que la condition soit remplie.
Remarque: la boucle répéter est typique pour contrôler la saisie de
données. 13
3. La boucle REPETER
Syntaxe:
RÉPÉTER
<Traitement>
JUSQU’À < Condition_arret >

•<Condition_arret>: Expression logique qui retourne Vrai ou Faux.


• Il doit y avoir une action dans <Traitement> qui modifie la valeur
de la condition.
• La boucle s’arrête quand <Condition_arret> s’évalue à Vrai.
Remarque: Quelque soit l’état de la condition d’arrêt, le traitement
de la boucle répéter est exécuté au moins une fois. Le nombre
d’itérations est donc, toujours, supérieur ou égal à un.
14
3. La boucle REPETER
Exemple-5: Écrire un algorithme qui demande à l'utilisateur s'il veut
un examen facile (O/N) et affiche la réponse de l'utilisateur avec un
message.
ALGORITHME Examen_facile
VAR
rep: caractère
DEBUT
RÉPÉTER
Ecrire(“Voulez-vous un examen facile? (O/N) ")
Lire(rep)
JUSQU’À (Majus(rep) = ‘O’) OU (Majus(rep) = ‘N’)
Si (Majus(rep) = ‘O’) ALORS
Ecrire(“Vous voulez un examen facile”)
SINON
Ecrire(“Vous voulez un examen difficile”)
FINSI 15
FIN
3. La boucle REPETER
Exemple-6: Écrire un algorithme qui demande à l'utilisateur d'entrer
un nombre plus grand que 10. Une fois le nombre est valide (>10),
Afficher le avec un message correspondant.
ALGORITHME Application-5
VAR
n: entier
DEBUT
RÉPÉTER
Ecrire(“Saisir un nombre plus grand que 10: ")
Lire(n)
JUSQU’À (n > 10)
Écrire(" Vous avez saisi le nombre: " , n)
FIN
16
4.Relation entre les boucles REPETER et TANT QUE
tant que A faire B répéter B jusqu’à !A
Attention: il n’est pas toujours possible de remplacer une boucle répéter par
une boucle tant que et vice versa.
Retour sur Exemple-4: Calcul de la somme de nombres saisis. Le calcul s’arrête pour une
valeur (-1).
Algorithme Somme
const STOP= -1
Var
valeur, total: réel
Début
total ←0
répéter
écrire(" donnez une valeur" )
lire(valeur)
total ← total + valeur
jusqu’ à (valeur = STOP)
écrire(" la somme est " , total)
Fin
//mauvais choix de boucle, il est préférable d’utiliser tant que 17
4.Relation entre les boucles REPETER et TANT QUE
tant que A faire B répéter B jusqu’à !A
Attention: Les instructions de B doivent modifier au moins une variable de
l’expression logique A.
Mauvais exemple:
Début
val1← 2
val2 ← 3
Tant que (val1 < 100 )faire
val2 ← val2 *val1
Fintantque
Fin

C’est l’expression logique A (et elle seule!) qui en prenant la valeur faux
provoque l’arrêt de la boucle.

Le problème d’une boucle tant que ou répéter: il faut en sortir.


18
FIN

19

Vous aimerez peut-être aussi