Vous êtes sur la page 1sur 32

Alger, Algérie, 19 Janvier 2021

Université des Sciences et de la Technologie HOUARI BOUMEDIENE


Faculté d'Electronique et d'Informatique
Département d'Informatique

Algorithmique I

Chapitre III. Langage Algorithmique

Séance N° : 6

Instructions itératives
Répéter … Jusqu'à;

Ilyes KHENNAK
Maitre de Conférences Classe B

Laboratoire de Recherche en Intelligence Artificielle (LRIA)


Bureau 212, Département Informatique, FEI
Résumé de la séance 5
 Partie actions (instructions)

Algorithme <Nom de l'algorithme>;

I. Instructions (actions) de base


<Partie déclarations>
 Instructions d'affectation
Début
 Instructions de Lecture/Ecriture
 Instructions de contrôle
<Partie actions>
II. Instructions itératives (boucles)

Fin.

Slide 2 sur 32
I. KHENNAK
Résumé de la séance 5
 Les Boucles (instructions itératives) sont utilisées pour réaliser des
actions répétitives.

 Il existe Trois types de Boucles :

 La boucle POUR

 La boucle TANT QUE

 La boucle REPETER

Slide 3 sur 32
I. KHENNAK
Résumé de la séance 5
 Boucle POUR (Pour … Faire … Fait;)
Syntaxe

Algorithme <Nom de l'algorithme>;



Début

Pour <IDF> de <BI> à<BS> Faire


<Bloc Actions>
Fait;

Fin.

Exemple
Algorithme Pour ;

Début

Pour i de 1 à 1000 Faire


Ecrire ("Section 10");
Fait;

Fin.

Slide 4 sur 32
I. KHENNAK
Résumé de la séance 5
 Boucle TANT QUE (Tant que … Faire … Fait;)
Syntaxe

Algorithme <Nom de l'algorithme>;



Début

<Initialisation>
Tant que (<Condition(s)>) Faire
<Bloc Actions>
<Modification Condition(s)>
Fait;

Fin.

Exemple
Algorithme Tant que ;

Début

i  1;
Tant que (i<=1000) Faire
Ecrire ("Section 10");
i  i+1;
Fait;

Fin.
Slide 5 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Syntaxe <Initialisation> : est une instruction qui
Algorithme <Nom de l'algorithme>; permet de donner la première valeur à

Début <Condition(s)>

<Initialisation>
Répéter <Modification Condition(s)> : est une
instruction qui permet de changer la valeur de
<Bloc Actions>
la condition pour pouvoir arrêter le traitement
<Modification Condition(s)>
Jusqu'à (<Condition(s)>);
… <Condition(s)> : est une expression
Fin.
booléenne

Exemple
Algorithme Tant que ;

Début Initialisation :

i  1;
i  1;
Cet algorithme permet d'afficher
Répéter Conditions(s) :
le message « Section 10 »  (i>1000)
1000 fois
Ecrire ("Section 10");
i  i+1;
Modification Condition(s) :
Jusqu'à (i>1000); i  i+1;

Fin.
Slide 6 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Syntaxe

Algorithme <Nom de l'algorithme>;

<Initialisation>  Début

…

<Bloc Actions>   <Initialisation>

Répéter
<Modification Condition(s)> 
 <Bloc Actions>

F
 <Modification Condition(s)>
Non
<Condition(s)> 
 Jusqu'à (<Condition(s)>);
Oui
V
 …
Fin.
Organigrammme
Slide 7 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;) Début

i1

Exemple Ecrire("Section 10")

Algorithme Tant que ;

Début

i  1; i  i +1

Répéter
Ecrire ("Section 10");
Non
i  i+1; i > 1000

Jusqu'à (i>1000);
Fin. Oui

Fin

Organigrammme

Slide 8 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Exercice :
Soit N un nombre entier positif.

Ecrire un algorithme qui permet d'afficher le message "Section 10" N fois

Algorithme :
Algorithme Affichage;

Var

N, i : entier;

Début
Lire(N);
i  1;
Répéter
Ecrire("Section 10");
i  i + 1;
Jusqu'à (i>N);
Fin.
Slide 9 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -

N, i : entier;

Début

  Lire(N);
 i  1;
Répéter
 Ecrire("Section 10");
 i  i + 1;
 Jusqu'à(i>N);
Fin.

Slide 10 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -

N, i : entier;  3 1 -

Début

 Lire(N);
  i  1;
Répéter
 Ecrire("Section 10");
 i  i + 1;
 Jusqu'à(i>N);
Fin.

Slide 11 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -

Début  3 1 -

 Lire(N);
 i  1;
Répéter

  Ecrire("Section 10");
 i  i + 1;
 Jusqu'à(i>N);
Fin.

Slide 12 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -

Début  3 1 -

 Lire(N);  3 2 -
 i  1;
Répéter
 Ecrire("Section 10");
  i  i + 1;
 Jusqu'à(i>N);
Fin.

Slide 13 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -

Début  3 1 -

 Lire(N);  3 2 -
 i  1;  3 2 Faux
Répéter
 Ecrire("Section 10");
 i  i + 1;

  Jusqu'à(i>N);
Fin.

Slide 14 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -  Section 10
Début  3 1 -

 Lire(N);  3 2 -
 i  1;  3 2 Faux
Répéter  3 2 Faux
  Ecrire("Section 10");
 i  i + 1;
 Jusqu'à(i>N);
Fin.

Slide 15 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -  Section 10
Début  3 1 -

 Lire(N);  3 2 -
 i  1;  3 2 Faux
Répéter  3 2 Faux
 Ecrire("Section 10");
 3 3 Faux
  i  i + 1;
 Jusqu'à(i>N);
Fin.

Slide 16 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -  Section 10
Début  3 1 -

 Lire(N);  3 2 -
 i  1;  3 2 Faux
Répéter  3 2 Faux
 Ecrire("Section 10");
 3 3 Faux
 i  i + 1;
 3 3 Faux
  Jusqu'à(i>N);
Fin.

Slide 17 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -  Section 10
 3 1 -  Section 10
Début

 Lire(N);  3 2 -
 i  1;  3 2 Faux
Répéter  3 2 Faux
  Ecrire("Section 10");  3 3 Faux
 i  i + 1;  3 3 Faux
 Jusqu'à(i>N);
 3 2 Faux
Fin.

Slide 18 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -  Section 10
 3 1 -  Section 10
Début

 Lire(N);  3 2 -
 i  1;  3 2 Faux
Répéter  3 2 Faux
 Ecrire("Section 10");
 3 3 Faux
  i  i + 1;  3 3 Faux
 Jusqu'à(i>N);
 3 2 Faux
Fin.
 3 4 Faux

Slide 19 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -  Section 10
 3 1 -  Section 10
Début

 Lire(N);  3 2 -
 i  1;  3 2 Faux
Répéter  3 2 Faux
 Ecrire("Section 10");
 3 3 Faux
 i  i + 1;
 3 3 Faux
  Jusqu'à(i>N);
 3 2 Faux
Fin.
 3 4 Faux
 3 4 Vrai

Slide 20 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme Affichage;
Action N i i>N  3
Var  3 - -  Section 10
N, i : entier;  3 1 -  Section 10
 3 1 -  Section 10
Début

 Lire(N);  3 2 -
 i  1;  3 2 Faux
Répéter  3 2 Faux
 Ecrire("Section 10");
 3 3 Faux
 i  i + 1;
 3 3 Faux
 Jusqu'à(i>N);
 3 2 Faux
 Fin.
 3 4 Faux
 3 4 Vrai

Slide 21 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
 La boucle Répéter est généralement utilisée avec l'action de lecture (Lire) pour
orienter l'utilisateur à introduire des valeurs valides

Exercice :
Soit N un nombre entier positif.

Ecrire un algorithme qui permet de calculer le produit des N premiers nombres entiers.

Algorithme sansRépéter; Algorithme avecRépéter;


Var Var
N, i, P : entier; N, i, P : entier;
Dans ce premier Dans ce deuxième
Début Début
algorithme, l'utilisateur a Lire(N); Répéter algorithme, l'utilisateur ne
la possibilité d'introduire  P  1; Lire(N);
sort jamais de la boucle
une valeur négative ou
Pour i de 1 à N Faire Jusqu'à(N>0);  Répéter s'il donne une
P  P * i; P  1;
nulle pour N Fait; Pour i de 1 à N Faire valeur nulle ou négative
Ecrire(P); P  P * i;
pour N
Fin. Fait;
Ecrire(P);
Fin.

Slide 22 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme avecRépéter;
Action N P N>0  -5
Var  -5 - -

N, i, P : entier;

Début
Répéter

  Lire(N);
 Jusqu'à(N>0);
 P  1;
<Etape suivante>
Fin.

Slide 23 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme avecRépéter;
Action N P N>0  -5
Var  -5 - -

N, i, P : entier;  -5 - Faux

Début
Répéter
 Lire(N);

  Jusqu'à(N>0);
 P  1;
<Etape suivante>
Fin.

Slide 24 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme avecRépéter;
Action N P N>0  -5
Var  -5 - -  0
N, i, P : entier;  -5 - Faux

Début  0 - Faux
Répéter

  Lire(N);
 Jusqu'à(N>0);
 P  1;
<Etape suivante>
Fin.

Slide 25 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme avecRépéter;
Action N P N>0  -5
Var  -5 - -  0
N, i, P : entier;  -5 - Faux

Début  0 - Faux
Répéter  0 - Faux
 Lire(N);

  Jusqu'à(N>0);
 P  1;
<Etape suivante>
Fin.

Slide 26 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme avecRépéter;
Action N P N>0  -5
Var  -5 - -  0
N, i, P : entier;  -5 - Faux  4
Début  0 - Faux
Répéter  0 - Faux
  Lire(N);  4 - Faux
 Jusqu'à(N>0);
 P  1;
<Etape suivante>
Fin.

Slide 27 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme avecRépéter;
Action N P N>0  -5
Var  -5 - -  0
N, i, P : entier;  -5 - Faux  4
Début  0 - Faux
Répéter  0 - Faux
 Lire(N);  4 - Faux
  Jusqu'à(N>0);  4 - Vrai
 P  1;
<Etape suivante>
Fin.

Slide 28 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme avecRépéter;
Action N P N>0  -5
Var  -5 - -  0
N, i, P : entier;  -5 - Faux  4
Début  0 - Faux
Répéter  0 - Faux
 Lire(N);  4 - Faux
 Jusqu'à(N>0);  4 - Vrai
  P  1;  4 1 Vrai
<Etape suivante>
Fin.

Slide 29 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucle REPETER (Répéter … Jusqu'à;)
Algorithme : Déroulement : Application :

Algorithme avecRépéter;
Action N P N>0  -5
Var  -5 - -  0
N, i, P : entier;  -5 - Faux  4
Début  0 - Faux
Répéter  0 - Faux
 Lire(N);  4 - Faux
 Jusqu'à(N>0);  4 - Vrai
 P  1;
 4 1 Vrai
 <Etape suivante>
Fin.

Slide 30 sur 32
I. KHENNAK
Instructions itératives (boucles)
 Boucles TANT QUE, POUR & REPETER

POUR TANT QUE REPETER


Le nombre d'itérations doit Le nombre d'itérations peut Le nombre d'itérations peut
Nombre
être connu pour utiliser la boucle ne pas être connu pour utiliser ne pas être connu pour utiliser
d'itérations
POUR la boucle TANT QUE la boucle REPETER

A chaque itération, la boucle A chaque itération, la boucle


A chaque itération, la boucle
TANT QUE peut vérifier REPETER peut vérifier plusieurs
POUR vérifie une et une seule
Condition plusieurs conditions pour conditions pour continuer
condition (<IDF> <=<BS>)
d'arrêt continuer d'exécuter le bloc d'exécuter le bloc d'actions qui
pour continuer d'exécuter le
d'actions qui se répète, exemple: se répète, exemple:
bloc d'actions qui se répète
Tant que (i<=N) et (x<>0) Faire Jusqu'à (i>N) ou (x=0);

La boucle POUR doit TOUJOURS La boucle TANT QUE doit Dans la boucle REPETER, le bloc
Vérification vérifier la condition TOUJOURS vérifier la condition d'actions qui se répète est
de la (<IDF><=<BS>) avant (Tant que (<Condition(s)>)) exécuté la première fois SANS
condition d'exécuter le bloc d'actions avant d'exécuter le bloc vérifier la condition
qui se répète d'actions qui se répète (Jusqu'à (<Condition(s)>))

Slide 31 sur 32
I. KHENNAK
Fin de la séance N° 6

Slide 32 sur 32