التكرارات والمصفوفات

اﻟﺘﻜﺮارت واﻟﻤﺼﻔﻮﻓﺎت   
ﻟﻘﺪ اﺧﺬﻧﺎ ﻓﻲ اﻟﺪرس اﻟﺴﺎﺑﻖ ﺷﯿﺌًﺎ ﻣﻦ أﺳﺎﺳﯿﺎت اﻟﺒﺮﻣﺠﺔ وھﻮ اﻟـﺪوال اﻟـﺸﺮﻃﯿﺔ وﺻـﻨﺎﻋﺔ اﻟﻘـﺮارات واﻵن ﻧﺤـﻦ ﻧﺘﺠـﻪ إﻟـﻰ ﺷـﻲ
ﻳﺤﺐ ﺟﮫﺎز اﻟﻜﻤﺒﯿﻮﺗﺮ ﻋﻤﻠﻪ وھﻮ اﻟﺘﻜﺮارت واﻟﻤﺼﻔﻮﻓﺎت .  
  
ﻓﻲ اﻟﻮاﻗﻊ ﻗﺪ ﻳﻜﻮن ﻟﺪﻳﻚ ﻳﻮﻣﯿًﺎ ﺷﻲ ﺗﻔﻌﻠﻪ ﺑﺸﻜﻞ ﻣﺴﺘﻤﺮ ﻣﺜﻞ اﻹﻓﻄﺎر ﻓﻲ اﻟﺼﺒﺎح اﻟﺒـﺎﻛﺮ واﻟﻨـﻮم ﻣـﺴﺎء ، اﻧـﻚ ﺗـﺴﺘﻤﺮ ﻋﻠـﻰ ھـﺬا
اﻟﺮوﺗﯿﻦ داﺋﻤًﺎ .... ﻧﺤﻦ ﻧﺴﻤﻲ ھﺬا اﻟﺸﻲ ﻓﻲ ﻟﻐﺔ اﻟﺒﺮﻣﺠﻪ اﻟﺘﻜﺮار .  
  
ھﻨﺎك ﺷﻲ آﺧﺮ ﻳﺴﻤﻲ اﻟﻤﺼﻔﻮﻓﺎت ... ﻓﻲ اﻟﻮاﻗﻊ ﻗﺪ ﻳﺤﺘﻮي درج ﻣﻜﺘﺒﻚ اﻟﺨﺎﺻﺔ ﺑﺎﻟﻜﺘﺐ ﻋﻠﻰ ﻋﺪة أدراج اﻟﺪرج اﻻول ﻣﻨﮫـﺎ ﻳﺤﺘـﻮي
ﻋﻠﻰ اﻟﻜﺘﺐ اﻹﺳﻼﻣﯿﺔ واﻟﺪرج اﻟﺜﺎﻧﻲ ﻣﻨﮫﺎ ﻳﺤﺘﻮي ﻋﻠﻰ اﻟﻜﺘﺐ اﻟﺮﻳﺎﺿﯿﺔ واﻟﺪرج اﻟﺜﺎﻟﺚ ﻳﺤﺘﻮي ﻋﻠـﻰ ﻛﺘـﺐ اﻟﺮﻳﺎﺿـﯿﺎت ... أو ﻟﻨﻔـﺮض
أﻧﻚ ﻣﺪرس ﻓﻲ إﺣﺪي اﻟﻤﺪارس وﻟﺪﻳﻚ ﺟﺪول ﻟﻠﺤﺼﺺ ﻓﻔﻲ اﻟﺤﺼﺔ اﻷوﻟﻰ ﻟﺪﻳﻚ ﻣﺜ ًﻼ ﺗﺪرﻳﺲ ﻣـﺎدة اﻟﺮﻳﺎﺿـﯿﺎت .... واﻟﺤـﺼﺔ اﻟﺜﺎﻧﯿـﺔ
ﻟﺪﻳﻚ ﺗﺪرﻳﺲ ﻣﺎدة اﻟﻌﻠﻮم واﻟﺜﺎﻟﺜﺔ ﻟﺪﻳﻚ ﺗﺪرﻳﺲ ﻣﺎدة اﻟﻜﯿﻤﯿﺎء .... إن ﺣﺼﺼﻚ ﻣﺮﺗﺒﺔ ﺑﺸﻜﻞ ﻣﻌﯿﻦ ﻣﻊ أﻧﮫﺎ ﻛﻠﮫﺎ ﺗﺴﻤﻲ ﺣﺼﺺ إﻻ أن
ﻛﻞ ﺣﺼﺔ ﺗﺨﺘﻠﻒ ﻋﻦ اﻷﺧﺮي ﻓﻲ اﻟﻤﺎدة ! وھﻲ ﻣﺮﺗﺒﻪ ﺑﺸﻜﻞ ﺗﺼﺎﻋﺪي (اﻟﺤﺼﺔ اﻻوﻟﻰ ، اﻟﺜﺎﻧﯿﺔ ،اﻟﺜﺎﻟﺜﺔ .....) .  
  
ﻧﺴﻤﻲ ھﺬه اﻟﺘﻘﻨﯿﺔ ﺑﺎﻟﻤﺼﻔﻮﻓﺎت .... اﻟﻤﺼﻔﻮﻓﺎت ﻋﺒﺎرة ﻋﻦ ﻣﺘﻐﯿﺮ اﺳﻤﻪ ﺛﺎﺑﺖ وﻟﮫﺎ اﻛﺜﺮ ﻣﻦ ﻗﯿﻤﺔ وﻛﻞ ﻗﯿﻤﺔ ﻟﮫﺎ رﻗـﻢ ﻣﻌـﯿﻦ وﻟﻜـﻲ
ﺗﺤﺼﻞ ﻋﻠﻰ اﻟﻘﯿﻤﺔ ﻓﺎﻧﻚ ﺗﻜﺘﺐ اﻟﻤﺘﻐﯿﺮ ﺛﻢ رﻗـﻢ اﻟﻘﯿﻤـﺔ اﻟﺘـﻲ ﻓﯿـﻪ، ﻻﻳـﺸﺘﺮط أن ﺗﻜـﻮن ھـﺬه اﻟﻘـﯿﻢ ﻣﺘﺴﻠـﺴﻠﺔ ﻓﻘـﺪ ﻳﻜـﻮن ھﻨـﺎك  
ﻗﯿﻤﺘﯿﻦ وﻟﻜﻞ ﻗﯿﻤﺔ رﻗﻢ ﻳﺨﺘﻠﻒ ﺗﻤﺎﻣًﺎ وﻳﺒﻌﺪ ﻛﻞ اﻟﺒﻌﺪ ﻋﻦ اﻟﻘﯿﻤﻪ اﻟﺜﺎﻧﯿﺔ ﻣﺜﺎل رﻗﻢ 1 و 258 ﻛﻼھﻤﺎ ﻣﺨﺘﻠﻒ ﺗﻤﺎﻣًﺎ وﻳﺒﺘﻌـﺪ ﻛـﻞ اﻟﺒﻌـﺪ
ﻋﻦ اﻻﺧﺮ .   
إن دﻣﺞ ﻣﯿﺰة اﻟﺘﻜﺮارات ﻣﻊ اﻟﻤﺼﻔﻮﻓﺎت ﻳﺴﺎﻋﺪك ﻋﻠﻰ ﺗﻮﻓﯿﺮ ﻋﺪد اﻷﺳﻄﺮ ﻟﻠﻜﻮد وﻳﺴﺎﻋﺪك ﻋﻠﻰ ﺻﻨﻊ أﺷـﯿﺎء ﻋﺠﯿﺒـﺔ ﻓـﻲ أﻗـﻞ ﻋـﺪد
ﻣﻤﻜﻦ ﻣﻦ اﻷﺳﻄﺮ .  
  
اﻟﺘﻜﺮارات    
اﻟﺘﻜﺮارات ﻋﺒﺎرة ﻋﻦ  ﺗﻜﺮار أﻣﺮ ﻣﻌﯿﻦ ﺑﻌﺪد ﻣﻌﯿﻦ ﻣﻦ اﻟﻤﺮات وﻟﻘﺪ اﺧﺬﻧﺎ ﺳﺎﺑﻘًﺎ اﻟﺪوال اﻟﺸﺮﻃﯿﺔ أو اﻟﻌﺒﺎرات اﻟﺸﺮﻃﯿﺔ ﺑﺎﻷﺻﺢ ﻓﻮﺟـﺪﻧﺎ
أن اﻟﻜﻮد اﻟﺬي ﻧﻜﺘﺒﻪ ﻓﻲ اﻟﻌﺒﺎرات اﻟﺸﺮﻃﯿﺔ ﻻ ﺗﺘﻨﻔﺬ إﻻ ﻋﻨﺪﻣﺎ ﻳﻜﻮن اﻟﺸﺮط ﺻﺤﯿ ًﺤﺎ   
أﻳﻀﺎ اﻟﺘﻜﺮارت ﻓﮫﻲ ﺗﺨﺘﺒﺮ اﻟﺸﺮط ﻓﺈذا ﻛﺎﻧﺖ ﻗﯿﻤﺘﻪ ﺻﺤﯿﺤﺔ ﻓﺈﻧﮫﺎ ﺗﻘﻮم ﺑﻌﻤﻞ اﻟﻜﻮد اﻟﻤﻄﻠﻮب ﺛﻢ ﺗﻘﻮم ﺑﺈﻋﺎدة اﺧﺘﺒﺎر اﻟﻘﯿﻤﺔ ﻓﺈذا ﻛـﺎن
ﺻﺤﯿﺤًﺎ ﻓﺈﻧﮫﺎ ﺗﻘﻮم ﺑﺈﻋﺎدة ﺗﻨﻔﯿﺬ اﻟﻜﻮد وھﻜﺬا ، أﻣﺎ ﻋﻨﺪﻣﺎ ﻻ ﻳﻜﻮن اﻟﺸﺮط ﺻﺤﯿ ًﺤﺎ ﻓﺈﻧﮫﺎ ﺗﺘﻮﻗﻒ ﻋﻦ ﺗﻨﻔﯿﺬ اﻟﻜﻮد وﻳـﺘﻢ اﻛﻤـﺎل اﻟﺒﺮﻧـﺎﻣﺞ
ﺑﺸﻜﻞ ﻋﺎدي ... ھﻨﺎك ﺛﻼﺛﺔ أﻧﻮاع ﻣﻦ اﻟﺘﻜﺮارات .  
إن أول داﻟﺔ ﻧﻘﻮم ﺑﺄﺧﺬھﺎ ﻓﻲ اﻟﺒﺪاﻳﺔ ھﻲ اﻟﺪاﻟﺔ while
اﻟﺘﻜﺮار while      
ﻟﻘﺪ ﻗﻤﻨﺎ ﺑﺄﺧﺬ اﻟﺘﻜﺮار while ﻷﻧﻪ ﺑﺴﯿﻂ ﺟﺪًا وﺻﯿﻐﻪ ھﺬا اﻟﺘﻜﺮار ھﻲ  :





ﺳﯿﻘﻮم اﻟـPHP أوﻻ ﺑﺈﻋﻄﺎء اﻟﻤﺘﻐﯿﺮ d$ اﻟﻘﯿﻤﺔ 10 ﺛﻢ ﻳﻘﻮم ﺑﻌﺪ ﺑﺒﺪء اﻟﺘﻜﺮار while ﻓﺈذا ﻛﺎن اﻟﺸﺮط ﺻﺤﯿﺤًﺎ (وھﻮ أن اﻟﻤﺘﻐﯿﺮ أﺻﻐﺮ ﻣﻦ
اﻟﺮﻗﻢ 15) ﻓﺈﻧﻪ ﻳﻘﻮم ﺑﺘﻨﻔﯿﺬ اﻟﻜﻮد اﻟﺬي ﺑﯿﻦ اﻷﻗﻮاس وﻋﻤﻞ ھﺬا اﻟﻜﻮد أن ﻳﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻟﻤﺘﻐﯿﺮ ﺛﻢ  ﻳﻘﻮم ﺑﺈﺿﺎﻓﺔ واﺣﺪ ﻋﻠـﻰ اﻟﻘﯿﻤـﺔ
اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻤﺘﻐﯿﺮ d$ ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﺳﯿﺘﻢ اﺧﺘﺒﺎر اﻟﺸﺮط ﻣﺮة ﺛﺎﻧﯿﺔ ﻓﺈذا ﻛﺎن ﺻﺤﯿ ًﺤﺎ ﻓﺴﯿﺘﻢ ﻧﻔـﺲ اﻟﻌﻤﻠﯿـﺔ ﺣﺘـﻲ ﻳﻜـﻮن اﻟـﺸﺮط
ﻏﯿﺮ ﺻﺤﯿﺢ ﻓﯿﺘﻮﻗﻒ ﻋﻨﺪھﺎ اﻟﺘﻜﺮار وﻳﺘﻢ إﻛﻤﺎل اﻟﻜﻮد اﻟﺘﻲ ﺗﻘﻊ ﺑﻌﺪ اﻻﻗﻮاس .  
  
إذا ﻟﻢ ﺗﻘﻢ ﺑﻮﺿﻊ ﺣﺪ ﻟﻠﺘﻜﺮار ﻓﻠﻦ ﻳﺘﻮﻗﻒ اﻟﺘﻜﺮار وﻗﺪ ﻳﻜﻮن ﻻﻧﮫﺎﺋﻲ .... 




ﻳﺘﻜﻮن ھﺬا اﻟﺘﻜﺮار ﻣﻦ ﺛﻼﺛﺔ أﻗﺴﺎم .... اﻟﻘﺴﻢ اﻷول ﻧﻀﻊ ﻓﯿﻪ ﻣﺘﻐﯿﺮ ﻳﺤﺘﻮي ﻋﻠﻰ ﻗﯿﻤﺔ ﺣﯿﺚ ﺳﯿﺒﺪأ اﻟﺘﻜـﺮار اﻟﻌﻤـﻞ ﻣـﻦ ﻋﻨـﺪ ھـﺬه
اﻟﻘﯿﻤﺔ   واﻟﻘﺴﻢ اﻟﺜﺎﻧﻲ ﻧﻜﺘﺐ ﻓﯿﻪ اﻟﺸﺮط اﻟﺬي ﺳﯿﻘﻮم اﻟﺘﻜﺮار ﺑﻔﺤﺼﻪ (واﻟﺬي ھﻮ ﻛﺎﻟﻤﻌﺘﺎد اﺧﺘﺒﺎر ﻟﻘﯿﻤﺔ اﻟﻤﺘﻐﯿﺮ ﻓﻲ اﻟﻘﺴﻢ اﻻول  
) واﻟﻘﺴﻢ اﻟﺜﺎﻟﺚ ﻧﻀﻊ ﻓﯿﻪ اﻟﻌﻤﻞ اﻟﺬي ﺳﯿﺠﺮي ﻋﻠﻰ اﻟﻤﺘﻐﯿﺮ ﻋﻨﺪ ﻛﻞ ﺗﻜﺮار ﺛﻢ ﻧﻘﻮم ﺑﻜﺘﺎﺑﺔ ﻛﻮد اﻟﺘﻲ ﺳﯿﻘﻮم ﺑﺘﻨﻔﯿﺬھﺎ اﻟﺘﻜﺮار ﺑـﯿﻦ
اﻟﻘﻮﺳﯿﻦ . 

ﻛﺄﻧﻨﺎ ﻧﻘﻮل ﻟﻠـphp ﺑﺸﻜﻞ ﻋﺎﻣﻲ أن ﻳﻘﻮم ﻓﻲ اﻟﺒﺪاﻳﺔ ﺑﺈﻋﻄﺎء اﻟﻤﺘﻐﯿﺮ u$ اﻟﻘﯿﻤﺔ 18 وﻗﺒﻞ ان ﻳﻘﻮم ﺑﺘﻨﻔﯿﺬ اﻟﻜﻮد ﻋﻠﯿﻪ أن ﻳﻘﻮم ﺑﺘﺤﻠﯿﻞ
اﻟﺸﺮط ﻓﺈذا ﻛﺎن اﻟﺸﺮط ﺻﺤﯿﺤًﺎ ﻓﺈﻧﻪ ﻳﻘﻮم ﺑﺈﻧﻘﺎص واﺣﺪ ﻣﻦ اﻟﻤﺘﻐﯿﺮ u$ وﻳﺘﻢ ﺗﻨﻔﯿﺬ اﻟﻜﻮد ﺣﺘـﻲ ﻳـﺼﺒﺢ اﻟﻤﺘﻐﯿـﺮu$ ﻗﯿﻤﺘـﻪ 9  ﻓﯿﻘـﻮم
اﻟـPHP آﻧﺬاك ﺑﺎﻟﺨﺮوج ﻣﻦ اﻟﺘﻜﺮار واﻟﺬھﺎب اﻟﻲ اﻟﻜﻮد اﻟﺬي ﻳﻠﻰ اﻟﻘﻮﺳﯿﻦ  .  
اﻟﻤﺼﻔﻮﻓﺎت    
ﻟﻘﺪ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ اﻟﻤﺼﻔﻮﻓﺎت ﺳﺎﺑﻘًﺎ ﺑﺸﻜﻞ ﺑﺴﯿﻂ وﺣﺎن اﻟﻮﻗﺖ اﻵن ﻟﻨﻌﺮﻓﮫﺎ وﻧﻌـﺮف ﻛﯿﻔﯿـﺔ ﻋﻤﻠﮫـﺎ . اﻟﻤـﺼﻔﻮﻓﺎت ﻋﺒـﺎرة ﻋـﻦ ﻣﺘﻐﯿـﺮ
وھﺬا اﻟﻤﺘﻐﯿﺮ ﻳﺤﺘﻮي ﻋﻠﻰ أﻛﺜﺮ ﻣﻦ ﻗﯿﻤﺔ أو ﻋﻨﺼﺮ (element) وﻛﻞ ﻋﻨﺼﺮ ﻟﻪ ﻓﮫﺮﺳﺔ (Index) ﺗﺒﺪأ ھﺬه اﻟﻔﮫﺮﺳﺔ ﻣﻦ اﻟـﺼﻔﺮ إذا ﻟـﻢ
ﺗﻘﻢ ﺑﺘﺤﺪﻳﺪھﺎ   


ﻻ ﻓﺮق ﺑﯿﻦ أن ﻧﻜﺘﺐ اﻟﻨﺺ اﻟﺤﺮﻓﻲ (aa) ﺑﯿﻦ ﻋﻼﻣﺘﻲ ﺗﻨﺼﯿﺺ ﻋﻨﺪ اﻟﻄﺒﺎﻋﻪ وﻋﻨﺪ ﻛﺘﺎﺑﺘﻪ ﺑﺪون ﻋﻼﻣﺎت ﺗﻨـﺼﯿﺺ ... ﺳـﯿﻘﻮم اﻟــPHP
ﺑﻤﻌﺮﻓﺔ ذﻟﻚ ﺗﻠﻘﺎﺋﯿًﺎ .



ﻋﻨﺪﻣﺎ ﻧﺮﻳﺪ ﺗﻐﯿﯿﺮ أي ﻋﻨﺼﺮ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ ﻓﯿﻤﻜﻨﻨﺎ ﻋﻤﻞ ذﻟﻚ ﺑﺒﺴﺎﻃﻪ .


ﻻﺣﻆ أﻧﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻐﯿﯿﺮ اﻟﻘﯿﻤﺔ ﻣﻦ (ahmed) اﻟﻰ (ﻟﻤﯿﺎء) ....ﻃﺮﻳﻘﺔ ﺑﺴﯿﻄﺔ أﻟﯿﺲ ﻛﺬﻟﻚ  : )   
  
ﻗﺮاءه اﻟﻤﺼﻔﻮﻓﺎت و اﺳﺘﺨﺮاج اﻟﻘﯿﻢ  
ﺗﻜﻠﻤﻨﺎ ﺳﺎﺑﻘﺎ ﻋﻦ اﻟﺘﻜﺮار For   
ﻳﻤﻜﻨﻨﺎ اﺳﺘﺨﺮاج ﻋﻨﺎﺻﺮ ﻣﺼﻔﻮﻓﺔ وﻃﺒﺎﻋﺘﮫﺎ ﻓﻲ ﺑﺴﺎﻃﺔ وﺗﻮﻓﯿﺮ وﻗﺖ ﻋﻦ ﻃﺮﻳﻖ اﻟﺘﻜﺮارات   
  
ﻟﻨﻔﺮض أن ﻟﺪﻳﻚ ھﺬه اﻟﻤﺼﻔﻮﻓﺔ 




ﻻﺣﻆ أﻧﻨﺎ ﺑﺪأﻧﺎ اﻟﻌﺪاد ﺑﺎﻟﻘﯿﻤﺔ ﺻﻔﺮ ﺛﻢ اﺷﺘﺮﻃﻨﺎ أن ﻳﻜﻮن أﻗﻞ ﻣﻦ 4 ﻷن آﺧﺮ ﻋﻨﺼﺮ ﻓﻲ اﻟﻤـﺼﻔﻮﻓﺔ رﻗـﻢ ﻓﮫﺮﺳـﺘﻪ 3 ﺛـﻢ ﻗﻤﻨـﺎ ﺑﺠﻌﻠـﻪ
ﻳﺰداد ﺑﻘﯿﻤﺔ 1 ﻷﻧﻨﺎ ﻧﺮﻳﺪ ﻃﺒﺎﻋﺔ ﺟﻤﯿﻊ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ وﻗﻤﻨﺎ ﺑﻮﺿﻊ رﻗﻢ اﻟﻌﺪاد ﻓﻲ ﺧﺎﻧﺔ اﻟﻔﮫﺮﺳﺔ وﻋﻠﻰ ذﻟﻚ ﺳﯿﺘﻢ ﻓﻲ ﻛﻞ ﺗﻜـﺮار
ﻃﺒﺎع ﻋﻨﺼﺮ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺬي ﻓﮫﺮﺳﺘﻪ ﺗﺴﺎوي رﻗﻢ اﻟﻌﺪاد .  
  
ﻟﻘﺪ ﺗﻜﻠﻤﻨﺎ ﺳﺎﺑﻘًﺎ ﻓﻲ درس اﻟﻨﻤﺎذج ﻋﻦ إﺧﺮاج اﻟﻘﯿﻢ ﻣﻦ ﻗﺎﺋﻤﺔ ﻋﻠﻰ ﺷﻜﻞ ﻣﺼﻔﻮﻓﺔ . 

ﻟﻘﺪ ﻋﺮﺿﻨﺎ ﻓﻲ اﻟﻘﺎﺋﻤﺔ ﺧﻤﺴﺔ ﻋﻨﺎﺻﺮ ... ﻻﺣﻆ أﻧﻨﺎ وﺿﻌﻨﺎ ﻓﻲ اﺳﻢ اﻟﻤﺘﻐﯿﺮ ﻟﻠﻘﺎﺋﻤﺔ ﻗﻮﺳـﯿﻦ [  ]  ﻟﻜـﻲ ﻳﺘﻌـﺮف اﻟــhtml ﻋﻠـﻰ أﻧـﻪ
ﺳﯿﺘﻢ ﺗﺨﺰﻳﻦ اﻟﺒﯿﺎﻧﺎت ﺗﻠﻘﺎﺋﯿًﺎ ﺑﻌﺪ ذﻟﻚ ﻗﺎم اﻟـPHP ﺑﻔﮫﺮﺳﺔ اﻟﻌﻨﺎﺻﺮ اﻟﺘﻲ ﺗﻢ إرﺳﺎﻟﮫﺎ ﻣـﻦ ﻗﺒـﻞ اﻟﻌﻤﯿـﻞ ﺳـﻮاء ﻛﺎﻧـﺖ ﺛﻼﺛـﺔ أو أرﺑﻌـﺔ
وﻟﻜﻨﮫﺎ ﺑﺎﻟﻄﺒﻊ ﻟﻦ ﺗﺰﻳﺪ ﻋﻠﻰ ﺧﻤﺴﺔ  .... ﻋﻠﻰ ذﻟﻚ ﺳﯿﻜﻮن آﺧﺮ رﻗﻢ ﺗﻨﺘﮫﻲ ﺑﻪ اﻟﻤﺼﻔﻮﻓﺔ ھﻮ 4 .
أﺗﻮﻗﻊ أﻧﻚ اﻵن ﺑﺪأت ﺗﺤﺐ اﻟﻤﺼﻔﻮﻓﺎت  .... ﻳﻤﻜﻨﻨﺎ ﺻﻨﺎﻋﺔ اﻟﻘﺎﺋﻤﺔ ﻋﻦ ﻃﺮﻳﻖ اﻟﻤﺼﻔﻮﻓﺔ أﻳﻀًﺎ .... 



ﻋﻨﺪ اﺧﺘﯿﺎر اﻟﻤﺴﺘﺨﺪم ﻟﻠﻘﯿﻤﺔ ﺳﯿﺘﻢ وﺿﻌﮫﺎ ﻓﻲ اﻟﻤﺘﻐﯿﺮ s$  ﻳﻤﻜﻨﻚ ﻣﺮاﺟﻌـﺔ درس اﻟﻨﻤـﺎذج ﻟﻜـﻲ ﺗﻔﻌـﻞ ذﻟـﻚ ، ھـﺬا اﻟﻤﺜـﺎل ﻳﻘـﻮم
ﺑﺼﻨﺎﻋﺔ ﻣﺼﻔﻮﻓﺔ ﻟﻠﻤﺸﺮوﺑﺎت ﺛﻢ ﻳﻘﻮم ﺑﺈﺧﺮاﺟﮫﺎ ﻓﻲ ﻗﺎﺋﻤﺔ ﻣﻤﺎ ﻳﻮﻓﺮ ﻋﻠﯿﻨﺎ اﻟﻮﻗﺖ ﻓﻲ ﻛﺘﺎﺑﺔ اﻟﻜﻮد ﻓﻠـﻮ ﻛـﺎن ﻟـﺪﻳﻚ ﻣـﺜﻼ ﺣـﻮاﻟﻰ ﻣﺌـﺔ
دوﻟﺔ ﻓﯿﻤﻜﻨﻚ ﻣﺜﻼ وﺿﻌﮫﺎ ﻓﻲ ﻣﺼﻔﻮﻓﺔ وﺑﻌﺪ ذﻟﻚ ﺑﻨﺎء اﻟﻘﺎﺋﻤﺔ اﻟﺘﻲ ﺳﻮف ﺗﻘﻮم ﺑﺒﻨﺎء اﻟﻘﺎﺋﻤﺔ اﻟﺘﻲ ﺳﺘﺤﺘﻮي ﻋﻠﻰ ھـﺬه اﻟـﺪول ﻋـﻦ
ﻃﺮﻳﻖ اﻟﻤﺼﻔﻮﻓﺎت واﻟﺘﻜﺮارات .  
  
ﻗﻢ ﺑﺤﻔﻆ اﻟﺘﻐﯿﯿﺮات ﻓﻲ ﻣﻠﻒ إﻣﺘﺪاده php وﻗﻢ ﺑﻜﺘﺎﺑﺔ اﻟﻤﻠﻒ list.php اﻋﺘﻤﺎدا ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎﺗﻚ اﻟﺴﺎﺑﻘﺔ ﻓﻲ درس اﻟﻨﻤﺎذج  .



ﻻﺣﻆ أﻧﻨﺎ ﻛﺘﺒﻨﺎ اﻟﺪاﻟﺔ ()next ﻗﺒﻞ أن ﻧﻘﻮم ﺑﺎﻹﻧﺘﻘﺎل ﻟﻜﻲ ﻳﺘﻢ ﺗﻨﺸﯿﻂ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻧﻲ ﻓﻲ أول ﻣﺜﺎل وﻟﺘﻨﺸﯿﻂ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻟﺚ ﻓﻲ ﺛﺎﻟﺚ
ﻣﺜﺎل (وﻻﺣﻆ أﻧﻨﺎ ﻛﺘﺒﻨﺎ ()next ﻣﺮﺗﯿﻦ )  .  
  
ﻳﻤﻜﻨﻨﺎ اﻟﺮﺟﻮع ﻟﺘﻨﺸﯿﻂ اﻟﻌﻨﺼﺮ اﻟﺴﺎﺑﻖ ﺑﻮﺿﻊ اﻟﺪاﻟﺔ ()prev ﻓﻤﺜ ًﻼ ﻳﻤﻜﻨﻨﺎ ﺗﻌﺪﻳﻞ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻰ 

ﺳﯿﻘﻮم اﻟـPHP ﺑﺒﺴﺎﻃﺔ ﺑﺎﻟﺒﺤﺚ ﻋﻦ أﻛﺒﺮ رﻗﻢ ﻓﮫﺮﺳﺔ وﺑﻌﺪ ذﻟﻚ ﻳﺒﺪأ ﺑﺈﻋﻄﺎء اﻟﻔﮫﺮﺳـﺔ ﺗﺴﻠـ ًﺴﻼ ﺑﻌـﺪه ﻓـﺈذا ﻛﺎﻧـﺖ أرﻗـﺎم اﻟﻔﮫﺮﺳـﺔ
ﺣﺮوﻓًﺎ ﺑﺪأ ﻣﻦ اﻟﺼﻔﺮ ﻓﻲ اﻋﻄﺎء اﻟﺮﻗﻢ .. وﻻﺣﻆ ﻓﻲ ھﺬا اﻟﻤﺜﺎل ﺑﺄﻧﻪ ﻗﺎم ﺑﺈﻋﻄﺎء اﻟﻌﻨﺼﺮ اﻟﺮﻗﻢ 45 ﻷن أﻛﺒﺮ ﻋﻨﺼﺮ ﻓـﻲ اﻟﻤـﺼﻔﻮﻓﺔ ھـﻮ
44 وﻋﻠﻰ ذﻟﻚ ﻗﺎم ﺑﺈﻋﻄﺎء اﻷرﻗﺎم ﺗﺴﻠﺴ ًﻼ ﺑﻌﺪ ھﺬا اﻟﺮﻗﻢ .



ﻻﺣﻆ ﻣﻊ Hﻧﻨﺎ ﻃﻠﺒﻨﺎ ﻃﺒﺎﻋﺔ اﻟﻔﮫﺮﺳﺔ (index) إﻻ أﻧﻪ ﺗﻢ أﺧﺬ اﻟﻌﻨﺎﺻﺮ(elements) ﺑﺪ ًﻻ ﻣﻦ اﻟﻔﮫﺮﺳﺔ
ﻳﻤﻜﻨﻨﺎ ﺑﻮاﺳﻄﺔ ھﺬه اﻟﺪاﻟﺔ ﺻﻨﺎﻋﺔ أﺷﯿﺎء ﻣﻔﯿﺪه وﻛﻤﺜﺎل ﻟﺬﻟﻚ ﻟﻨﻔﺮض أن ﻟﺪﻳﻨﺎ ﻣﺼﻔﻮﻓﺔ أرﻗﺎم ھﻮاﺗﻒ وﻧﺮﻳﺪ أن ﻧﺨﺮج ھﺬه اﻟﻤـﺼﻔﻮﻓﺔ
ﻋﻠﻰ ﺟﺪول  html ﻓﺴﻨﺴﺘﻄﯿﻊ ﺻﻨﺎﻋﺔ ھﺬا اﻟﺠﺪول ﻋﻦ ﻃﺮﻳﻖ اﻟﺘﻜﺮار اﻟﺴﺎﺑﻖ ﺑﻜﻞ ﺳﮫﻮﻟﺔ .   
ﻣﺜﺎل :




ﻓﺮﺯ ﺍﻟﻤﺼﻔﻮﻓﺎﺕ   
ھﻨﺎك اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﺪوال اﻟﺘﻲ ﻳﻮﻓﺮھﺎ ﻟﻨﺎ اﻟـPHP ﻟﻔﺮز اﻟﻤﺼﻔﻮﻓﺎت . ﻧﺤﻦ ﺳﻨﺄﺧﺬ ﻧﻈﺮة ﻋﻦ اﻟﺨﻤﺴﺔ دوال اﻷﻛﺜﺮ اﺳﺘﺨﺪاﻣًﺎ :







اﻋﺘﻘﺪ اﻧﻚ ﻗﺪ ﻋﺮﻓﺖ اﻟﻔﺮق ﻓﻔﻲ اﻟﻤﺜﺎل اﻻول ﻗﺎﻣﺖ اﻟﺪاﻟﺔ  sort  ﺑﺎﺳﺘﺒﺪال اﻟﺤﺮوف ﺑﺄرﻗﺎم ﻓﻲ اﻟﻔﮫﺮﺳﺔ أﻣﺎ ﻓﻲ اﻟﻤﺜﺎل اﻟﺜﺎﻧﻲ ﻓﻘﺪ
ﺗﻢ وﺿﻊ اﻟﺤﺮوف ﻛﻤﺎ ھﻲ وﺗﻢ ﻓﺮزھﺎ ﻛﻤﺎ ﺗﻔﻌﻞ اﻟﺪاﻟﺔ sort ﻓﻲ اﻟﻔﺮز .  
ﺑﺎﺧﺘﺼﺎر ﻻﻳﻮﺟﺪ ﻓﺮق ﺑﯿﻦ sort و asort إﻻ ﻓﻲ أن اﻟﺪاﻟﺔ sort ﺗﺴﺘﺒﺪل ﻓﮫﺮﺳﺔ  اﻟﺤﺮوف ﺑﺄرﻗﺎم . 


ﺳﺘﺠﺪ أن اﻟﺪاﻟﺔ rsort ﺗﻘﻮم ﺑﻨﻔﺲ ﻋﻤﻠﯿﺔ اﻟﺪاﻟﺔ sort وﻟﻜﻦ ﺑﺸﻜﻞ ﻋﻜﺴﻲ   
أﻳﻀًﺎ اﻟﺪاﻟﺔ arsort ﺗﻘﻮم ﺑﻨﻔﺲ ﻋﻤﻠﯿﺔ asort وﻟﻜﻦ ﺑﺸﻜﻞ ﻋﻜﺴﻲ .  
ﻳﻤﻜﻨﻚ اﺳﺘﻌﻤﺎل ﻛﻞ ھﺬه اﻟﺪوال ﻓﻲ اﻟﻔﺮز ﻣﻊ اﻟﺤﺮوف اﻟﻌﺮﺑﯿﺔ ( إذا ﻛﺎن اﻟﺴﯿﺮﻓﺮ ﻳﺪﻋﻢ اﻟﻠﻐﺔ اﻟﻌﺮﺑﯿﺔ )   
ﻗﻢ ﺑﺘﻄﺒﯿﻖ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻰ : 








ﻟﻘﺪ اﻋﺘﻤﺪ اﻟـphp ﻋﻠﻰ index وﻟﻢ ﻳﻌﺘﻤﺪ ﻋﻠﻰ اﻟـelement ﻓﻲ اﻟﻔﺮز .





ﻓﻲ اﻟﻮاﻗﻊ ﺗﺤﺪﺛﻨﺎ ﻓﻲ اﻟﺪرس اﻟﺴﺎﺑﻖ ﻋﻦ ﻃﺮﻳﻘﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻨﻤﺎذج واﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﻤﺴﺘﺨﺪم وﺗﻜﻠﻤﻨﺎ ﻋﻦ أﺳﻠﻮﺑﯿﻦ
ﻟﻨﻘﻞ اﻟﺒﯿﺎﻧﺎت وھﻤﺎ GET و POST
ﻋﻨﺪﻣﺎ ﺗﺼﻞ اﻟﺒﯿﺎﻧﺎت ﻣﺤﻔﻮﻇﺔ ﻓﻲ ﻣﺘﻐﯿﺮات إﻟﻰ ﺻﻔﺤﺔ اﻟـPHP ﻓﺈﻧﻪ ﻳﻘﻮم ﺑﺘﻌﺮﻳﻔﮫﺎ ﺗﻠﻘﺎﺋﯿًﺎ وﻳﻤﻜﻨﻚ ﻃﺒﺎﻋﺔ اﻟﻤﺘﻐﯿﺮات وﻗﯿﻤﮫﺎ ﻣﺒﺎﺷـﺮة
ﻣﻦ ﻏﯿﺮ ﺗﻌﺮﻳﻒ .... وﻟﻜﻦ ھﺬه اﻟﻤﯿﺰة ﻓﻲ اﻟـPHP ﻳﻤﻜﻦ إﻟﻐﺎؤھﺎ ﻋﻦ ﻃﺮﻳﻖ اﻟﻤﻠﻒ PHP.INI وذﻟﻚ ﺑﺈﻏﻼق ﻣﯿﺰة register_globals
وذﻟﻚ ﺑﻮﺿﻊ off ﺑﺪﻻ ﻣﻦ on


اﻟﻮﺿﻊ اﻻﻓﺘﺮاﺿﻲ ﻟﮫﺎ ھﻮ on وﻟﻜﻦ ﺗﺴﺘﻄﯿﻊ إﻏﻼﻗﮫﺎ وﻗﺪ ﺗﻜﻮن ﻣﺴﺘﺎﺟﺮًا ﻋﻨﺪ ﻣﺰود ﺧﺪﻣﺔ وﻳﺐ وﺳﯿﻂ ﻓﯿﻘﻮم ﺑﺈﻏﻼق ھﺬه اﻟﻤﯿﺰة ﻣـﻦ
ﺑﺎب اﻟﺤﻤﺎﻳﺔ ﻟﯿﺲ إﻻ .... ﻻﺗﻘﻠﻖ ﻳﻤﻜﻨﻚ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت ﻓﮫﻲ ﻣﺎ زاﻟﺖ ﻣﻮﺟﻮدة وﻟﻜﻦ ﻳﺠﺐ ﻋﻠﯿـﻚ أن ﺗﻘـﻮم ﺑﺈﺳـﺘﺨﺪام ھـﺬه
اﻟﻤﺼﻔﻮﻓﺘﯿﻦ ﻟﻜﻲ ﺗﺴﺘﺨﺮج اﻟﺒﯿﺎﻧﺎت .


ﻟﻨﻔﺮض أﻧﻚ اﺷﺘﺮﻛﺖ ﻋﻨﺪ ﻣﺰود وﻳﺐ وﻛﺎن ﻗﺪ أﻏﻠﻖ ﻣﯿﺰة (register_globals) ﺣﺴﻨًﺎ ﻟﻨﻔﺮض أﻧﻚ ﻗﺪ ﺻﻨﻌﺖ ﻧﻤﻮذﺟـًﺎ ﻳـﺴﺘﺨﺪم ﻣﺮﺑـﻊ
ﻧﺺ وﻳﺤﻔﻆ ﻗﯿﻤﺘﻪ ﻓﻲ ﻣﺘﻐﯿﺮ اﺳﻤﻪ Dorrah ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﻳﻘﻮم ﺑﺈرﺳﺎل ھﺬه اﻟﻘﯿﻤﺔ ﺑﺎﺳﺘﺨﺪام اﻷﺳـﻠﻮب GET إ ًذا ﺳـﯿﻜﻮن ﺟـﺰء ﻣـﻦ
اﻟﻜﻮد ﻓﻲ اﻟﺼﻔﺤﺔ اﻷوﻟﻰ واﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﻨﻤﻮذج ﻛﺎﻟﺘﺎﻟﻰ


ﻃﺮﻳﻘﻪ ﺑﺴﯿﻄﺔ .... أﻟﯿﺲ ﻛﺬﻟﻚ  وﻟﻜﻦ .... ﻟﻨﻔﺘﺮض أن ﻣﺰود ﺧﺪﻣﺔ اﻟﻮﻳﺐ ﻟﺪﻳﻚ ﺣﺮﻳﺺ ﺟﺪًا وﻟﺬﻟﻚ ﻓﻘﺪ أﻟﻐـﻲ أﻳـﻀﺎ ﻣﯿـﺰة اﺳـﺘﻘﺒﺎل
ھﺬه اﻟﻘﯿﻢ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺎت .... ﻳﻤﻜﻨﻪ ذﻟﻚ ﻓﻲ ﻣﻠﻒ اﻟـphp.ini ﻓﻲ اﻋﺪادات اﻟـtrack_vars اﻟﺬي ﻳﻘﻮم ﺑﻤﻨﻊ اﻟﺴﯿﺮﻓﺮ ﻣـﻦ اﺳـﺘﺨﺪام
ھﺬه اﻟﻤﺼﻔﻮﻓﺎت (ھﺬه اﻟﻤﯿﺰة ﻳﻤﻜﻦ إﻟﻐﺎؤھﺎ ﻓﻲ php4 )  .... ﻋﻠﻰ ذﻟﻚ اﻧﺼﺤﻚ ﺑﺈرﺳﺎل رﺳـﺎل ﺗـﺬﻣﺮ وﺷـﻜﻮي إﻟـﻰ ﻣـﺰود اﻟﺨﺪﻣـﺔ
ﻟﺪﻳﻚ .. ﺗﻌﻠﻦ ﻓﯿﮫﺎ أن اﻷﻣﺮ اﺻﺒﺢ ﻻﻳﺤﺘﻤﻞ .
 
ﻣﺼﻔﻮﻓﻪ ﻣﺘﻌﺪده اﻻﺑﻌﺎد
ﻳﻤﻜﻨﻚ ﺻﻨﺎﻋﺔ ﻣﺼﻔﻮﻓﺎت ﺑﺪاﺧﻞ ﻣﺼﻔﻮﻓﺎت ﻋﻠﻰ ﺣﺴﺐ ﻣﺎﺗﺤﺘﺎﺟﻪ ﻓﻲ ﻣﻌﻠﻮﻣﺎﺗﻚ اﻟﺮﻳﺎﺿﯿﺔ ﻓﻘﺪ ﺗﺤﺘﺎج ً ﻣﺜﻼ إﻟﻰ إﻧﺸﺎء أﺷﯿﺎء ﻣﻌﻘـﺪة
(وﻣﻘﻠﻘﺔ ﻧﻔﺴﯿًﺎ) ﻧﺮﻳﺪ أن ﻧﺨﺒﺮك ﻋﻠﻰ أﻳـﺔ ﺣـﺎل أﻧـﻪ ﻳﻤﻜﻨـﻚ ﺻـﻨﺎﻋﺔ اﻟﻤـﺼﻔﻮﻓﺎت اﻟﻤﺘﻌـﺪدة اﻷﺑﻌـﺎد وﻳﻤﻜﻨـﻚ اﺳـﺘﺨﺪام ﺣﺘـﻲ ﻣﺎﺋـﺔ
ﻣﺼﻔﻮﻓﺔ ﻣﺘﺪاﺧﻠﺔ وﻟﻜﻦ ﻳﺠﺐ أن ﺗﺮاﻋﻲ ﺣﺠﻢ اﻟـﺬاﻛﺮة اﻟﻤـﺴﺘﺨﺪﻣﺔ ﻓـﻲ اﻟـﺴﯿﺮﻓﺮ ﻟـﺪﻳﻚ (وﻋﻠـﻰ ﻛـﻞ ﺣـﺎل إن اﺳـﺘﻄﻌﺖ أن ﺗﻘـﻮم
ﺑﺎﻟﺘﺮﻛﯿﺰ ﻓﻲ ﺻﻨﺎﻋﺔ ﻋﺸﺮ ﻣﺼﻔﻮﻓﺎت ﻣﺘﺪاﺧﻠﺔ ﺑﺪون أي ﻣﺸﺎﻛﻞ أو ﻣﺮض ﻧﻔﺴﻲ أو .... ﻓﺄﻧﺖ ﺗﺴﺘﺤﻖ ﺟﺎﺋﺰة) .




اﻟﺸﺮح  
ھﺬا اﻟﻤﺜﺎل ﻗـﺪ ﻳﻜـﻮن ﻏﺎﻣـ ًﻀﺎ ﺟـ ًﺪا ﻟﻜـﻦ ﻓﻜﺮﺗـﻪ ﺑـﺴﯿﻄﺔ أ ً وﻻ اﻓﺘـﺮض أﻧـﻚ ﺗﻌﻠـﻢ ﻋـﻦ list..each ﺟﯿـ ًﺪا وﺗﻌـﺮف ﺻـﯿﻐﺔ  اﻟﺘﻜـﺮار اﻟـﺬي
ﻳﺴﺘﺨﺪﻣﮫﻤﺎ .
اﻵن ﻟﺪﻳﻨﺎ ﻣﺼﻔﻮﻓﺔ ﺗﺘﻜﻮن ﻣﻦ رﻗﻤﯿﻦ ﻟﻠﻔﮫﺮﺳﺔ  ھﺬﻳﻦ اﻟﺮﻗﻤﯿﻦ ﻛﻞ واﺣﺪ ﻣﻨﮫﻤﺎ ﻋﻨﺼﺮه ﻋﺒﺎرة ﻋﻦ ﻣـﺼﻔﻮﻓﺔ ھـﺬه اﻟﻤـﺼﻔﻮﻓﺔ ﺗﺤﺘـﻮي
ﻋﻠﻰ ﻋﻨﺼﺮﻳﻦ ( وﻟﻨﺘﻨﺎﺳﻲ أﻧﮫﻤﺎ ﻳﺤﺘﻮﻳﺎن ﻋﻠﻰ أرﻗﺎم ﻓﮫﺮﺳﺔ  )  وھﻤﺎ اﺳﻢ ﺷﺨﺺ ورﻗﻢ ھﺎﺗﻔﻪ .
echo
ﻓﻲ أول ﺧﻄﻮة





اﻟﺸﺮح  
اﻟﺬي ﻗﻤﻨﺎ ﺑﻪ ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ھﻮ أﻧﻨـﺎ ﻗﻤﻨـﺎ ﺑﺈﻧـﺸﺎء ﻣـﺼﻔﻮﻓﺔ ﻟﻌـﺪه أﺷـﺨﺎص (boy$) وﻧﺮﻳـﺪ أن ﻧﻌـﺮف ﻣـﺮﺣﻠﮫﻢ اﻟﺪراﺳـﯿﺔ ﻓـﻲ
اﻟﺜﺎﻧﻮﻳﺔ ﻓﺄﻧﺸﺄﻧﺎ ﻟﻜﻞ ﻃﺎﻟﺐ ﻗﺎﺋﻤﺔ ﻣﻨﺴﺪﻟﺔ ﺑﻮاﺳﻄﺔ اﻟﺘﻜﺮار (list-each) ﺑـﺼﻨﺎﻋﺔ ﻗـﻮاﺋﻢ ﻣﻨـﺴﺪﻟﺔ وﺣﻘـﻮل ﻣﺨﻔﯿـﺔ ﻳـﺘﻢ ﺗﺨـﺰﻳﻦ ﻗـﯿﻢ
اﻟﺤﻘﻮل (اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ أﺳﻤﺎء اﻷﺷﺨﺎص) ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ  (boy$) وﺳﯿﺘﻢ ﺗﺨﺰﻳﻦ ﻧﺘـﺎﺋﺞ ﻛـﻞ اﻟﻘـﻮاﺋﻢ ﻓـﻲ ﻣـﺼﻔﻮﻓﺔ (school$) وﺑﻌﺪ أن ﻳﺨﺘﺎر اﻟﻤﺴﺘﺨﺪم اﻹﺟﺎﺑﺎت اﻟﺘﻲ ﺗﻨﺎﺳﺒﻪ وارﺳﺎل اﻟﺒﯿﺎﻧﺎت ﺳﯿﺘﻢ اﺳﺘﻘﺒﺎل اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘـﻲ ﻓﯿﮫـﺎ ﻧﺘـﺎﺋﺞ اﻟﻘـﻮاﺋﻢ اﻟﻤﻨـﺴﺪﻟﺔ
(school$) واﺳﺘﻘﺒﺎل اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﻲ ﻓﯿﮫﺎ أﺳﻤﺎء اﻷﺷﺨﺎص (boy$) وﻣﻦ ﺛﻢ ﻳﺘﻢ إﻧـﺸﺎء ﻣـﺼﻔﻮﻓﺔ ﺟﺪﻳـﺪة ﺑﺎﺳـﻢ []friendschool$
وﻳﺆﺧﺬ ﻣﻨﮫﺎ ﻣﻌﻠﻮﻣﺎت اﻟﻤﺼﻔﻮﻓﺘﯿﻦ وﻳﺘﻢ دﻣﺠﮫﺎ ﻓﯿﮫﺎ وﻣﻦ ﺛﻢ ﻳﺘﻢ  ﺑﺘﻜﺮار آﺧﺮ ﻃﺒﺎﻋﺔ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺘﯿﻦ boy$ وschool$ .




الانتقال الى درس الدوال و ترتيب الكود البرمجي







إجمالي مرات مشاهدة الصفحة