Vous êtes sur la page 1sur 26

Syrine Ben Meskina 1ère année LBC

Thouraya Sakouhi Module: ASDP1 2019 - 2020


Plan
I. Introduction

II. La structure « Pour … faire … Finpour »

III. La structure « Répéter … Jusqu’à »

IV. La structure « Tantque … faire … Fintantque »

2
I. Introduction

3
Traitement itératif

Exécuter une action (ou ensemble d’actions) un certain nombre de fois

La notion de boucle
ou
Structures répétitives
(ou itératives)
4
Traitement itératif
 Structures de traitement itératif

1) La structure « Pour … faire … Finpour »

2) La structure « Répéter … Jusqu’à »

3) La structure « Tantque … faire … Fintantque »

5
II. Structure « Pour … faire … Finpour »

6
La structure« Pour … faire … Finpour »
 Syntaxe Valeur courante
Valeur finale

Pour vc de vi à vf faire

Traitement Valeur initiale


for (vc = vi; vc <= vf; vc++)
{
Finpour action(s) ;
………
}

7
La structure« Pour … faire … Finpour »

Vc  Vc + 1

8
La structure « Pour … faire … Finpour »
 La boucle Pour est utilisée lorsque le nombre d’itérations est connu à l’avance

 Le traitement est répété (vf – vi + 1) fois

 vc est incrémenté automatiquement à chaque exécution du traitement

 La valeur d’incrémentation de la boucle est appelée le pas de la boucle

 L’exécution de la boucle s’arrête lorsque vc atteint vf

9
La structure « Pour … faire … Finpour »
Exemple 1:

Pour i de 1 à 5 faire

Ecrire (i * 100)

Finpour

Exécution: i 1 2 3 4 5
Affichage 100 200 300 400 500
10
La structure « Pour … faire … Finpour »
Exemple 2:

Pour i de 5 à 1 (pas -1) faire

Ecrire (i * 100)

Finpour

Exécution: i 5 4 3 2 1
Affichage 500 400 300 200 100

 Si le pas est différent de 1, il faut ajouter l’option ( pas = constante)


11
La structure « Pour … faire … Finpour »
Exemple 3: Ecrire un algorithme qui permet de calculer et d’afficher la somme des N
premiers entiers naturels (N est saisi au clavier)

Algorithme Somme entiers int N,i,somme;


Var somme = 0;
N, i, somme: entier printf("Donnez la valeur de N \n");
Début scanf("%d",&N);
somme  0
Ecrire (« Donnez la valeur de N ») for (i=1; i<=N; i++)
Lire(N) { somme = somme + i; }
Pour i de 1 à N faire
somme  somme + i printf("La somme des %d premiers
Fin pour entiers est: %d",N,somme);
Ecrire (‘’La somme des ‘’, N,’’ premiers
entiers est: ’’, somme)
Fin
12
La structure « Pour … faire … Finpour »
Exemple 4: Ecrire un algorithme qui lit un entier positif n et qui affiche tous ses diviseurs

Algorithme Diviseurs entier int n,i;


Var
n, i: entier printf("Donnez la valeur de n \n");
scanf("%d",&n);
Début
Ecrire (‘’ Donnez la valeur de n ‘’) for (i=1; i<=n; i++)
Lire(n) {
Pour i de 1 à n faire if (n % i == 0)
{
Si (n mod i = 0) Alors printf("%d est diviseur de %d ",i,n);
Ecrire (i,‘’ est diviseur de ‘’,n) }
Fin si }
Fin pour
Fin 13
III. Structure « Tantque … faire …
Fintantque »

14
Structure « Tantque … faire … Fintantque »
 Syntaxe
Tantque (condition) faire While(condition)
{
Traitement action(s);
Fin tantque }

 Le traitement est exécuté tant que la condition est vérifiée sinon on sort de la
boucle
 La boucle peut ne jamais être exécutée (0 fois si la condition n’est pas valide
dès la première itération)
 Le nombre de répétitions n’est pas connu à l’avance
15
Structure « Tantque … faire … Fintantque »

16
Structure « Tantque … faire … Fintantque »
Exemple 1:
i1
Tantque (i <= 5)
Ecrire (i * 100)
ii+1
Fin tantque

Exécution:
i 1 2 3 4 5
Affichage 100 200 300 400 500
17
Structure « Tantque … faire … Fintantque »
Exemple 2: Ecrire un algorithme qui permet de calculer et d’afficher la somme des N premiers entiers
naturels (N est saisi au clavier)
int N,i,somme;
Algorithme Somme entiers
Var somme = 0;
N, i, somme: entier i = 1;
Début printf("Donnez la valeur de N \n");
somme  0 scanf("%d",&N);
i1
Ecrire (‘’ Donnez la valeur de N ‘’) while(i<=N)
Lire(N) {
Tant que ( i <= N) somme = somme + i;
somme  somme + i i = i + 1;
ii+1 }
Fin tantque printf("La somme des %d premiers entiers est:
Ecrire (‘’La somme des ‘’, N,’’ premiers %d",N,somme);
entiers est: ’’, somme)
Fin 18
Structure « Tantque … faire … Fintantque »
Exemple 3: Ecrire un algorithme qui permet de calculer la factorielle d’un entier positif n donné

Algorithme Factorielle int n,i,fact;


Var
n, i, fact: entier fact = 1;
Début i = 1;
fact  1 printf("Donnez la valeur de n \n");
i1 scanf("%d",&n);
Ecrire (‘’ Donnez la valeur de n ‘’) while(i<=n)
Lire(n) {
Tantque ( i <= n ) fact = fact * i;
fact  fact * i i = i + 1;
ii+1 }
Fin tantque printf("La factorielle de %d est: %d ",n,fact);
Ecrire (‘’La factorielle de ‘’, n,’’ est: ’’,
fact)
Fin 19
II. Structure « Répéter … Jusqu’à »

20
Structure « Répéter … Jusqu’à »
 Syntaxe

do {
Répéter action(s);
Traitement } while (condition);

Jusqu’à (condition)
Condition de sortie de la boucle

• Le nombre de répétitions n’est pas connu à l’avance


• Le traitement est exécuté au moins une fois

21
Structure « Répéter … Jusqu’à »
Répéter

Traitement

Faux
Condition

Vrai
Suite du programme
22
La structure « Répéter … Jusqu’à »
Exemple 1:
i1
Répéter
Ecrire (i * 100)
ii+1
Jusqu’à (i > 5)

Exécution:
i 1 2 3 4 5
Affichage 100 200 300 400 500
23
Boucle while VS. Boucle do … while

Source: data-flair.training 24
La structure « Répéter … Jusqu’à »
Exemple 2: Ecrire un algorithme qui permet de calculer et d’afficher la somme des N premiers entiers
naturels (N est saisi au clavier) en utilisant la boucle Répéter … jusqu’à

Algorithme Somme entiers int N,i,somme;


Var somme = 0;
N, i, somme: entier i = 1;
Début printf("Donnez la valeur de N \n");
somme  0 scanf("%d",&N);
i1 do
Ecrire (‘’ Donnez la valeur de N ‘’) { somme = somme + i;
Lire(N) i = i + 1;
Répéter }while(i<=N);
somme  somme + i printf("La somme des %d premiers entiers est: %d",N,somme);
ii+1
Jusqu’à ( i > N )
Ecrire (‘’La somme des ‘’, N,’’ premiers
entiers est: ’’, somme)
Fin 25
La structure « Répéter … Jusqu’à »
Exemple 3: Ecrire un algorithme qui permet de calculer la factorielle d’un entier positif n donné

Algorithme Factorielle int n,i,fact;


Var
n, i, fact: entier fact = 1;
Début i = 1;
fact  1 printf("Donnez la valeur de n \n");
i1 scanf("%d",&n);
Ecrire (’’ Donnez la valeur de n ’’)
Lire(n) do
Répéter {
fact  fact * i fact = fact * i;
ii+1 i = i + 1;
Jusqu’à ( i > n ) } while (i<=n);
Ecrire (‘’La factorielle de ‘’, n,’’ est: ’’, printf("La factorielle de %d est: %d ",n,fact);
fact)
Fin 26