Post on 27-May-2015
description
L.P.M Chapitre N°3 Les structures de contrôle itératives
Dégager le traitement itératif Problèm
e
Nombre d’itération ??
Inconnu à l’avance Inconnu à l’avance Connu à l’avance Connu à l’avance
La structure de contrôle itérative complète
La structure de contrôle à condition d’arrêt
La boucle Pour
Pour i de Vi à Vf faireTraitementFin Pour
Nombre d’itération : Connu à l’avance
For i:=Vi To Vf DoBeginTraitement ;End ;
For i:=Vi DOWNTO Vf DoBeginTraitement ;End ;
Type Du Compteur : Type Scalaire
La valeur du compteur , valeur initiale et la valeur finale intouchable dans la boucleNbre d’itérations (compteur Entier) = | vf – vi| +1 Nbre d’itérations (compteur caractère , booléen, TSE) = | ord(vf) – ord(vi)| +1
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éenne init;
Repeat Traitement ; Until Condition(s);
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;Repeatf:=f*n;n:=n-1;Until n=1 ;
Les Contenus Des Variables
f =n =
241
i:= 1 ;// A Repeat// B Write(i);// Cuntil 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 ;Repeati:=i+1 ;Ok:= t[i]=x ;until (ok) or (i=n);
X = 5T |2|3|1|2|15]
X = 5T |2|3|5|2|15]
Ok = Faux
Ok = Vrai Vérifier d’existence de X dans T
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 = bSinon 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
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
[Initialisation] Tant que Condition(s) Faire
Instruction 1Instruction 2
Instruction . . .
Instruction n
Fin Tant Que
Traitement itératif
Analyse & Algorithme
Initialisation;
While Condition(s) DO
Instruction 1;Instruction 2;
Instruction . . .;
Instruction n;
End ;
En Pascal
BEGIN
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 Tester La condition
Si la condition est fausse
Sortie de la boucle Sortie de la boucle
Faire
N.B:
La délimitation de "Traitement" est faite naturellement par les 2 termes de la structure « Tant que » et « Fin tant que »
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.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 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.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.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)
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)
Pour mieux Assimiler Tournage à la main d’une boucle Tant que
Ch := 'BAC MATH‘;CH1:='‘;While (pos(' ',ch) <> 0) DoBegin p:= pos(' ',ch); ch1:= copy(ch,1,p-1)+ ' ' + ch1; delete(ch,1,p);End;ch1:= ch + ' ' + ch1;Writeln(ch1);
ch ch1 pInitialisation
Condition =
Condition =
Varie
BAC MATH
Itération1 4Math BAC
FAUSSE
CH1 Math BAC
Rôle : Inverser une phrase
Analyse : Activité 1
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.