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