1. L.P.M Chapitre N 3 Les structures de contrôle itératives
Dégager le traitement itératif
Problème
Nombre d’itération ??
Inconnu à l’avanceConnu à l’avance
La structure de contrôle
itérative complète
La structure de contrôle à
condition d’arrêt
2. La boucle
Pour
Pour i de Vi à Vf faire
Traitement
Fin Pour
Nombre d’itération : Connu à l’avance
For i:=Vi To Vf Do
Begin
Traitement ;
End ;
For i:=Vi DOWNTO Vf Do
Begin
Traitement ;
End ;
Type Du Compteur : Type Scalaire
La valeur du compteur , valeur initiale et la valeur finale intouchable dans la
boucle
Nbre d’itérations (compteur Entier) = | vf – vi| +1
Nbre d’itérations (compteur caractère , booléen, TSE) = | ord(vf) – ord(vi)| +1
3. La boucle
Répéter
[init]
Répéter
Traitement
Jusqu’ Condition(s)
Nombre d’itération : Inconnu à l’avance
Nombre d’itération Minimal : 1
La présence d’une instruction pour
modifier l’état de condition est
obligatoire
La condition =
Expression Booléenneinit;
Repeat
Traitement ;
Until Condition(s);
4. La boucle Répéter init;
Repeat
Traitement ;
Until Condition(s);
i:=0;
Repeat
i:=2*i+1 ;
until i > 7 ;
Nombre d’itérations ? Ahlem
Assala
Dhekra
Fadi
Hamdi
Hassan
Marwan
Nader
Naji
Hanen
Oumayma
Oussama
Samar
Souheil
Yasmine3
f:=1 ;n:=4;
Repeat
f:=f*n;
n:=n-1;
Until n=1 ;
Les Contenus Des Variables
f =
n =
24
1
5. i:= 1 ;
// A
Repeat
// B
Write(i);
// C
until i > 5 ;
Où faut-il augmenter la variable i de 1
pour que cette boucle affiche 1 2 3 4 5
Ahlem
Assala
Dhekra
Fadi
Hamdi
Hassan
Marwan
Nader
Naji
Hanen
Oumayma
Oussama
Samar
Souheil
Yasmine
i:= i + 1 ;
Rôle Du Programme
i:= 0 ;
Repeat
i:=i+1 ;
Ok:= t[i]=x ;
until (ok) or (i=n);
X = 5
T |2|3|1|2|15]
X = 5
T |2|3|5|2|15]
Ok = Faux
Ok = Vrai
Vérifier d’existence de X dans T
6. Activité 1
Ecrire un programme qui permet d’afficher le PGCD de deux entiers donnés
a et b (avec a*b >0 et a > 0)
Principe :
Si a <> b alors
PGCD(a,b) = Si b > a PGCD(a , b-a)
Sinon PGCD (a-b,b)
Répéter le même traitement jusqu’à a = b
Sinon PCGD = a ( ou b )
Exemple 1 : A = 12 , B= 4 PGCD (12 , 4 ) = PGCD(8,4) = PGCD (4,4) = 4
Exemple 2 : A = 13 , B= 13 A = B alors PGCD = 13
Le Traitement
Itératif
Si a > b alors a a-b
Sinon b b-a
Le nombre
d’itérations
2
Le Traitement
Itératif
Si a > b alors a a-b
Sinon b b-a
Le nombre
d’itérations
0
7. Constatations
Le Traitement Itératif Si a > b alors a a-b
Sinon b b-a
Le nombre d’itérations Inconnu à l’avance
Le nombre d’itérations
Minimal 0
8. [Initialisation] Tant que Condition(s) Faire
Instruction 1
Instruction 2
Instruction . . .
Instruction n
Fin Tant Que
Traitement
itératif
Analyse & Algorithme
10. Exécution de la boucle Tant que
Tant que
Si la condition
est vraie
Fin Tant que
Ré-tester la
condition
Exécution du traitement
Tester La
condition
Si la condition
est fausse
Sortie de la boucle
Faire
11. N.B:
La délimitation de "Traitement" est faite naturellement
par les 2 termes de la structure « Tant que » et « Fin
tant que »
La condition est évaluée avant de l’entrée dans la boucle.
Condition d'arrêt est une expression booléenne Condition
d’entrée
Il doit y avoir une action dans le <Traitement> qui modifie la
valeur de la condition.
On exécute le corps de la boucle tant que la condition est
vari.
Si l'expression booléenne (condition ) est fausse dès le début,
le traitement n'est jamais exécutée (nombre d’itération minimal
=0)
12. Pour mieux Assimiler
Tournage à la main d’une boucle Tant que
Ch := 'BAC MATH‘;
CH1:='‘;
While (pos(' ',ch) <> 0) Do
Begin
p:= pos(' ',ch);
ch1:= copy(ch,1,p-1)+ ' ' + ch1;
delete(ch,1,p);
End;
ch1:= ch + ' ' + ch1;
Writeln(ch1);
ch ch1 p
Initialisation
Condition =
Condition =
Varie
BAC MATH
Itération1 4Math BAC
FAUSSE
CH1 Math BAC
Rôle : Inverser une
phrase
14. Applications
On se propose de déterminer le PGCD de deux entiers naturels m
et n. Principe de Division : Si n MOD M = 0 alors pgcd = b Sinon
on remplace a par b et b par a mod b
On se propose de déterminer le PPCM de deux entiers naturels m
et n. Ecrire un programme Pascal qui permet de calculer le PPCM
Ecrire un programme Pascal qui permet d’afficher les nombres
premiers < = N (n entier donné )
Ecrire un programme Pascal permettant de décomposer un entier
N donné (2 ≤ N ≤ 100) en produit de facteurs premiers et
d'afficher N et le produit de ses facteurs trouvés.
Exemple : Si n = 60 alors on affiche 60 = 2*2*3*5.