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:
i1
Tantque (i <= 5)
Ecrire (i * 100)
ii+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);
i1
Ecrire (‘’ Donnez la valeur de N ‘’) while(i<=N)
Lire(N) {
Tant que ( i <= N) somme = somme + i;
somme somme + i i = i + 1;
ii+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");
i1 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;
ii+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:
i1
Répéter
Ecrire (i * 100)
ii+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);
i1 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);
ii+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");
i1 scanf("%d",&n);
Ecrire (’’ Donnez la valeur de n ’’)
Lire(n) do
Répéter {
fact fact * i fact = fact * i;
ii+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