Vous êtes sur la page 1sur 19

Chapitre 1

Les structures itératives

1ère année Génie Industriel

Réalisé par:
Mme Amira SOLTANI
Notion de l’algorithmique
 La notion d'itération est une des notions fondamentales de
l'algorithmique. On l'utilise souvent quand on doit exécuter le même
traitement un certain nombre de fois qui peut être connu à l'avance ou
non. Dans ce dernier cas, l'arrêt de l'itération est déclenché par une
condition sur l'état des variables dans l'algorithme.
Structure " Pour...faire "
 Syntaxe générale:
Pour compteur De valeur_initiale A valeur_finale Faire
< séquence d'instructions >
Finpour
Principe de fonctionnement:
 Le compteur est une variable de contrôle qui prend la valeur initiale au moment
d'accès à la boucle puis, à chaque parcours, il passe automatiquement à la valeur
suivante dans son domaine jusqu'à atteindre la valeur finale ( figure 4.1).
Pour

Compteur  valeur_initiale

Oui non
Compteur <=
valeur_finale

Séquence d'instructions Suite du programme

Compteur  compteur + 1

Exécution d'une boucle "Pour"


Exemple

Pour i de 1 à 5 faire
Ecrire (i * 10)
Fpour
 Cette boucle affiche respectivement les ombres 10, 20, 30, 40, 50.
Remarque
 La boucle "Pour" peut être exécutée 0, 1, n fois
 On ne peut pas utiliser la boucle "Pour" que si on connaît à l'avance combien de
fois le traitement sera exécuté ( valeur finale – valeur initiale + 1)
 Dans une boucle "pour" , l'évolution du compteur peut se faire dans le sens
décroissant comme dans l'exemple suivant :
Pour i de 5 à 1 pas = -1 faire
Ecrire (i * 10)
Fpour
 Dans ce cas, le compteur sera décrémenté après caque parcours. Cette boucle
affiche respectivement les ombres 50., 40, 30, 20 , 10
Exemple 1
 Ecrire un algorithme qui li un entier positif n puis affiche tous ses diviseurs.
Algorithme:
Algorithme Diviseurs
Variables
N, i : entier
Début
Ecrire ("enter un entier positif : ") lire (n)
Pour i de 1 à n faire
Si n mod i = 0 alors
écrire (i )
Fsi
Finpour
Fin
Exemple 1
 Ecrire un algorithme qui li un entier positif n puis affiche tous ses diviseurs.
Algorithme:
Algorithme Diviseurs
Variables
N, i : entier
Début
Ecrire ("enter un entier positif : ") lire (n)
Pour i de 1 à n faire
Si n mod i = 0 alors
écrire (i )
Fsi
Fpour
Fin
Exemple 2
 Ecrire un algorithme qui lit un entier positif n puis calcule et affiche son
factoriel selon la formule suivante : n ! = 1 * 2 * ..*n
Algorithme:
Algorithme Factoriel
Variables
N, i , f : entier
Début
Ecrire ("enter un entier positif : ") lire (n)
F1
Pour i de 1 à n faire
Ff*i
Fpour
Ecrire ( n , "!=", f)
Fin
Structure " Tantque .. faire "
Syntaxe générale:

Tantque <condition > Faire


< séquence d'instructions >
FTq
Principe de Fonctionnement :
 Le traitement est exécuté aussi longtemps que la condition est vérifiée. Si dés
début cette condition est fausse, le traitement ne sera exécuté aucune fois : la
boucle " TANTQUE" peut s'exécuter 0, 1 ou n fois. ( figure 4.2)

Tantque

Oui Condition ? non

Séquence d'instructions

Suite du programme

Exécution d'une boucle "tantque"


Exemple:

I1
Tantque i <= 5 faire
Ecrire (i * 10)
Ii+1
FTq
Remarques:
Contrairement à une boucle "pour", dans une boucle "Tantque" , l'initialisation et
l'avancement du compteur doivent être gérée manuellement parle programmeur.
Exemple1:
Ecrire un algorithme diviseurs en remplaçant la boucle "Pour" par la boucle « Tantque »
Algorithme :
Algorithme Diviseurs
Variables
N, i : entier
Début
Ecrire ("enter un entier positif : ") lire (n)
I1
Tantque i <= n faire
Si n mod i = 0 alors
écrire (i)
Fsi
Ii+1
FTq
Fin
Structure "Répéter .. Jusqu'à "
Syntaxe générale :

Répéter
< séquence d'instructions >
Jusqu'à < condition>
Principe de fonctionnement
La séquence d'instruction est exécutée une première fois, puis l'exécution se répète
jusqu’à ce que la condition de sortie soit vérifiée. La boucle " Répéter" s'exécute toujours
au moins une fois ( figure 4.3).
Répéter

non
Séquence d'instructions

Condition de sortie ?

Oui

Suite du programme

Exécution d'une boucle "Répéter"


Exemple
I1
Répéter
Ecrire (i * 10)
Ii+1
Jusqu'à i > 5
Remarques
 Contrairement à une boucle "pour", dans une boucle "Répéter" , l'initialisation et
l'avancement du compteur doivent être gérée manuellement parle programmeur.
 Dans une boucle "Répéter", il faut toujours s'assurer que la condition de sortie sera
vérifiée après un nombre fini de parcours. Sinon, c'est une boucle infinie comme
dans le cas suivant
C"A"
Répéter
Ecrire (c)
Jusqu'à c > "Z"
Exemple1:
Ecrire un algorithme diviseurs en remplaçant la boucle "Pour" par la boucle «Répéter »

Algorithme :
Algorithme Diviseurs
Variables
N, i : entier
Début
Ecrire ("enter un entier positif : ") lire (n)
i1
Répéter
Si n mod i = 0 alors
écrire (i)
Fsi
ii+1
Jusqu'à i > n
Fin
Exemple1:
Ecrire un algorithme factoriel en utilisant la boucle "Répéter"

Algorithme :
Algorithme Factoriel
Variables
N, i , f : entier
Début
Ecrire ("enter un entier positif : ") lire (n)
f1
i 1
Répéter
f f * i
ii + 1
Jusqu'à i > n
Ecrire ( n , "!=", f)
Fin
Synthèse:
Passage d'une structure itérative à une autre

Pour cpt de vi à vf faire


Traitement
Fpour

Cpt  vi
Cpt  vf
Tantque cpt <= vf faire
Répéter
Traitement
Traitement
Cpt  suivant(cpt)
Cpt  suivant(cpt)
Fpour
Jusqu'à cpt > vf

( * ) : le passage d'une boucle "Répéter" ou "Tantque" à une boucle "Pour" n'est possible que si le nombre de
parcours est connu à l'avance.:

Vous aimerez peut-être aussi