Vous êtes sur la page 1sur 5

‫ا"ـــت ‪Les boucles‬‬ ‫س ام ا‬ ‫

ا
ع اك م وت ‪2010/2009‬‬

‫اـ"ــ ـــــــــــــت‬
‫‪Les boucles‬‬

‫‪ .1‬ﻤﻘﺩﻤﺔ‬
‫ﺍﻝﺤﺎﺴﻭﺏ ﻫﻭ ﺠﻬﺎﺯ ﻤﻴﺯﺘﻪ ﺍﻷﻭﻝﻰ ﻗﺩﺭﺘﻪ ﻋﻠﻰ ﺘﻜﺭﺍﺭ ﺍﻝﻤﻌﺎﻝﺠﺔ ﺩﻭﻥ ﺘﻌﺏ‪ ،‬ﺍﻝﺘﻌﻠﻴﻤﺎﺕ ﺍﻝﺘﻲ ﺘﺴﻤﺢ ﺒﻬﺫﺍ ﺍﻝﺘﻜﺭﺍﺭ ﺘﺴﻤﻰ‬
‫ﺍﻝﺤﻠﻘﺎﺕ‪.‬‬
‫ﻓﻲ ﺍﻝﺨﻭﺍﺭﺯﻤﻴﺎﺕ ﻴﻭﺠﺩ ‪ 3‬ﺃﻨﻭﺍﻉ ﻤﻥ ﺍﻝﺤﻠﻘﺎﺕ ‪:‬‬
‫• ﺍﻝﺤﻠﻘﺔ ‪(tque) Tantque‬‬
‫• ﺍﻝﺤﻠﻘﺔ ‪Répéter‬‬
‫• ﺍﻝﺤﻠﻘﺔ ‪Pour‬‬
‫ﺘﻌﺘﺒﺭ ﺍﻝﺤﻠﻘﺔ ‪ Tantque‬ﺃﻫﻡ ﺍﻝﺤﻠﻘﺎﺕ ﻓﻬﻲ ﺘﺴﺘﻌﻤل ﻓﻲ ﻜل ﻝﻐﺎﺕ ﺍﻝﺒﺭﻤﺠﺔ‪.‬‬
‫‪ .2‬ﺍﻝﺤﻠﻘﺔ ‪Tantque‬‬
‫‪ o‬ﺼﻴﻐﺔ ﺍﻝﺤﻠﻘﺔ‬
‫‪Tantque (condition) faire‬‬ ‫‪En Pascal:‬‬
‫‪Action‬‬ ‫‪While (condition) do‬‬
‫‪Fintque‬‬ ‫;‪Action‬‬
‫‪ : Condition‬ﻫﻲ ﺍﻝﺸﺭﻁ ﻭﻫﻭ ﻋﺒﺎﺭﺓ ﻤﻨﻁﻘﻴﺔ ﺒﺴﻴﻁﺔ ﺃﻭ ﻤﺭﻜﺒﺔ‪.‬‬
‫‪ : Action‬ﻫﻲ ﺍﻝﺘﻌﻠﻴﻤﺔ ﺃﻭ ﺠﻤﻠﺔ ﺍﻝﺘﻌﻠﻴﻤﺎﺕ ﺍﻝﺘﻲ ﺘﻨﻔﺫ ﺩﺍﺨل ﺍﻝﺤﻠﻘﺔ‪.‬‬
‫‪ o‬ﻤﻌﻨﻰ ﺍﻝﺤﻠﻘﺔ‬
‫ﻫﺫﻩ ﺍﻝﺤﻠﻘﺔ ﺘﻨﻔﺫ ﻤﺎﺩﺍﻡ ﺍﻝﺸﺭﻁ ﺼﺤﻴﺤﺎ‪ ،‬ﻭ ﺒﻤﺠﺭﺩ ﻤﺎ ﻴﺼﺒﺢ ﺨﺎﻁﺌﺎ ﺘﺘﻭﻗﻑ ﻋﻥ ﺍﻝﺘﻨﻔﻴﺫ‪.‬‬
‫ﺃﻤﺜﻠﺔ‬
‫‪ -1‬ﻝﻴﻜﻥ ‪ n‬ﻋﺩﺩ ﺼﺤﻴﺢ ‪.‬‬

‫ﻫﺫﻩ ﺍﻝﺤﻠﻘﺔ ﺘﻅﻬﺭ ﻋﻠﻰ ﺍﻝﺸﺎﺸﺔ ﺍﻷﻋﺩﺍﺩ ﺍﻝﺼﺤﻴﺤﺔ ﺍﻝﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ ‪ 1‬ﻭ ‪.9‬‬ ‫‪Tque (n<10) faire‬‬
‫)‪Ecrire (n‬‬
‫‪n ← n+1‬‬
‫‪Fintque‬‬

‫‪n ← 2‬‬ ‫;‪n:=2‬‬


‫‪Tque (n≤20) faire‬‬ ‫‪While (n≤20) do‬‬ ‫ﻫﺫﻩ ﺍﻝﺤﻠﻘﺔ ﺘﻅﻬﺭ ﻋﻠﻰ ﺍﻝﺸﺎﺸﺔ ﺍﻷﻋﺩﺍﺩ ﺍﻝﺯﻭﺠﻴﺔ‬
‫))‪Ecrire (carre (n‬‬ ‫‪Begin‬‬ ‫ﺍﻝﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ ‪ 2‬ﻭ ‪.20‬‬
‫‪n←n+2‬‬ ‫;))‪Writeln(sqr(n‬‬
‫; ‪n:=n+2‬‬
‫‪Fintque‬‬ ‫ﺘﺴﺘﻌﻤل ‪ Begin‬ﻭ‪ End‬ﻝﻭﺠﻭﺩ ﺠﻤﻠﺔ ﻤﻥ ﺍﻝﺘﻌﻠﻴﻤﺎﺕ‪.‬‬
‫;‪End‬‬

‫‪-2‬‬
‫;‪En Pascal‬‬
‫‪n ← 1‬‬ ‫;‪n:=1‬‬
‫‪Tque (n≤100) faire‬‬ ‫‪While (n<=100) do‬‬
‫‪Si (n mode 2=0) et (n mode 7 ≠0) alors‬‬ ‫‪Begin‬‬
‫)‪Ecrire (n‬‬ ‫‪If (n mode 2=0) and (n mode 7 <>0) then‬‬
‫‪Finsi‬‬ ‫;)‪Writeln(n‬‬
‫‪n ← n+1‬‬ ‫;‪n:=n+1‬‬
‫;‪End‬‬
‫‪Fintque‬‬
‫ﻫﺫﻩ ﺍﻝﺤﻠﻘﺔ ﺘﻅﻬﺭ ﻋﻠﻰ ﺍﻝﺸﺎﺸﺔ ﺍﻷﻋﺩﺍﺩ ﺍﻝﺯﻭﺠﻴﺔ ﻏﻴﺭ ﻗﺎﺒﻠﺔ ﻝﻠﻘﺴﻤﺔ ﻋﻠﻰ ‪ 7‬ﺍﻝﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ ‪ 1‬ﻭ ‪.100‬‬
‫‪ o‬ﺤﺎﻝﺔ ﺨﺎﺼﺔ‬
‫‪1/5‬‬
Les boucles ‫ا"ـــت‬ ‫س ام ا‬ 2010/2009 ‫ ا
ع اك م وت‬
.‫ﻨﺤﺼل ﻋﻠﻰ ﺤﻠﻘﺔ ﻏﻴﺭ ﻤﻨﺘﻬﻴﺔ ﺇﺫﺍ ﻨﺴﻴﻨﺎ ﺘﻌﻠﻴﻤﺔ ﺍﻝﺘﺯﺍﻴﺩ‬
i ←1
Tque (i ≤ n) faire
Ecrire (i) .‫ﺤﻠﻘﺔ ﻏﻴﺭ ﻤﻨﺘﻬﻴﺔ ⇐ ﺨﻁﺄ ﻓﻲ ﺍﻝﺘﻨﻔﻴﺫ‬
Fintque
01‫ﺘﻤﺭﻴﻥ‬
: ‫ﺃﺤﺴﺏ ﺍﻝﻤﺠﺎﻤﻴﻊ ﺍﻝﺘﺎﻝﻴﺔ‬
S1 = 1 + 2 + 3 + ........ + n
S 2 = 12 + 2 2 + 3 2 + ........ + n 2
S1 ← 0 S2 ← 0
Compteur ←1 Compteur ← 1
Tque (compteur ≤ n) faire Tque (compteur ≤ n) faire
S1 ← S1 +compteur S2 ← S2 +carré (compteur)
Compteur ← compteur +1 Compteur ← compteur +2
Fintque Fintque
02‫ﺘﻤﺭﻴﻥ‬
n! ‫ﺃﺤﺴﺏ‬
(>0,=0, <0) ‫ ﻋﺩﺩ ﺼﺤﻴﺢ‬n
‫ ⇐ ﻤﺴﺘﺤﻴل‬n <0 •
fact =1 ⇐ n =0 •
fact =1*2*3*4*…….*n ⇐ n >0 •
= n*(n-1)*(n-2)*……..*2*1
Algorithme Factorielle En Pascal:
Variables n,i: entier Program factorielle;
Fact: entier Var n, i : integer;
Début Fact: integer;
Ecrire (‘tapez une valeur’) Begin
Writle('tapez une valeur: ');
Lire (n)
Readln (n);
Si (n<0) alors If (n<0) then
Ecrire (‘impossible’) Writlen('Impossible')
Sinon Else
Si (n=0) alors Begin
Fact ← 1 If (n=0) then
Sinon Fact :=1
Fact ← 1; i ← 2 Else
Tque (i≤ n ) faire Begin
fact ← fact*i Fact :=1; i:=2;
i← i+1 While (i<=n) do
Fin tque Begin
Fact := fact*I;
Finsi
i:=i+1;
Ecrire (fact) End;
Finsi End;
Fin Writeln(fact);
End;
End.
‫ﻤﻼﺤﻅﺔ‬
2/5
‫ا"ـــت ‪Les boucles‬‬ ‫س ام ا‬ ‫ ا
ع اك م وت ‪2010/2009‬‬
‫ﺇﺫﺍ ﻤﺜﻠﻨﺎ ﻋﺩﺩ ﺼﺤﻴﺢ ﺒـ ‪ ، 16 bits‬ﻴﻤﻜﻨﻨﺎ ﺍﻝﺤﺼﻭل ﻋﻠﻰ ﺍﻷﻋﺩﺍﺩ ﻤﻥ ‪ -215‬ﺇﻝﻰ ‪ ، 215+1‬ﺃﻱ ﻤﻥ ‪ -32768‬ﺇﻝﻰ‬
‫‪.32767‬‬
‫ﻴﻤﻜﻨﻨﺎ ﺍﻝﺤﺼﻭل ﻋﻠﻰ ﺘﺠﺎﻭﺯ ﻓﻲ ﺴﻌﺔ ﺘﻤﺜﻴل ﻋﺩﺩ )‪ (over flow‬ﻷﻥ ﺍﻝﻌﺎﻤﻠﻲ ﻴﺘﺯﺍﻴﺩ ﺒﺴﺭﻋﺔ‪ ،‬ﻭ ﺒﺎﻝﺘﺎﻝﻲ ﺨﻁﺄ ﻓﻲ ﺍﻝﺘﻨﻔﻴﺫ‪.‬‬
‫‪ .3‬ﺍﻝﺤﻠﻘﺔ ‪Répéter‬‬
‫‪ o‬ﺼﻴﻐﺔ ﺍﻝﺤﻠﻘﺔ‬
‫‪Répéter‬‬ ‫‪En Pascal :‬‬
‫‪Action‬‬ ‫‪Repeat‬‬
‫‪Jusqu'à condition‬‬ ‫;‪Action‬‬
‫;)‪Until (condition‬‬
‫‪ o‬ﻤﻌﻨﻰ ﺍﻝﺤﻠﻘﺔ‬
‫• ﺘﻨﻔﻴﺫ ﺍﻝﺘﻌﻠﻴﻤﺔ‬
‫• ﺘﻘﻴﻴﻡ ﺍﻝﻌﺒﺎﺭﺓ ﺍﻝﻤﻨﻁﻘﻴﺔ ﻓﻲ ﺍﻝﺸﺭﻁ‪:‬‬
‫← ﺇﺫﺍ ﻜﺎﻨﺕ ﺼﺤﻴﺤﺔ‪ ،‬ﻨﻭﻗﻑ ﺘﻨﻔﻴﺫ ﺍﻝﺤﻠﻘﺔ‪.‬‬
‫← ﺇﺫﺍ ﻜﺎﻨﺕ ﺨﺎﻁﺌﺔ‪ ،‬ﻨﻌﻴﺩ ﺘﻨﻔﻴﺫ ﺍﻝﺤﻠﻘﺔ‪.‬‬
‫ﻤﺜـﺎل‬
‫‪x ←1‬‬ ‫‪En Pascal:‬‬ ‫‪2‬‬ ‫ﺍﻝﺸﺎﺸﺔ‬
‫‪Répéter‬‬ ‫;‪x:= 1‬‬ ‫‪3‬‬
‫‪x← x+1‬‬ ‫‪repeat‬‬ ‫‪4‬‬
‫)‪Ecrire (x‬‬ ‫;‪x:=x+1‬‬ ‫‪5‬‬ ‫ﻨﺨﺭﺝ ﻤﻥ ﺍﻝﺤﻠﻘﺔ‬
‫)‪Jusqu'à (x=5‬‬ ‫;)‪writeln(x‬‬
‫)‪until (x=5‬‬
‫‪ .4‬ﻤﻘﺎﺭﻨﺔ ﺒﻴﻥ ﺍﻝﺤﻠﻘﺘﻴﻥ ‪ Tantque‬ﻭ ‪Répéter‬‬
‫ﺍﻝﺤﻠﻘﺔ ‪Tantque‬‬ ‫ﺍﻝﺤﻠﻘﺔ ‪Répéter‬‬
‫ﺍﻝﺸﺭﻁ ﻫﻭ ﺸﺭﻁ ﺨﺭﻭﺝ ﻤﻥ ﺍﻝﺤﻠﻘﺔ‬ ‫ ﺍﻝﺸﺭﻁ ﻫﻭ ﺸﺭﻁ ﺩﺨﻭل ﻝﻠﺤﻠﻘﺔ‬
‫ﺍﻝﺘﻌﻠﻴﻤﺔ ﺘﻨﻔﺫ ﻋﻠﻰ ﺍﻷﻗل ﻤﺭﺓ‬ ‫ ﺍﻝﺘﻌﻠﻴﻤﺔ ﺘﻨﻔﺫ ‪ 0‬ﺃﻭ ﺃﻜﺜﺭ ﻤﻥ ﻤﺭﺓ‬
‫ﺸﺭﻁ ﺼﺤﻴﺢ ⇐ ﺘﻨﻔﻴﺫ ﺍﻝﺤﻠﻘﺔ‬ ‫ ﺸﺭﻁ ﺼﺤﻴﺢ ⇐ ﺇﻴﻘﺎﻑ ﺘﻨﻔﻴﺫ ﺍﻝﺤﻠﻘﺔ‬
‫‪ : Validation des données‬ﻴﺠﺏ ﺍﻝﺘﺄﻜﺩ ﺩﻭﻤﺎ ﻤﻥ ﺼﺤﺔ ﺍﻝﻤﻌﻁﻴﺎﺕ ﺍﻝﻤﻘﺭﻭﺀﺓ ﺩﺍﺨل ﺨﻭﺍﺭﺯﻤﻲ‪.‬‬
‫ﻤﺜﺎل‬
‫ﻗﺭﺍﺀﺓ ﺍﻝﻨﻘﺎﻁ‪ :‬ﺘﻜﻭﻥ ﻜل ﻨﻘﻁﺔ ﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ ‪ 0‬ﻭ ‪.20‬‬
‫‪Répéter‬‬
‫)’‪Ecrire (‘tapez la note de l'inf‬‬
‫)‪inf‬ـ‪Lire (note‬‬
‫))‪inf≤20‬ـ‪inf≥0) et (note‬ـ‪Jusqu'à ((note‬‬
‫‪ .5‬ﺍﻝﺤﻠﻘﺔ ‪Pour‬‬
‫‪ o‬ﺼﻴﻐﺔ ﺍﻝﺤﻠﻘﺔ‬
‫‪Pour var allant de N à M faire‬‬ ‫‪En Pascal:‬‬
‫‪Action‬‬ ‫‪For var:=N to M do‬‬
‫‪Finpour‬‬
‫;‪Action‬‬
‫‪ : Var‬ﻫﻲ ﻤﺘﻐﻴﺭ ﻴﻠﻌﺏ ﺩﻭﺭ ﻋﺩﺍﺩ‪.‬‬
‫‪ : Action‬ﻫﻲ ﺘﻌﻠﻴﻤﺔ ﺃﻭ ﺠﻤﻠﺔ ﺘﻌﻠﻴﻤﺎﺕ‪.‬‬
‫‪ : N‬ﻫﻲ ﺍﻝﻘﻴﻤﺔ ﺍﻻﺒﺘﺩﺍﺌﻴﺔ ﻭ ‪ : M‬ﻫﻲ ﺍﻝﻘﻴﻤﺔ ﺍﻝﻨﻬﺎﺌﻴﺔ‪.‬‬
‫‪ o‬ﻤﻌﻨﻰ ﺍﻝﺤﻠﻘﺔ‬
‫‪3/5‬‬
Les boucles ‫ا"ـــت‬ ‫س ام ا‬ 2010/2009 ‫ ا
ع اك م وت‬
.‫( ﻤﺭﺓ ﺒﺤﻴﺙ ﺍﻝﻘﻴﻤﺘﻴﻥ ﺍﻻﺒﺘﺩﺍﺌﻴﺔ ﻭ ﺍﻝﻨﻬﺎﺌﻴﺔ ﺘﻜﻭﻨﺎﻥ ﻤﻌﺭﻭﻓﺘﻴﻥ ﻤﻥ ﻗﺒل‬M-N+1) ‫ﺘﻌﻠﻴﻤﺎﺕ ﻫﺫﻩ ﺍﻝﺤﻠﻘﺔ ﺘﻨﻔﺫ‬
(initialisation) ‫ ﻨﺴﺘﻐﻨﻲ ﻋﻠﻰ ﺘﻘﻴﻴﻡ ﺍﻝﻌﺒﺎﺭﺓ ﺍﻝﻤﻨﻁﻘﻴﺔ ﻭﺘﻌﻠﻴﻤﺔ ﺇﻋﻁﺎﺀ ﺍﻝﻘﻴﻤﺔ ﺍﻻﺒﺘﺩﺍﺌﻴﺔ‬،pour ‫ ﺒﺎﺴﺘﻌﻤﺎل ﺍﻝﺤﻠﻘﺔ‬: ‫ﻤﻼﺤﻅﺔ‬
. (incrémentation) ‫ﻭﺘﻌﻠﻴﻤﺔ ﺍﻝﺘﺯﺍﻴﺩ‬
‫ﻤﺜﺎل‬
.100 ‫ ﻭ‬50 ‫ﺇﻅﻬﺎﺭ ﺍﻷﻋﺩﺍﺩ ﺍﻝﺼﺤﻴﺤﺔ ﺍﻝﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ‬
Pour i allant de 50 a 100 faire En Pascal:
Ecrire (i) For i:=50 to 100 do
Finpour Writeln(i);
‫ﻤﻼﺤﻅﺔ‬
: ‫ﻴﻤﻜﻥ ﺍﺴﺘﻌﻤﺎل ﺍﻝﺤﻠﻘﺔ ﺒﻌﺩﺍﺩ ﺘﻨﺎﺯﻝﻲ‬

v:=n ;
For v:=N down to M do While (v≥ m) do
Action; Begin
Action; ‫ﺍﻝﻌﺩ ﺍﻝﺘﻨﺎﺯﻝﻲ‬
v:=v- 1;
End;
‫ﻤﺜﺎل‬
10
9
For i:=10 down to 5 do 8 ‫ﺍﻝﺸﺎﺸﺔ‬
Writeln(i); 7
6
5

03 ‫ﺘﻤﺭﻴﻥ‬
.‫ﺃﻜﺘﺏ ﺨﻭﺍﺭﺯﻤﻲ ﻴﺴﻤﺢ ﺒﺘﺤﺩﻴﺩ ﻤﺘﻭﺴﻁ ﺩﺭﺠﺔ ﺍﻝﺤﺭﺍﺭﺓ ﻝﺸﻬﺭ ﻤﺎﺭﺱ ﻓﻲ ﻭﻻﻴﺔ ﺴﻁﻴﻑ‬

Algorithme Temperature En Pascal:


Variables Temp, moy, som : réel Program Temperature;
i : entier Var temp,moy,som : real;
Début i:
Som ←0 integer;
Begin
Pour i allant de 1 a 31 faire
Som:=0;
Répéter For i:=1 to 31 do
Ecrire(' entrez la tempereture du jour') Begin
Lire (temp) Repeat
Jusqu'à ((temp≥-50) et (temp ≤50)) Writeln('Entrez la température du jour');
Som← som + temp readln(temp);
Finpour Until ((temp>=-50) and (temp <=50));
moy← som ⁄ 31 som:=som+temp;
Écrire ('la température moyenne du mois End;
de mars a setif est:',moy) moy:=som ⁄ 31
Fin Writeln('la température moyenne du mois de
mars a setif est : ', moy);
End.

04 ‫ﺘﻤﺭﻴﻥ‬
4/5
Les boucles ‫ا"ـــت‬ ‫س ام ا‬ 2010/2009 ‫ ا
ع اك م وت‬
.‫ ﺴﻨﻭﻴﺎ‬%3.5 ‫ ﻋﻠﻤﺎ ﺃﻥ ﻨﺴﺒﺔ ﺍﻝﻔﺎﺌﺩﺓ ﻫﻲ‬،‫ﺩﺝ‬10000 ‫ﻴﻘﻭﻡ ﺒﻨﻙ ﺒﺈﻋﺎﺭﺓ ﺯﺒﺎﺌﻨﻪ ﻤﺒﻠﻎ ﻤﻥ ﺍﻝﻤﺎل ﺇﺫﺍ ﺘﺠﺎﻭﺯﺕ ﺍﻝﻔﺎﺌﺩﺓ ﻤﺒﻠﻎ‬
‫ﺃﻜﺘﺏ ﺨﻭﺍﺭﺯﻤﻲ ﻴﺴﻤﺢ ﺒﻘﺭﺍﺀﺓ ﺍﻝﻤﺒﻠﻎ ﺍﻝﻤﺨﺯﻥ ﻤﻥ ﻁﺭﻑ ﺯﺒﻭﻥ ﻭ ﺒﺘﺤﺩﻴﺩ ﻋﺩﺩ ﺍﻝﺴﻨﻭﺍﺕ ﺍﻝﻼﺯﻤﺔ ﻜﻲ ﺘﺘﺠﺎﻭﺯ ﺍﻝﻔﺎﺌﺩﺓ ﻤﺒﻠﻎ‬
.‫ﺩﺝ‬10000

Algorithme Banque En Pascal:


Constante taux= 0,035 Program Banque;
Variables som, intérêt: réel Cost taux=0,035;
i: entier Var som, intérêt:real;
Début i:integer;
Begin
Lire (som)
Readln(som);
i←0 i:=0;
Répéter Repeat
intérêt ← taux* som intérêt:=taux*som;
Som← som+ intérêt Som:=som+ intérêt;
i ←i+1 i:=i+1;
Jusqu'à (intérêt≥ 10000) Until (interet >= 10000);
Ecrire
La (‘LeFor
boucle nombre
avecd''années
down to nécessaire=‘,
: i) Writeln('le nombre d''années nécessaires = ', i) ;
Fin End.

5/5

Vous aimerez peut-être aussi