You are on page 1of 10

‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬

‫ﻣﺎ ھﻲ اﻟﻤﺼﻔﻮﻓﺎت‬
‫ﻗﺒﻞ أن ﻧﺬھﺐ ﻟﺘﻌﺮﻳﻒ ﻣﺎ ھﻲ اﻟﻤﺼﻔﻮﻓﺎت ‪ ،‬ھﺐ أﻧﻨﺎ ﻧﺮﻳﺪ ﻋﻤﻞ اﻟﺘﺎﻟﻲ ‪:‬‬
‫ﻧﺮﻳﺪ ﻃﺒﺎﻋﺔ اﻟﺮﺳﺎﺋﻞ اﻟﺘﺎﻟﯿﺔ‬
‫"ﻣﺮﺣﺒﺎ ﺑﻚ"‬
‫"ﻧﺤﻦ اﻷن ﻧﺘﻌﻠﻢ اﻟﻤﺼﻔﻮﻓﺎت"‬
‫"اﻟﺤﻤﺪ ﷲ"‬

‫ﻓﻌﻠﻲ ﺣﺴﺐ ﻣﺎ ﺗﻌﻠﻤﻨﺎه ﻓﻲ ﻓﺼﻞ اﻟﻤﺘﻐﯿﺮات‬


‫ﻓﺴﻮف ﻧﻘﻮم ﺑﺘﻌﺮﻳﻒ ﺛﻼث ﻣﺘﻐﯿﺮات ﺣﺘﻲ ﻧﺤﻔﻆ ﻓﯿﮫﺎ اﻟﺮﺳﺎﺋﻞ اﻟﺴﺎﺑﻘﺔ ‪ ،‬ﻛﻤﺎ ﻳﻠﻲ‬

‫ﺑﻚ" = ‪var Msg1‬‬ ‫;"ﻣﺮﺣﺒﺎ‬


‫= ‪var Msg2‬‬ ‫;"ﻧﺤﻦ اﻷن ﻧﺘﻌﻠﻢ اﻟﻤﺼﻔﻮﻓﺎت"‬
‫= ‪var Msg3‬‬ ‫;"اﻟﺤﻤﺪ ﷲ"‬

‫ﺛﻢ ﻧﻘﻮم ﺑﻄﺒﺎﻋﺔ ھﺬه اﻟﺮﺳﺎﺋﻞ ﻛﻤﺎ ﻳﻠﻲ‬

‫;) ‪alert( Msg1‬‬


‫;) ‪alert( Msg2‬‬
‫;) ‪alert( Msg3‬‬

‫ﺗﺨﯿﻞ أﻧﻚ ﺗﺮﻳﺪ ﻋﻤﻞ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ وﻟﻜﻦ ﻟﯿﺲ ﻋﻠﻲ ﺛﻼث ﻣﺘﻐﯿﺮات ﺑﻞ ﻋﻠﻲ ‪ ١٠٠‬ﻣﺘﻐﯿﺮ ﻧﺼﻲ أو ﻗﻞ ﻋﺪد ﻏﯿﺮ ﻣﺤﺪد‬
‫ﻣﻦ اﻟﻤﺘﻐﯿﺮات ‪،‬رﺑﻤﺎ ﻳﺴﺒﺐ ﻟﻚ ھﺬا إﺣﺴﺎس ﺑﺎﻟﻀﯿﻖ ﻟﻜﺜﺮة اﻷﻛﻮاد اﻟﺘﻲ ﺳﻮف ﺗﻜﺘﺐ ﻹﺗﻤﺎم ھﺬه اﻟﻤﮫﻤﺔ‬

‫ﻣﻦ ھﻨﺎ أﺗﺖ اﻟﺤﺎﺟﺔ ﻟﻌﻤﻞ ﻧﻮع ﺟﺪﻳﺪ ﻣﻦ اﻟﻤﺘﻐﯿﺮات وھﻮ ﻣﺎ ﻳﻄﻠﻖ ﻋﻠﯿﻪ اﻟﻤﺼﻔﻮﻓﺎت ‪Arrays‬‬

‫وﻟﻜﻦ ﻣﺎ ھﻲ اﻟﻤﺼﻔﻮﻓﺎت ‪Arrays‬‬

‫اﻟﻤﺼﻔﻮﻓﺎت ھﻲ ﻣﻦ إﺣﺪي أﻧﻮاع اﻟﻤﺘﻐﯿﺮات وﻟﻜﻦ ﻳﻤﻜﻨﻚ أن ﺗﺨﺰن ﺑﮫﺬا اﻟﻤﺘﻐﯿﺮ ﻗﯿﻤﺔ واﺣﺪة أو أﻛﺜﺮ ‪.‬‬

‫‪5‬‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬

‫إﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ‬
‫ﻳﻤﻜﻨﻨﺎ إﻧﺸﺎء اﻟﻤﺼﻔﻮﻓﺔ ﺑﻌﺪة ﻃﺮق ﻛﻤﺎ ﻳﻠﻲ‬

‫‪ - ١‬إﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﻓﺎرﻏﺔ ) ﻻ ﺗﺤﺘﻮي ﻋﻠﻲ ﻋﻨﺎﺻﺮ (‬

‫;)(‪var myArray = new Array‬‬

‫‪ - ٢‬إﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﻣﻜﻮﻧﺔ ﻣﻦ ﻋﻨﺎﺻﺮ ﻋﺪدھﺎ ‪ ) n‬ﺣﯿﺚ ‪ n‬ﺗﻤﺜﻞ ﻋﺪد ﺻﺤ ﯿﺢ ﻣﻮﺟﺐ (‬

‫;)‪var myArray = new Array(n‬‬

‫إي ﻳﻤﻜﻨﻚ ﺗﻌﺮﻳﻒ ﻣﺼﻔﻮﻓﺔ ﻣﻜﻮﻧﺔ ﻣﻦ ﺧﻤﺲ ﻋﻨﺎﺻﺮ ﻛﻤﺎ ﻳﻠﻲ‬

‫;)‪var myArray = new Array(5‬‬

‫‪ - ٣‬إﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ وﻣﻞء ﻋﻨﺎﺻﺮھﺎ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ‬

‫ﻹﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ وﻣﻞء ﻋﻨﺎﺻﺮھﺎ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ﻳﻮﺟﺪ ﻋﺪة ﻃﺮق ﻹﺗﻤﺎم ذﻟﻚ ‪:‬‬

‫أ‪-‬‬
‫;)"‪var myArray = new Array("item1"," item2"," item3‬‬

‫إي ﻳﻤﻜﻨﻚ ﺗﻌﺮﻳﻒ ﻣﺼﻔﻮﻓﺔ وإﻋﻄﺎء ﻗﯿﻢ ﻟﻌﻨﺎﺻﺮھﺎ ﺑﺸﻜﻞ ﻣﺒﺪﺋﻲ ﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‬
‫ﺳﻮف ﻧﻘﻮم ﺑﺈﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﺗﺴﻤﻲ ‪ empArray‬ﺗﺤﺘﻮي ﻋﻠﻲ اﺳﻤﺎء ﺛﻼث ﻣﻮﻇﻔﯿﻦ‬

‫اﷲ"(‪var empArray = new Array‬‬ ‫;)"أﺣﻤﺪ ﻣﺤﺴﻦ"‪",‬ﺣﻤﺪي ﻏﺎﻧﻢ"‪",‬ﻣﺤﻤﺪ ﻋﺒﺪ‬

‫ب‪-‬‬
‫;]"‪var myArray = new Array["item1"," item2"," item3‬‬

‫أو ﺑﺪون إﺳﺘﺨﺪام ﻛﻠﻤﺔ ‪ new Array‬ﻛﻤﺎ ﻳﻠﻲ‬

‫;]"‪var myArray = ["item1"," item2"," item3‬‬

‫إي ﻳﻤﻜﻨﻚ ﺗﻌﺮﻳﻒ ﻣﺼﻔﻮﻓﺔ وإﻋﻄﺎء ﻗﯿﻢ ﻟﻌﻨﺎﺻﺮھﺎ ﺑﺸﻜﻞ ﻣﺒﺪﺋﻲ ﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‬
‫ﺳﻮف ﻧﻘﻮم ﺑﺈﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﺗﺴﻤﻲ ‪ empArray‬ﺗﺤﺘﻮي ﻋﻠﻲ اﺳﻤﺎء ﺛﻼث ﻣﻮﻇﻔﯿﻦ‬

‫اﷲ"[‪var empArray = new Array‬‬ ‫;]"أﺣﻤﺪ ﻣﺤﺴﻦ"‪",‬ﺣﻤﺪي ﻏﺎﻧﻢ"‪",‬ﻣﺤﻤﺪ ﻋﺒﺪ‬


‫أو‬
‫اﷲ"[ = ‪var empArray‬‬ ‫;]"أﺣﻤﺪ ﻣﺤﺴﻦ"‪",‬ﺣﻤﺪي ﻏﺎﻧﻢ"‪",‬ﻣﺤﻤﺪ ﻋﺒﺪ‬

‫‪6‬‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬

‫اﻟﻤﺼﻔﻮﻓﺎت ﺑﺸﻜﻞ ﻋﺎم‬


‫اﻟﻤﺼﻔﻮﻓﺔ ﻧﺴﺘﻄﯿﻊ ﺗﺸﺒﯿﮫﮫﺎ ﺑﻌﻤﺎرة ‪ .‬اﻟﻌﻤﺎرة ﻳﺤﺘﻮي ﻛﻞ ﻃﺎﺑﻖ ﻣﻨﮫﺎ ﻋﻠﻰ ﺷﻘﺔ واﺣﺪة ‪.‬‬
‫ﻟﻨﻔﺮض أن اﻟﻌﻤﺎرة ﺗﺘﻜﻮن ﻣﻦ أرﺑﻌﺔ ﻃﻮاﺑﻖ‬
‫ﻓﻜﺎن اﻟﻄﺎﺑﻖ اﻷول ﻳﺴﻜﻦ ﺑﻪ اﻟﺤﺴﯿﻦ واﻟﻄﺎﺑﻖ اﻟﺜﺎﻧﻲ ﻳﺴﻜﻦ ﺑﻪ إﺳﻤﺎﻋﯿﻞ واﻟﻄﺎﺑﻖ اﻟﺜﺎﻟﺚ ﻳﺴﻜﻦ ﺑﻪ إﺑﺮاھﯿﻢ واﻟﻄﺎﺑﻖ‬
‫اﻟﺮاﺑﻊ ﻳﺴﻜﻦ ﺑﻪ ﻳﻮﺳﻒ ‪.‬‬

‫إذا ھﻨﺎ ﻟﺪﻳﻨﺎ ﻋﻤﺎرة ﺗﺘﻜﻮن ﻣﻦ أرﺑﻌﺔ ﻃﻮاﺑﻖ ﻛﻞ ﻃﺎﺑﻖ ﻳﺤﺘﻮي ﻋﻠﻰ ﺷﺨﺺ ﻓﮫﺬا ھﻮ اﻟﺤﺎل ﺑﺎﻟﻨﺴﺒﺔ‬
‫ﻟﻠﻤﺼﻔﻮﻓﺔ ﻓﺎﻟﻌﻤﺎرة ھﻲ أﺳﻢ اﻟﻤﺼﻔﻮﻓﺔ ‪ .‬وﻋﺪد اﻟﻄﻮاﺑﻖ اﻷرﺑﻌﺔ ھﻮ ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ واﻟﺘﻰ ھﻲ أرﺑﻌﺔ‬
‫واﻻﺷﺨﺎص اﻟﺬي ﻛﺎن ﻛﻞ ﺷﺨﺺ ﻣﻨﮫﻢ ﻳﺴﻜﻦ ﺑﻄﺎﺑﻖ ھﻢ ﻗﯿﻤﺔ ﻛﻞ ﻋﻨﺼﺮ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ ‪.‬‬

‫دﻋﻨﺎ ﻧﻄﺒﻖ ھﺬا اﻟﻤﺜﺎل ﺑﺸﻜﻞ ﺑﺮﻣﺠﻲ‬

‫ﻛﻠﻤﺔ ﻋﻤﺎرة ﻟﻨﺨﺘﺼﺮھﺎ وﻧﺴﻤﯿﮫﺎ ‪arr‬‬

‫;)"ﯾﻮﺳﻒ "‪",‬إﺑﺮاﻫﯿﻢ "‪",‬إﺳﻤﺎﻋﯿﻞ"‪",‬اﻟﺤﺴﯿﻦ"(‪var arr = new Array‬‬

‫إذا ھﻨﺎ اﻟﻤﻮﻗﻊ اﻷول ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ ﻳﺴﺎوي اﻟﺤﺴﯿﻦ واﻟﻤﻮﻗﻊ اﻟﺜﺎﻧﻲ ﻳﺴﺎوي إﺳﻤﺎﻋﯿﻞ واﻟﻤﻮﻗﻊ اﻟﺜﺎﻟﺚ ﻳﺴﺎوي‬
‫إﺑﺮاھﯿﻢ واﻟﻤﻮﻗﻊ اﻟﺮاﺑﻊ ﻳﺴﺎوي ﻳﻮﺳﻒ ‪.‬‬

‫وﻟﻜﻦ ﻋﺎدة ﻓﻲ اﻟﻤﺼﻔﻮﻓﺎت ﻧﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ وﻟﯿﺲ ﻣﻦ اﻟﻮاﺣﺪ أي ﻧﻘﻮل ﻣﻮﻗﻊ اﻟﺼﻔﺮ ﻳﺴﺎوي اﻟﺤﺴﯿﻦ و اﻟﻤﻮﻗﻊ‬
‫اﻻول ﻳﺴﺎوي إﺳﻤﺎﻋﯿﻞ واﻟﻤﻮﻗﻊ اﻟﺜﺎﻧﻲ ﻳﺴﺎوي إﺑﺮاھﯿﻢ واﻟﻤﻮﻗﻊ اﻟﺜﺎﻟﺚ ﻳﺴﺎوي ﻳﻮﺳﻒ ‪.‬‬

‫ﻟﻌﻠﻚ إﻧﺰﻋﺠﺖ ﻣﻦ ذﻟﻚ ‪ ،‬ﻻ داﻋﻲ ﻟﮫﺬا اﻹﻧﺰﻋﺎج أﻋﺘﺒﺮ اﻟﻌﻤﺎرة ﺗﺘﻜﻮن ﻣﻦ ﻃﺎﺑﻖ أرﺿﻲ وﻃﺎﺑﻖ أول وﻃﺎﺑﻖ ﺛﺎﻧﻲ وﻃﺎﺑﻖ‬
‫ﺛﺎﻟﺚ ‪ ،‬إذا اﻟﺤﺴﯿﻦ ﺳﻮف ﻳﺴﻜﻦ ﻓﻲ اﻟﻄﺎﺑﻖ اﻻرﺿﻲ وھﻮ اﻟﺼﻔﺮ أي ﻣﻮﻗﻊ رﻗﻢ ﺻﻔﺮ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ ‪ ،‬وإﺳﻤﺎﻋﯿﻞ ﻓﻲ‬
‫اﻟﻄﺎﺑﻖ اﻷول أي اﻟﻤﻮﻗﻊ اﻻول ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ وھﻜﺬا ‪.‬‬

‫ﺗﻤﺜﯿﻞ اﻟﻤﺼﻔﻮﻓﺔ‬
‫ﻧﻘﺼﺪ ﺑﺘﻤﺜﯿﻞ اﻟﻤﺼﻔﻮﻓﺔ اي ﻛﯿﻔﯿﺔ ﺗﻤ ﺜﯿﻞ اﻟﻤﺼﻔﻮﻓﺔ ﺑﺪاﺧﻞ ذاﻛﺮة اﻟﺠﮫﺎز‬
‫ﻓﻌﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻛﯿﻒ ﻳﺘﻢ ﺗﻤﺜﯿﻞ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﺎﻟﯿﺔ ﺑﺬاﻛﺮة اﻟﺠﮫﺎز‬

‫;)‪var a = new Array(50,90,20,45‬‬

‫ﻳﻮﺿﺢ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻛﯿﻔﯿﺔ ﺗﻤﺜﯿﻞ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺴﺎﺑﻘﺔ‬

‫‪7‬‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬

‫ﻣﻞء اﻟﻤﺼﻔﻮﻓﺔ ﺑﺎﻟﻘﯿﻢ‬


‫ﻛﻤﺎ ﺗﻌﻠﻤﻨﺎ ﺳﺎﺑﻘﺎ ﻛﯿﻔﯿﺔ إﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ وﻣﻞء ﻋﻨﺎﺻﺮھﺎ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ‪ ،‬ﻳﻤﻜﻨﻨﺎ أﻳﻀﺎ إﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﺛﻢ ﻣﻞء‬
‫ﻋﻨﺎﺻﺮھﺎ ﺑﻌﺪ ذﻟﻚ ﻛﻤﺎ ﻳﻠﻲ‬

‫;)‪var arr = new Array(3‬‬

‫‪//‬‬ ‫ﻧﻘﻮم ﺑﻤﻞء اﻟﻤﺼﻔﻮﻓﺔ‬


‫;‪arr[0] = 100‬‬
‫;‪arr[1] = 30‬‬
‫;‪arr[2] = 230‬‬

‫ﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﺗﻢ ﺗﺤﺪﻳﺪ ﻣﺼﻔﻮﻓﺔ ﻣﻜﻮﻧﺔ ﻣﻦ ﺛﻼث ﻋﻨﺎﺻﺮ ﻛﻤﺎ ﻳﻠﻲ‬

‫;)‪var arr = new Array(3‬‬

‫ﺛﻢ ﻗﻤﻨﺎ ﺑﺘﺤﺪﻳﺪ اﻟﻘﯿﻢ اﻟﻤﺨﺰﻧﺔ ﺑﻜﻞ ﻋﻨﺼﺮ ﻣﻦ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ إﻳﺘﺪاء ﻣﻦ اﻟﻌﻨﺼﺮ اﻟﻤﻮﺟﻮد ﺑﺎﻟﻤﻮﻗﻊ ﺻﻔﺮ ﻛﻤﺎ ﻳﻠﻲ‬

‫‪//‬‬ ‫ﻧﻘﻮم ﺑﻤﻞء اﻟﻤﺼﻔﻮﻓﺔ‬


‫;‪arr[0] = 100‬‬
‫;‪arr[1] = 30‬‬
‫;‪arr[2] = 230‬‬

‫‪8‬‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬

‫وﻟﺘﻘﻠﯿﻞ ﺣﺠﻢ اﻟﺒﺮﻧﺎﻣﺞ ﻳﻤﻜﻨﻨﺎ إﺳﺘﺨﺪام ﺣﻠﻘﺎت اﻟﺘﻜﺮار ﻟﻤﻞء اﻟﻤﺼﻔﻮﻓﺎت ﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‬

‫;)‪var arr = new Array(100‬‬

‫‪//‬‬ ‫ﻧﻘﻮم ﺑﻤﻞء اﻟﻤﺼﻔﻮﻓﺔ‬


‫{) ‪for( var i = 0; i<3; i++‬‬
‫;‪arr[i] = 30‬‬
‫}‬

‫{) ‪for( i = 3; i<6; i++‬‬


‫;‪arr[i] = 13‬‬
‫}‬

‫{) ‪for( i = 6; i<100; i++‬‬


‫;‪arr[i] = 40‬‬
‫}‬

‫وﺑﮫﺬه اﻟﻄﺮﻳﻘﺔ ﺳﻮف ﻳﺘﻢ ﺗﺤﺪﻳﺪ ‪ ١٠٠‬ﻋﻨﺼﺮ ﻟﻠﻤﺼﻔﻮﻓﺔ ‪ arr‬ﻛﻤﺎ ﻳﻠﻲ‬

‫;)‪var arr = new Array(100‬‬

‫ﺛﻢ ﻳﺘﻢ ﺗﺨﺰﻳﻦ اﻟﻘﯿﻤﺔ ‪ ٣٠‬ﺑﺪاﺧﻞ اﻟﺜﻼث ﻋﻨﺎﺻﺮ اﻷوﻟﻲ ﻟﻠﻤﺼﻔﻮﻓﺔ ﻛﻤﺎ ﻳﻠﻲ‬

‫{) ‪for( var i = 0; i<3; i++‬‬


‫;‪arr[i] = 30‬‬
‫}‬

‫ﺛﻢ ﻳﺘﻢ ﺗﺨﺰﻳﻦ اﻟﻘﯿﻤﺔ ‪ ١٣‬ﺑﺎﻟﻌﻨﺎﺻﺮ اﻟﺜﻼث اﻟﺘﺎﻟﯿﺔ ﻛﻤﺎ ﻳﻠﻲ‬

‫{) ‪for( i = 3; i<6; i++‬‬


‫;‪arr[i] = 13‬‬
‫}‬

‫ﺛﻢ ﻳﺘﻢ ﺗﺨﺰﻳﻦ اﻟﻘﯿﻤﺔ ‪ ٤٠‬ﺑﺎﻟﻌﻨﺎﺻﺮ اﻟﺘﺎﻟﯿﺔ ﻟﻠﻤﺼﻔﻮﻓﺔ ﻛﻤﺎ ﻳﻠﻲ‬

‫{) ‪for( i = 6; i<100; i++‬‬


‫;‪arr[i] = 40‬‬
‫}‬

‫‪9‬‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬

‫ﺗﻤﺮﯾﻦ ﻛﺘﺎﺑﺔ ﻣﺤﺘﻮﯾﺎت اﻟﻤﺼﻔﻮﻓﺔ‬

‫>‪<HTML dir=rtl‬‬
‫>‪ </Title‬اﻟﻤﺼﻔﻮﻓﺎت >‪<Title‬‬
‫>‪<HEAD‬‬
‫>"‪<SCRIPT LANGUAGE="JavaScript‬‬
‫‪<!--‬‬
‫ﻣﺤﻤﺪ"(‪var empNameArray = new Array‬‬ ‫;)"أﺣﻤﺪ ﻣﺤﺴﻦ"‪",‬ﺣﻤﺪي ﻏﺎﻧﻢ"‪",‬ﻣﺤﻤﺪ ﻋﺒﺪ اﷲ "‪",‬اﻟﺤﺴﯿﻦ‬
‫ﻣﺤﻤﺪ"[ = ‪// var empNameArray‬‬ ‫;]" أﺣﻤﺪ ﻣﺤﺴﻦ"‪",‬ﺣﻤﺪي ﻏﺎﻧﻢ"‪ ",‬ﻣﺤﻤﺪ ﻋﺒﺪ اﷲ"‪",‬اﻟﺤﺴﯿﻦ‬

‫{)‪for( var i=0; i<4; i++‬‬


‫;) ]‪document.write(empNameArray[i‬‬
‫;) " >‪document.write( "<br‬‬
‫}‬
‫>‪//--‬‬
‫>‪</SCRIPT‬‬
‫>‪</HEAD‬‬
‫>‪</HTML‬‬

‫وﻳﻜﻮن اﻟﻨﺎﺗﺞ ﻛﻤﺎ ﻳﻠﻲ ‪:‬‬

‫‪10‬‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬

‫إﺳﺘﺨﺪام ﺟﻤﻠﺔ ‪ for in‬اﻟﺘﻜﺮارﻳﺔ‬

‫ﻛﻤﺎ ﻗﺪ ﻛﻨﺎ أﺷﺮﻧﺎ ﺑﺎﻟﺠﺰء اﻷول ﻣﻦ ھﺬا اﻟﻜﺘﺎب أن ﺟﻤﻠﺔ ‪ for in‬ﺗﺴﺘﺨﺪم ﻟﻌﻤﻞ ﺗﻜﺮار ﻟﻠﻤﺘﻐﯿﺮات ﻣﻦ اﻟﻨﻮع اﻟﻜﺎﺋﻨﻲ‬
‫‪ objects‬ﻣﺜﻞ اﻟﻤﺼﻔﻮﻓﺎت ‪Arrays‬‬

‫ﻻﺣﻆ ﺑﺎﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻋﻨﺪﻣﺎ ﻗﻤﻨﺎ ﺑﺈﺳﺘﺨﺪام ﺟﻤﻠﺔ ‪ ، for‬ﻓﻘﺪ إﺣﺘﺠﻨﺎ ﻟﺘﺤﺪﻳﺪ ﻋﺪد ﻣﺮات اﻟﺘﻜﺮر ﺑﻤﻘﺪار ﻳﺴﺎوي ﻃﻮل‬
‫اﻟﻤﺼﻔﻮﻓﺔ ) اي ﺑﻌﺪد ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ( ﻛﻤﺎ ﻳﻠﻲ‬

‫ﻣﺤﻤﺪ"(‪var empNameArray = new Array‬‬ ‫;)"أﺣﻤﺪ ﻣﺤﺴﻦ"‪",‬ﺣﻤﺪي ﻏﺎﻧﻢ"‪",‬ﻣﺤﻤﺪ ﻋﺒﺪ اﷲ "‪",‬اﻟﺤﺴﯿﻦ‬

‫{)‪for( var i=0; i<4; i++‬‬


‫;) ]‪document.write(empNameArray[i‬‬
‫;) " >‪document.write( "<br‬‬
‫}‬

‫وﻟﻜﻨﻨﺎ ﻋﻨﺪ إﺳﺘﺨﺪاﻣﻨﺎ ﻟﺠﻤﻠﺔ ‪ for in‬ﻻ ﻧﺤﺘﺎج ﻟﺘﺤﺪﻳﺪ ﻋﺪد ﻣﺮات اﻟﺘﻜﺮار ‪ ،‬ﻷﻧﮫﺎ ﺑﺸﻜﻞ ﺗﻠﻘﺎﺋﻲ ﺳﻮف ﻳﺘﻢ اﻟﺘﻜﺮار ﺑﻌﺪد‬
‫ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ‪.‬‬

‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬

‫( ‪for‬‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫)اﻟﻜﺎﺋﻦ ‪in‬‬ ‫{‬


‫‪//‬‬ ‫اﻷﻛﻮاد‬
‫}‬

‫ﻣﺜﺎل ﺗﻮﺿﯿﺤﻲ‬
‫ﻟﺤﺴﺎب ﻣﺠﻤﻮع ﻗﯿﻢ اﻟﻤﺼﻔﻮﻓﺔ‬

‫>‪<HTML dir=rtl‬‬
‫>‪ </Title‬اﻟﻤﺼﻔﻮﻓﺎت >‪<Title‬‬
‫>‪<HEAD‬‬
‫>"‪<SCRIPT LANGUAGE="JavaScript‬‬
‫‪<!--‬‬
‫;)‪var numArray = new Array(2,34,45,32,101,-2,0,3,1‬‬
‫;‪var sum = 0‬‬

‫{) ‪for( var index in numArray‬‬


‫;]‪sum += numArray[index‬‬

‫;) ]‪document.write(numArray[index‬‬
‫;) " >‪document.write( "<br‬‬
‫}‬

‫"(‪document.write‬‬ ‫"ﻣﺠﻤﻮع ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﯾﺴﺎوي ‪:‬‬ ‫;)‪+ sum‬‬


‫>‪//--‬‬
‫>‪</SCRIPT‬‬
‫>‪</HEAD‬‬
‫>‪</HTML‬‬
‫‪11‬‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬

‫وﻳﻜﻮن اﻟﻨﺎﺗﺞ ﻛﻤﺎ ﻳﻠﻲ ‪:‬‬

‫ﻣﺜﺎل‬

‫ﻧﺮﻳﺪ ﻋﻤﻞ داﻟﺔ ﻳﻤﺮر ﻟﮫﺎ اي ﻋﺪد ﻣﻦ اﻟﻤﻌﺎﻣﻼت ﺛﻢ ﺗﻘﻮم ﺑﺈرﺟﺎع اﻟﻘﯿﻤﺔ اﻷﻛﺒﺮ ﻟﮫﺬه اﻟﻘﯿﻢ‬
‫وﻗﺪ ﺗﻢ اﻹﺷﺎرة ﻟﮫﺬا اﻟﻤﺜﺎل ﺳﺎﺑﻘﺎ ﺑﺎﻟﺠﺰء اﻷول ﻣﻦ اﻟﻜﺘﺎب ﻛﻤﺎ ﻳﻠﻲ‬

‫>‪<HTML dir=rtl‬‬
‫اﻟﺪوال >‪<Title‬‬ ‫ﺗﻤﺮﯾﺮ اﻟﻘﯿﻢ إﻟﻲ‬ ‫>‪</Title‬‬
‫>‪<HEAD‬‬
‫>"‪<SCRIPT LANGUAGE="JavaScript‬‬
‫‪<!--‬‬

‫‪//‬‬ ‫ﺗﻌﺮﯾﻒ اﻟﺪاﻟﺔ‬


‫‪getMax‬‬
‫{ )( ‪function getMax‬‬
‫;‪var args = getMax.arguments‬‬
‫;]‪var max = args[0‬‬

‫{) ‪for( var i=1; i<args.length; i++‬‬


‫‪12‬‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬
‫) ]‪if( max < args[i‬‬
‫;]‪max = args[i‬‬
‫}‬

‫;‪return max‬‬
‫}‬

‫;) )‪alert( getMax(21,34‬‬


‫;) )‪alert( getMax(2,43,5‬‬
‫;) )‪alert( getMax(2,1,3,4,7,4,8,1‬‬

‫>‪//--‬‬
‫>‪</SCRIPT‬‬
‫>‪</HEAD‬‬
‫>‪</HTML‬‬

‫وﻟﺬﻟﻚ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ اﻟﺪاﻟﺔ ‪getMax‬‬

‫{ )( ‪function getMax‬‬
‫;‪var args = getMax.arguments‬‬
‫;]‪var max = args[0‬‬

‫{) ‪for( var i=1; i<args.length; i++‬‬


‫) ]‪if( max < args[i‬‬
‫;]‪max = args[i‬‬
‫}‬

‫;‪return max‬‬
‫}‬

‫وھﺬه اﻟﺪاﻟﺔ ﻳﻤﻜﻨﮫﺎ أﺳﺘﻘﺒﺎل اي ﻋﺪد ﻣﻦ اﻟﻤﻌﺎﻣﻼت ﻋﻨﺪ إﺳﺘﺪﻋﺎﺋﮫﺎ ﻛﻤﺎ ﻳﻠﻲ‬

‫;) )‪alert( getMax(21,34‬‬


‫;) )‪alert( getMax(2,43,5‬‬
‫;) )‪alert( getMax(2,1,3,4,7,4,8,1‬‬

‫وﻳﺘﻢ إﺳﺘﻘﺒﺎل اﻟﻤﻌﺎﻣﻼت اﻟﻤﻤﺮرة ﻟﮫﺬة اﻟﺪاﻟﺔ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﺎﺑﻌﺔ ﻟﻜﺎﺋﻦ ھﺬة اﻟﺪاﻟﺔ‬
‫وھﺬه اﻟﻤﺼﻔﻮﻓﺔ ﺗﺴﻤﻲ ‪ arguments‬وھﻲ أﺣﺪ ي ﺧﺼﺎﺋﺺ اﻟﺪاﻟﺔ ‪ getMax‬ﻛﻤﺎ ﻳﻠﻲ‬

‫{ )( ‪function getMax‬‬
‫;‪var args = getMax.arguments‬‬

‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫}‬

‫وﺑﺬﻟﻚ ﻳﻜﻮن اﻟﻤﺘﻐﯿﺮ ‪ args‬ﻳﺸﯿﺮ إﻟﻲ ﻣﺼﻔﻮﻓﺔ ﻋﻨﺎﺻﺮھﺎ ھﻲ اﻟﻤﻌﺎﻣﻼت اﻟﻤﻤﺮرة ﻟﻠﺪاﻟﺔ ‪.‬‬

‫‪13‬‬
‫اﻟﻤﺼﻔﻮﻓﺎت اﻟﻤﺠﻤﻌﺔ ‪Associative Arrays‬‬
‫ﻛﻤﺎ ﺗﻌﻠﻤﻨﺎ ﺳﺎﺑﻘﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﻳﺘﻢ ﻋﻦ ﻃﺮﻳﻖ ﺗﺤﺪﻳﺪ ﻣﻮﻗﻊ ھﺬا اﻟﻌﻨﺼ ﺮ ﻓﻌﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻟﺘﻌﯿﻦ‬
‫ﻗﯿﻤﺔ اﻟﻌﻨﺼﺮ اﻷول ﺑﺎﻟﻤﺼﻔﻮﻓﺔ ‪ arr‬ﻧﻘﻮم ﺑﺈﺳﺘﺨﺪام ﻣﻮﻗﻊ ھﺬا اﻟﻌﻨﺼﺮ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ وھﻮ ﺻﻔﺮ ﻟﺬﻟﻚ ﻟﺘﻌﯿﻦ ﻗﯿﻤﺘﻪ ﻧﻜﺘﺐ‬
‫]‪ arr[0‬ﻛﻤﺎ ﻳﻠﻲ‬

‫ﻣﺤﻤﺪ"(‪var arr = new Array‬‬ ‫;)"أﺣﻤﺪ ﻣﺤﺴﻦ"‪",‬ﺣﻤﺪي ﻏﺎﻧﻢ"‪",‬ﻣﺤﻤﺪ ﻋﺒﺪ اﷲ"‪",‬اﻟﺤﺴﯿﻦ‬

‫‪//‬‬ ‫اﻟﻌﻨﺼﺮ اﻷول ﺑﻬﺎ‬


‫;) ]‪document.write( arr[0‬‬

‫ﻳﺘﻢاﻟﺜﺎﻧﻲ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﻣﻦ ﺧﻼل ﻣﻮاﻗﻌﮫﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺼﻔﻮﻓﺔ‬ ‫اﻟﺠﺰء‬
‫ﺳﻜﺮﺑﺖأﻧﻪ‬ ‫وﺑﺬﻟﻚ ﺑﺎﻟﺠﺎﻓﺎ‬
‫ﻧﺨﻠﺺ إﻟﻲ‬ ‫اﻟﺒﺮﻣﺠﺔ‬
‫أﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺼﻔﻮﻓﺎت اﻟﻤﺠﻤﻌﺔ ﻓﻼ ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻨﺎﺻﺮھﺎ ﻣﻦ ﺧﻼل ﻣﻮاﻗﻊ ﺗﻠﻚ اﻟﻌﻨﺎﺻﺮ ‪ ،‬ﺑﻞ ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻦ‬
‫ﺧﻼل أﺳﺘﺨﺪام ﻛﻠﻤﺎت ﻣﻔﺘﺎﺣﯿﻪ ‪ keys‬ﺣﺘﻲ ﻳﻤﻜﻨﻨﺎ اﻹﺷﺎرة ﻟﻌﻨﺼﺮ ﻣﺎ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ ‪.‬‬
‫ﺣﺬف ﻋﻨﺼﺮ ﻣﻦ ﻣﺼﻔﻮﻓﺔ‬
‫ﻃﺮﻳﻘﺔ ﻣﻞء اﻟﻤﺼﻔﻮﻓﺎت اﻟﻤﺠﻤﻌﺔ‬
‫ﻳﻤﻜﻨﻨﺎ ﺣﺬف ﻋﻨﺼﺮ ﻣﻦ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﺑﺈﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ ‪delete‬‬
‫;)(‪var earth = new Array‬‬
‫وھﻮ أﺣﺪ اﻟﻤﻌﺎﻣﻼت اﻟﺨﺎﺻﺔ ﻟﻠﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ‪.‬‬
‫;"‪earth["diameter"] = "7920 miles‬‬
‫ﻟﺬﻟﻚ إذا أردﻧﺎ ﺣﺬف اﻟﻌﻨﺼﺮ اﻟﺜﺎﻟﺚ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ ‪ oceans‬ﻧﻘﻮم ﺑﻌﻤﻞ اﻟﺘﺎﻟﻲ‬
‫;"‪earth["distance"] = "93 million mile‬‬
‫]"‪earth["year‬‬ ‫‪= "365.25‬‬
‫‪var oceans = new‬‬ ‫"‪Array("days‬‬
‫;)"‪Atlantic","Pacific"," Indian"," Arctic‬‬
‫;"‪earth["day"] = "24 hours‬‬

‫;]‪delete oceans[2‬‬ ‫‪//‬‬ ‫ﻟﺤﺬف اﻟﻌﻨﺼﺮ اﻟﺜﺎﻟﺚ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ‬


‫ﻳﻤﻜﻨﻨﺎ أﻳﻀﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻜﻠﻤﺎت اﻟﻤﻔﺘﺎﺣﯿﺔ ﻛﺄﻧﮫﺎ ﺧﺼﺎﺋﺺ ﺗﻢ إﺿﺎﻓﺘﮫﺎ إﻟﻲ ﻛﺎﺋﻦ اﻟﻤﺼﻔﻮﻓﺔ ) ﻛﻤﺎ ﺳﻮف ﻳﺘﻀﺢ ﺑﺸﻜﻞ‬
‫ﻣﻔﺼﻞ ﺑﺎﻟﺠﺰء اﻟﺜﺎﻟﺚ ﻣﻦ ھﺬا اﻟﻜﺘﺎب ( ﻛﻤﺎ ﻳﻠﻲ‬
‫ﻣﺎ ھﻲ اﻟﺘﻐﯿﺮات اﻟﺘﻲ ﺣﺪﺛﺖ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ‬
‫;)(‪var earth = new Array‬‬
‫‪.‬‬ ‫ﺑﺎﻟﻤﺼﻔﻮﻓﺔ‬ ‫‪ -‬أوﻻ ﺗﻢ ﺣﺬف اﻟﻌﻨﺼﺮ اﻟﺜﺎﻟﺚ‬
‫ﻓﺈذا ﻗﻤﻨﺎ ﺑﺘﻌﯿﻦ ﻗﯿﻤﺔ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻟﺚ ﻟﻠﻤﺼﻔﻮﻓﺔ ﺳﻮف ﻳﻌﻄﯿﻨﺎ اﻟﻘﯿﻤﺔ ‪ undefined‬ﻛﻤﺎ ﻳﻠﻲ‬
‫;"‪earth.diameter = "7920 miles‬‬
‫;)"‪var oceans = new Array(" Atlantic"," Pacific"," Indian"," Arctic‬‬
‫;"‪earth.distance = "93 million mile‬‬
‫"‪earth.year = "365.25 days‬‬
‫ﺑﺎﻟﻤﺼﻔﻮﻓﺔ ‪delete oceans[2]; //‬‬ ‫ﻟﺤﺬف اﻟﻌﻨﺼﺮ اﻟﺜﺎﻟﺚ‬
‫;"‪earth.day = "24 hours‬‬

‫]‪alert( " oceans[2‬‬ ‫]‪" + oceans[2‬‬


‫ﻟﻠﻤﺼﻔﻮﻓﺔ= ﻛﻤﺎ ﻳﻠﻲ‬ ‫;)ﺑﺎﻟﻨﺴﺒﺔ‬
‫اﻟﻌﻨﺼﺮ‬ ‫ﻻﺣﻆ أﻧﻨﺎ ﻻ ﻧﺴﺘﻄﯿﻊ اﻹﺷﺎرة ﻟﻌﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﺑﻮاﺳﻄﺔ ﻣﻮﻗﻊ‬

‫;)(‪var earth = new Array‬‬

‫;"‪earth.diameter = "7920 miles‬‬

‫;) ]‪alert( earth[0‬‬

‫‪14‬‬

‫ﻟﻜﻦ ﻻﺣﻆ أن ﻃﻮل اﻟﻤﺼﻔﻮﻓﺔ ﻟﻢ ﻳﺘﻐﯿﺮ ﻓﻤﺎزال ﻃﻮل اﻟﻤﺼﻔﻮﻓﺔ ﻳﺴﺎوي ‪٤‬‬ ‫‪-‬‬
‫وﺗﻜﻮن اﻟﻤﺼﻔﻮﻓﺔ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫;"‪oceans[0] = " Atlantic‬‬


‫;"‪oceans[1] = " Pacific‬‬
‫;"‪oceans[3] = " Arctic‬‬

You might also like