SlideShare a Scribd company logo
1 of 155
Download to read offline
‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﻣﻊ‬ ‫ﺗﻤﯿﺰ‬٢
‫اﻟﻤﺆﻟﻒ‬:‫ﻣﺤﻔﻮظ‬ ‫أﻧﯿﺲ‬ ‫إﺑﺮاھﯿﻢ‬ ‫أﻧﺲ‬
‫اﻟﺘﻌﺎﻣﻞ‬ ‫اﻟﻜﺘﺎب‬ ‫ﯾﺘﻨﺎول‬‫ﻣﻊ‬‫اﻟﻤﻠﻔﺎت‬‫اﻟﻤﺨﺘﻠﻔﺔ‬‫وﺷﺮح‬‫ﻣﺒﺴﻂ‬‫ّﺮ‬‫ﺴ‬‫وﻣﯿ‬‫ﻟﮭﺎ‬
‫واﻟﺘﻌﺮف‬‫إﻟﻰ‬‫اﻟﻤﺘﻐﯿﺮات‬‫واﻟﻤﺼﻔﻮﻓﺎت‬‫ﺑﺎﻹ‬‫ﺿﺎﻓﺔ‬‫إﻟﻰ‬‫اﻟﻤﻮﺿﻮع‬‫اﻟﺠﺪﯾﺪ‬
‫اﻟﻤﻤﯿﺰ‬‫أﻻ‬‫وھﻮ‬‫ﺑﺮﻣﺠﺔ‬‫اﻷ‬‫ﻟﻌﺎب‬‫ﺑﺎﺳﺘﺨﺪام‬‫ﻣﺤﺮﻛﺎت‬،‫ﻣﺨﺘﻠﻔﺔ‬‫ﻛﻤﺎ‬‫ﯾﺸﺘﻤﻞ‬
‫اﻟﻜﺘﺎب‬‫ﻋﻠﻰ‬‫أﻣﺜﻠﺔ‬‫ﻣﺨﺘﻠﻔﺔ‬‫ﻟﻠﺸﺮوح‬‫ﻣﺮﻓﻘﺔ‬‫ﻣﻊ‬‫اﻟﻜﺘﺎب‬.
2014
‫ﻋﻤﺎن‬-‫اﻷردن‬
‫ﻟﻠﻤﺆﻟﻒ‬ ‫ﻣﺤﻔﻮظﺔ‬ ‫واﻟﻨﺸﺮ‬ ‫اﻟﻄﺒﻊ‬ ‫ﺣﻘﻮق‬
‫اﻹھﺪاء‬:
‫وﻋﻨﺎﯾﺘﮭﺎ‬ ‫ﺑﺠﮭﺪھﺎ‬ ً ‫ﯾﻮﻣﺎ‬ ّ‫ﻋﻠﻲ‬ ‫ﺗﺒﺨﻞ‬ ‫ﻟﻢ‬ ‫اﻟﺘﻲ‬ ‫اﻟﻐﺎﻟﯿﺔ‬ ‫أﻣﻲ‬ ‫إﻟﻰ‬ ‫ھﺬا‬ ‫ﻛﺘﺎﺑﻲ‬ ‫أھﺪي‬
‫ﯾﺴﺎﻧﺪﻧﻲ‬ ‫اﻟﺬي‬ ‫اﻟﻌﺰﯾﺰ‬ ‫أﺑﻲ‬ ‫إﻟﻰ‬ ‫أھﺪﯾﮫ‬ ‫ﻛﻤﺎ‬‫طﺎﻟﻤﺎ‬ ‫اﻟﺬي‬ ‫أﺣﻤﺪ‬ ‫ﺷﻘﯿﻘﻲ‬ ‫وإﻟﻰ‬ ،ً ‫دوﻣﺎ‬
‫واﻟﻐﻨﯿﺔ‬ ‫اﻟﺜﺮﯾﺔ‬ ‫وآراﺋﮫ‬ ‫أﻓﻜﺎره‬ ‫ﻣﻦ‬ ‫اﻟﻜﺜﯿﺮ‬ ‫ﻟﻲ‬ ‫وﻗﺪم‬ ‫ﺟﺎﻧﺒﻲ‬ ‫إﻟﻰ‬ ‫وﻗﻒ‬.
‫اﻻﺳﺘﻔﺎدة‬ ‫إﻟﻰ‬ ‫ﯾﺴﻌﻰ‬ ‫ﻋﻠﻢ‬ ‫طﺎﻟﺐ‬ ‫ﻛﻞ‬ ‫إﻟﻰ‬ ‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ ‫أھﺪي‬ ‫أن‬ ‫ﯾﻔﻮﺗﻨﻲ‬ ‫وﻻ‬‫ﻣﻦ‬
‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﺮﻧﺎﻣﺞ‬ ‫ﻟﮫ‬ ‫ﯾﻔﺘﺤﮫ‬ ‫اﻟﺬي‬ ‫اﻟﻮاﺳﻊ‬ ‫اﻟﻌﺎﻟﻢ‬‫ﻣﺼﻤﻢ‬ ّ‫ﻞ‬‫ﻛ‬ ‫وإﻟﻰ‬ ،
‫وﻣﺒﺮﻣﺞ‬‫و‬ ‫ﻋﻤﻠﮫ‬ ‫ﺗﻄﻮﯾﺮ‬ ‫إﻟﻰ‬ ‫ﯾﮭﺪف‬‫ﺑﺮاﻣﺠﮫ‬‫وأﻟﻌﺎﺑﮫ‬.
‫وﻓﺤــﺺ‬ ‫ﺗﺪﻗﯿــــﻖ‬
‫أ‬.‫ﻣﺤﻔﻮظ‬ ‫اﻧﯿﺲ‬ ‫اﺑﺮاھﯿـﻢ‬
‫اﻟﻤﻘﺪﻣﺔ‬
‫اﻟﻨﺴﺨﺔ‬ ‫ﻧﺠﺎح‬ ‫ﺑﻌﺪ‬‫اﻷوﻟﻰ‬‫اﻟﻌﻤﻞ‬ ‫ﻗﺮرت‬ ‫واﻟﺤﻤﺪ‬ ‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ ‫ﻣﻦ‬‫و‬‫اﻟﺒﺪء‬
‫ﻟﺴﺎﺑﻘﺘﮭﺎ‬ ‫ﻣﻜﻤﻠﺔ‬ ‫ﺗﻜﻮن‬ ‫ﻛﻲ‬ ‫اﻟﺜﺎﻧﯿﺔ‬ ‫اﻟﻨﺴﺨﺔ‬ ‫ﺑﻜﺘﺎﺑﺔ‬‫أن‬ ‫ﷲ‬ ‫ﻣﻦ‬ ً ‫راﺟﯿﺎ‬‫اﻟﺒﻌﺾ‬ ‫ﺗﻔﯿﺪ‬
‫ﺑﻌﺾ‬ ‫ﻓﮭﻢ‬ ‫ﻓﻲ‬‫اﻷﻣﻮر‬‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﻋﺘﺒﺔ‬ ‫ﻣﻦ‬ ‫واﻻﻧﺘﻘﺎل‬‫إﻟﻰ‬‫اﺣﺘﺮاﻓﮫ‬
‫ﻓﯿﮫ‬ ‫واﻟﺘﻤﯿﺰ‬.
‫ﻓﻲ‬‫ھﺬه‬‫اﻹﺻﺪار‬‫ﺳﻮف‬‫ﻧ‬‫ﺑ‬ ‫ﺘﻨﺎول‬‫ﺈذ‬‫وﻣﺨﺘﻠﻔﺔ‬ ‫ﻣﮭﻤﺔ‬ ‫ﻣﻮاﺿﯿﻊ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ن‬
‫ﻣﻦ‬ ‫واﻟﺘﻌﻠﻢ‬ ‫ﺟﮭﺔ‬ ‫ﻣﻦ‬ ‫واﻟﺒﺮﻣﺠﺔ‬ ‫اﻟﺘﻄﺒﯿﻖ‬ ‫ﺑﻤﺘﻌﺔ‬ ‫ﯾﺸﻌﺮ‬ ‫اﻟﻘﺎرئ‬ ‫ﺗﺠﻌﻞ‬ ‫ﺳﻮف‬
‫ﺟﮭﺔ‬‫أ‬‫ﺧﺮى‬.
‫ﺳ‬‫ﻨ‬‫ﺘﺤﺪث‬‫ﻓﻲ‬‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬‫اﻟﻤﺨﺘﻠﻔﺔ‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬ ‫ﻋﻦ‬،‫ﻣﺒﺴﻂ‬ ‫وﺷﺮح‬
‫ّﺮ‬‫ﺴ‬‫وﻣﯿ‬‫ﻟﮭﺎ‬،‫واﻟﺘﻌﺮف‬‫إ‬‫ﺑﺎ‬ ‫واﻟﻤﺼﻔﻮﻓﺎت‬ ‫اﻟﻤﺘﻐﯿﺮات‬ ‫ﻟﻰ‬‫ﻹ‬‫ﺿﺎﻓﺔ‬‫إ‬‫اﻟﻤﻮﺿﻮع‬ ‫ﻟﻰ‬
‫اﻟﻤﻤﯿﺰ‬ ‫اﻟﺠﺪﯾﺪ‬‫أ‬‫ﺑﺮﻣﺠﺔ‬ ‫وھﻮ‬ ‫ﻻ‬‫اﻷ‬‫ﻟﻌﺎب‬‫ﻛﻤﺎ‬ ،‫ﻣﺨﺘﻠﻔﺔ‬ ‫ﻣﺤﺮﻛﺎت‬ ‫ﺑﺎﺳﺘﺨﺪام‬
‫ﻋﻠﻰ‬ ‫اﻟﻜﺘﺎب‬ ‫ﯾﺸﺘﻤﻞ‬‫أ‬‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻘﺔ‬ ‫ﻟﻠﺸﺮوح‬ ‫ﻣﺨﺘﻠﻔﺔ‬ ‫ﻣﺜﻠﺔ‬.
‫ّﻲ‬ ‫ﻛﻠ‬‫أﻣﻞ‬‫أن‬‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ ‫ﯾﻨﺎل‬‫إﻋﺠﺎﺑﻜﻢ‬‫ﺑﺈ‬‫ﻋﺰوﺟﻞ‬ ‫ﷲ‬ ‫ذن‬.
‫وراء‬ ‫ﻣﻦ‬ ‫وﷲ‬‫اﻟﻘﺼﺪ‬
‫اﻟﻔﮭﺮس‬
-‫اﻟﺘﻤﮭﯿﺪ‬:‫ﻣﺎذا‬‫ﯾﻠﺰم‬‫ﻗﺒﻞ‬‫أ‬‫ﻧﺒﺪأ‬ ‫ن‬
‫اﻟﺘﺎﺳﻌﺔ‬ ‫اﻟﻮﺣﺪة‬:
‫و‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬‫اﻟ‬‫ﻤﺘﻔﺮﻗﺎت‬‫اﻟ‬‫ﻤﮭﻤﺔ‬
١-‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬)١(
٢-‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬)٢(
٣-‫اﻟﻤﺼ‬‫ﻔ‬‫و‬ ‫ﻮﻓﺎت‬‫اﻟ‬‫ﺒﺪاﯾﺔ‬‫اﻟ‬‫ﺠﯿﺪة‬
٤-‫ﻣﮭﻤﺔ‬ ‫ﻣﺘﻨﻮﻋﺔ‬ ‫دوال‬)١(
٥-‫ﻣﮭﻤﺔ‬ ‫ﻣﺘﻨﻮﻋﺔ‬ ‫دوال‬)٢(
‫اﻟﻮﺣﺪة‬‫اﻟﻌﺎﺷﺮة‬:
‫ﺑﺮﻣﺠﺔ‬ ‫ﻓﻲ‬ ‫اﻟﺒﺪاﯾﺔ‬‫اﻷ‬‫ﻟﻌﺎب‬
١-‫ﺑﺮﻣﺠﺔ‬ ‫ﻋﻦ‬ ‫ﻧﺒﺬة‬‫اﻷ‬‫ﻟﻌﺎب‬‫وﻣﺤﺮﻛﺎﺗﮭﺎ‬
٢-‫إ‬‫ﻣﺤﺮك‬ ‫ﻋﺪاد‬TrueVision3D‫ﻟﻠﻌﻤﻞ‬
٣-‫رﺳﺎﻟﺔ‬ ‫ﺑﺮﻣﺠﺔ‬)HelloWorld(
٤-‫إ‬‫ﻋﺪاد‬Class Module‫اﻟﻌﻤﻞ‬ ‫ﻟﺘﺴﮭﯿﻞ‬
٥-‫إﺿﺎﻓﺔ‬‫ﻣﺠﺴﻤﺎت‬Mesh‫و‬‫إ‬‫وﺗﻌﺪﯾﻠﮭﺎ‬ ‫ﻛﺴﺎﺋﮭﺎ‬
٦-‫إﺿﺎﻓﺔ‬‫ﻣﺠﺴﻤﺎت‬Mdl‫وﺗﻌﺪﯾﻠﮭﺎ‬
٧-‫إﺿﺎﻓﺔ‬‫اﻷ‬‫رض‬)Terrain(
٨-‫إﺿﺎﻓﺔ‬‫ﻣﻜﻌﺐ‬‫اﻟﺴﻤﺎء‬)SkyBox(
٩-‫اﻟﺘﺤﻜﻢ‬‫ﺑﺎﻟﻜﺎﻣﯿﺮا‬)Camera Control 1(
١٠-‫ﺑﺎﻟﻜﺎﻣﯿﺮا‬ ‫اﻟﺘﺤﻜﻢ‬)Camera Control 2(
١١-‫اﻟﺤﺮﻛﺔ‬‫واﻟﺘﺼﺎدم‬)Movement&Collision1(
١٢-‫اﻟﺤﺮﻛﺔ‬‫واﻟﺘﺼﺎدم‬)Movement&Collision2(
١٣-‫إﺿﺎﻓﺔ‬‫ﺧﺮاﺋﻂ‬Bsp
١٤-‫ﻣﺘﻨﻮﻋﺔ‬ ‫ﺗﻄﺒﯿﻘﺎت‬)١(
١٥-‫ﻣﺘﻨﻮﻋﺔ‬ ‫ﺗﻄﺒﯿﻘﺎت‬)٢(
١٦-‫ﺑﺴﯿﻄﺔ‬ ‫ﻟﻌﺒﺔ‬ ‫ﻋﻤﻞ‬)١(
١٧-‫ﺑﺴﯿﻄﺔ‬ ‫ﻟﻌﺒﺔ‬ ‫ﻋﻤﻞ‬)٢(
١٨-‫ﺑﺴﯿﻄﺔ‬ ‫ﻟﻌﺒﺔ‬ ‫ﻋﻤﻞ‬)٣(
١٩-‫أ‬‫ﻣﺘﻨﻮﻋﺔ‬ ‫ﻓﻜﺎر‬‫ﻣﺴﺘﻘﺒﻠﯿﺔ‬ ‫ﻟﺘﻄﺒﯿﻘﺎت‬
‫ﯾﻠﺰﻣﻨﺎ‬ ‫ﻣﺎذا‬‫ﻗﺒﻞ‬‫أ‬‫ﻧﺒﺪأ‬ ‫ن‬:
‫ا‬ ‫ﺳﻮى‬ ‫اﻟﻜﺜﯿﺮ‬ ‫ﻣﻨﻚ‬ ‫ﯾﺘﻄﻠﺐ‬ ‫ﻻ‬‫ﻹ‬‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﻠﻐﺔ‬ ‫اﻟﺒﺴﯿﻂ‬ ‫ﻟﻤﺎم‬٦‫أ‬‫ﻣﺎ‬‫إ‬‫ذا‬
‫ﺿﻌﯿﻔ‬ ‫ﻛﻨﺖ‬ً ‫ﺎ‬‫إﻟﻰ‬ٍ‫ﺪ‬‫ﺣ‬‫اﻟﻨﺴﺨﺔ‬ ‫ﺑﺘﺤﻤﯿﻞ‬ ‫اﻟﻘﯿﺎم‬ ‫ﯾﻤﻜﻨﻚ‬ ‫اﻟﻠﻐﺔ‬ ‫ھﺬه‬ ‫ﻓﻲ‬ ‫ﻣﺎ‬‫اﻷوﻟﻰ‬‫ﻣﻦ‬
‫ﺷﺮﺣ‬ ‫ﺗﺤﻤﻞ‬ ‫ﻓﮭﻲ‬ ‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ً ‫ﺎ‬‫ﺟﯿﺪ‬ً ‫ا‬‫وﻛﺎﻓ‬ً ‫ﯿﺎ‬‫ﻟﻠﻐﺔ‬
‫ﻣﺠﺎﻧﻲ‬ ‫اﻟﻜﺘﺎب‬‫و‬‫ﺑﺎﻷ‬ ‫ﻣﺪﻋﻢ‬‫ﻣﺜﻠﺔ‬،‫و‬‫ھﻨﺎ‬ ‫ﻣﻦ‬ ‫اﻟﺘﺤﻤﯿﻞ‬ ‫ﯾﻤﻜﻨﻚ‬
http://www.kutub.info/library/book/6493
‫أو‬‫ا‬ ‫ﻋﻠﻰ‬ ‫اﻟﻤﻮاﻗﻊ‬ ‫ﻣﺨﺘﻠﻒ‬ ‫ﻣﻦ‬ ‫اﻟﻤﺨﺘﻠﻔﺔ‬ ‫اﻟﻜﺘﺐ‬ ‫ﺗﺤﻤﯿﻞ‬ ‫ﯾﻤﻜﻨﻚ‬‫ﻹ‬‫ﻧﺘﺮﻧﺖ‬
‫وﺷﺨﺼﯿﺎ‬‫أﻧﺼﺢ‬‫اﻟﻜﺘﺐ‬ ‫ﻟﺘﺤﻤﯿﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻤﻮﻗﻊ‬ ‫ﺑﺰﯾﺎرة‬
http://www.kutub.info/
‫ﺟﺪا‬ ‫ﻣﮭﻢ‬::‫ﯾﺠﺐ‬ ‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻘﺔ‬ ‫اﻟﻤﺴﺎﻋﺪة‬ ‫واﻟﺒﺮاﻣﺞ‬ ‫اﻻﻣﺜﻠﺔ‬ ‫ﺗﻜﻦ‬ ‫ﻟﻢ‬ ‫اذا‬
‫اﻟﺘﺎﻟﯿﺔ‬ ‫اﻟﺮواﺑﻂ‬ ‫ﻣﻦ‬ ‫ﺑﺘﺤﻤﯿﻠﮭﺎ‬ ‫اﻟﻘﯿﺎم‬ ‫ﻋﻠﯿﻚ‬.
http://www.4shared.com/rar/4wao9A-
Oba/_online.html
‫اﻟﻤﺴﺎﻋﺪة‬ ‫اﻟﺒﺮاﻣﺞ‬ ‫ﻟﺘﺤﻤﯿﻞ‬)‫ﻣﻠﻔﺎت‬ ‫ﺗﺸﻤﻞ‬sdk‫ﻧﺴﺘﺨﺪﻣﮭﺎ‬ ‫ﺳﻮف‬ ‫وﺑﺮاﻣﺞ‬
‫اﻟﺒﺪأ‬ ‫ﻗﺒﻞ‬ ‫اﻣﺘﻼﻛﮭﺎ‬ ‫ﻋﻠﯿﻚ‬ ‫وﯾﺠﺐ‬ ‫ﻻﺣﻘﺎ‬(‫اﻟﺘﺎﻟﯿـ‬ ‫اﻟﺮاﺑﻂ‬ ‫ﻣﻦ‬ ‫وھﻲ‬:
http://www.4shared.com/rar/MJHwZIqMba/__onlin
e.html
‫اﻟﺘﺎﺳﻌﺔ‬ ‫اﻟﻮﺣﺪة‬
‫ﻓﺘﺢ‬ ‫ﻣﻦ‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬ ‫ﻓﻲ‬ ‫ﻣﮭﻤﺔ‬ ‫ﻣﻮﺿﻮﻋﺎت‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬه‬ ‫ﺗﺘﻨﺎول‬ ‫ﺳﻮف‬
‫ﺑﺎﻹ‬ ‫ﻋﻠﯿﮫ‬ ‫واﻟﺘﻌﺪﯾﻞ‬ ‫واﻟﻜﺘﺎﺑﺔ‬ ‫ﻣﻠﻒ‬‫ﺿﺎﻓﺔ‬‫إﻟﻰ‬‫اﻟ‬ ‫ﻓﻲ‬ ‫ﺟﯿﺪة‬ ‫ﺑﺪاﯾﺔ‬‫ﻤﺼﻔﻮﻓﺎت‬
‫واﻟﻤﺘﻐﯿﺮات‬،‫ﻓﻲ‬ ‫ذﻛﺮھﺎ‬ ‫ﯾﺮد‬ ‫ﻟﻢ‬ ‫اﻟﺘﻲ‬ ‫اﻟﺪوال‬ ‫ﻟﺒﻌﺾ‬ ‫ﺷﺮوح‬ ‫ﻋﻠﻰ‬ ‫ﺗﺤﺘﻮي‬ ‫ﻛﻤﺎ‬
‫ا‬‫ﻹ‬‫ﺻﺪار‬‫اﻷول‬‫ﻣﻦ‬ ‫اﻟﻌﺪﯾﺪ‬ ‫ﻣﻊ‬ ‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ ‫ﻣﻦ‬‫اﻷﻣﺜﻠﺔ‬‫واﻟﺸﺎﻣﻠﺔ‬ ‫اﻟﻤﺘﻨﻮﻋﺔ‬
‫ﻟﻜﺎﻣﻞ‬ ‫اﻟﻤﻔﺼﻞ‬ ‫واﻟﺸﺮح‬ ‫اﻟﺪروس‬ ‫ﻟﻤﺨﺘﻠﻒ‬‫اﻷﻛﻮاد‬.
‫أ‬‫ﻣﮭﻤﺔ‬ ‫ﻓﮭﻲ‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬا‬ ‫ﻷھﻤﯿﺔ‬ ‫ﺑﺎﻟﻨﺴﺒﺔ‬ ‫ﻣﺎ‬ً ‫ﺟﺪا‬،‫و‬‫ﻛﺜﯿﺮ‬ ‫ﻓﻲ‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﺤﺘﺎج‬ ‫ﻗﺪ‬
‫اﻻﺣﯿﺎن‬ ‫ﻣﻦ‬‫إﻟﻰ‬‫ﻣﻠﻒ‬ ‫ﻓﻲ‬ ‫وﻣﺤﻔﻮظﺔ‬ ‫ﻣﺨﺰﻧﺔ‬ ‫ﻣﻌﯿﻨﺔ‬ ‫ﻣﻌﻠﻮﻣﺎت‬ ‫اﺳﺘﺨﺪام‬‫أو‬‫ﻗﺪ‬
‫ﯾﺤﺘﺎج‬‫إﻟﻰ‬‫اﻟﺮﺟﻮع‬ ‫ﻟﮫ‬ ‫ﯾﺘﺴﻨﻰ‬ ‫ﻟﻜﻲ‬ ‫اﺧﺮ‬ ‫ﻣﻠﻒ‬ ‫ﻓﻲ‬ ‫ﻣﻌﻠﻮﻣﺎت‬ ‫ﺗﺨﺰﯾﻦ‬‫إﻟﻰ‬‫ﺗﻠﻚ‬
‫اﻟﻤﻌﻠﻮﻣﺎت‬.‫ﻧﺤﺘﺎج‬ ‫وﻗﺪ‬‫أو‬‫ﻣﺼﻨﻮع‬ ‫ﺑﺮﻧﺎﻣﺞ‬ ‫ﯾﺨﻠﻮ‬ ‫ﻻ‬ ‫ﻗﺪ‬‫ﺑﺄي‬‫اﺳﺘﺨﺪام‬ ‫ﻣﻦ‬ ‫ﻟﻐﺔ‬
‫اﻟﻤﺼﻔﻮﻓﺎت‬‫أو‬‫ﻟﻌﻤﻞ‬ ‫دوال‬ ‫اﺳﺘﺨﺪام‬‫أ‬‫ﻣﻌ‬ ‫ﻣﺮ‬‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﯾﻨﺒﻐﻲ‬ ‫ﻟﺬﻟﻚ‬ ‫ﯿﻦ‬
‫ﺑﺴﯿﻄﺔ‬ ‫ﻣﻌﺮﻓﺔ‬ ‫وﻟﻮ‬ ‫ﺑﮭﺎ‬ ‫اﻟﻤﻌﺮﻓﺔ‬.
‫ﻧﺴﺘﺨﺪم‬ ‫ﻓﺴﻮف‬ ‫اﻟﺴﺎﺑﻘﺔ‬ ‫اﻟﻮﺣﺪات‬ ‫ﻓﻲ‬ ‫ﺗﻌﻮدﻧﺎ‬ ‫وﻛﻤﺎ‬‫أ‬‫اﻷ‬ ‫ﺳﻠﻮب‬‫ﻣﺜﻠﺔ‬‫أو‬‫ﻛﻤﺎ‬
‫ﯾﻘﺎل‬)‫اﻟﻤﻘﺎل‬ ‫ﯾﺘﻀﺢ‬ ‫ﺑﺎﻟﻤﺜﺎل‬. (
‫اﻟﺪرس‬‫اﻷول‬:‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬)١(
‫ﺑ‬ ‫وﻧﻘﻮم‬ ‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﺮﻧﺎﻣﺞ‬ ‫ﺑﺘﺸﻐﯿﻞ‬ ‫ﻧﻘﻮم‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬‫ﺈﻧﺸﺎء‬‫ﻓﻲ‬ ‫وﺣﻔﻈﮫ‬ ‫اﻟﻤﺸﺮوع‬
‫ﻣﺴﺒﻖ‬ ‫ﻣﺠﻠﺪ‬.
‫ﻣﻼﺣﻈﺔ‬:‫ﻧﺒﺪ‬ ‫ﻋﻨﺪﻣﺎ‬‫أ‬‫ﺑﺸﻜﻞ‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬ ‫اﻟﻜﻮد‬ ‫ﺑﻜﺘﺎﺑﺔ‬‫أ‬‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫وﻟﻲ‬
Open FilePath for Action as #1
………
Close #1
‫اﻷ‬ ‫ﯾﻤﺜﻞ‬ ‫ﺣﯿﺚ‬‫ﻣﺮ‬open‫أ‬‫واﻷ‬ ‫اﻟﻤﻠﻒ‬ ‫ﻓﺘﺢ‬ ‫ﻣﺮ‬‫ﻣﺮ‬filepath‫اﻣﺘﺪاد‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬
‫و‬ ‫ﻓﺘﺤﮫ‬ ‫اﻟﻤﺮاد‬ ‫اﻟﻤﻠﻒ‬action‫ﯾﻜﻮن‬ ‫وﺳﻮف‬ ‫ﯾﺘﻢ‬ ‫ﺳﻮف‬ ‫اﻟﺬي‬ ‫اﻟﻔﻌﻞ‬‫إ‬‫ﻟﻠﺒﯿﺎﻧﺎت‬ ‫دﺧﺎل‬‫أو‬
‫إ‬‫واﻟﻔﻌﻞ‬ ‫ﻟﮭﺎ‬ ‫ﺧﺮاج‬close‫إ‬‫ﻟﻠﻤﻠﻒ‬ ‫ﻏﻼق‬.
‫أ‬‫ي‬‫أ‬‫ﻟﻮ‬ ‫ﻧﮫ‬‫أ‬‫اﻟﻤﻠﻒ‬ ‫ﻓﺘﺢ‬ ‫ردﻧﺎ‬ali.txt‫ﻗﺮص‬ ‫ﻋﻠﻰ‬ ‫اﻟﻤﻮﺟﻮد‬d:‫ﺑﺪاﺧﻠﮫ‬ ‫واﻟﻜﺘﺎﺑﺔ‬ ‫ﻓﺮﺿﺎ‬
‫ﻛﻠﻤﺔ‬khald‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬ ‫ﻣﺜﻼ‬)‫اﻷ‬‫ﻣﺮ‬(‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬:
Open "d:ali.txt" for output as #1
Print #1,"khald"
Close #1
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫أﻣﺮ‬open‫ورد‬ ‫ﻛﻤﺎ‬ ‫اﻟﻤﻠﻒ‬ ‫ﻟﻔﺘﺢ‬ ‫ھﻮ‬ً ‫ﺳﺎﺑﻘﺎ‬‫و‬d:ali.txt‫و‬ ‫اﻟﻜﺎﻣﻞ‬ ‫اﻟﻤﻠﻒ‬ ‫اﻣﺘﺪاد‬‫أﻣﺮ‬
output‫ھﻮ‬‫أﻣﺮ‬‫اﻟﻤﻠﻒ‬ ‫ﻋﻠﻰ‬ ‫اﻟﻜﺘﺎﺑﺔ‬‫و‬‫أﻣﺮ‬print#1‫ھﻮ‬‫أﻣﺮ‬‫و‬ ‫اﻟﻄﺒﺎﻋﺔ‬dekhal
‫و‬ ‫اﻟﻤﻠﻒ‬ ‫ﻋﻠﻰ‬ ‫طﺒﺎﻋﺘﮭﺎ‬ ‫اﻟﻤﺮاد‬ ‫اﻟﻜﻠﻤﺔ‬close#1‫ﻹ‬‫اﻟﻤﻠﻒ‬ ‫ﻏﻼق‬
‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬:‫ﻓﻲ‬‫أﻣﺮ‬‫اﻟﻜﺘﺎﺑﺔ‬output‫ﺳﻮف‬ ‫ﻣﻮﺟﻮد‬ ‫ﻏﯿﺮ‬ ‫اﻟﻤﻠﻒ‬ ‫اﻣﺘﺪاد‬ ‫ﻛﺎن‬ ‫ﻟﻮ‬
‫ﺑ‬ ‫اﻟﺤﺎﺳﻮب‬ ‫ﺟﮭﺎز‬ ‫ﯾﻘﻮم‬‫ﺈﻧﺸﺎء‬‫اﻻﻣﺘﺪاد‬.
‫اﻟﻤﺜﺎل‬)١(
‫ﺑ‬ ‫اﻟﻤﺜﺎل‬ ‫ﺑﮭﺬا‬ ‫ﺳﻨﻘﻮم‬‫ﺈﻧﺸﺎء‬‫ﺑﺪاﺧﻠﮫ‬ ‫واﻟﻜﺘﺎﺑﺔ‬ ‫ﻣﻠﻒ‬)‫اﻟﻤﻠﻒ‬ ‫ﻟﯿﻜﻦ‬‫داﺧﻞ‬‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻣﺠﻠﺪ‬(
ً‫أوﻻ‬:‫اﻟﻨﻤﻮذج‬ ‫ﺷﻜﻞ‬ ‫ﺑﺠﻌﻞ‬ ‫ﻗﻢ‬)from(‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬‫أو‬‫ﺗﺮﯾﺪ‬ ‫ﻛﻤﺎ‬
‫ﻣﺘﻐﯿﺮﯾﻦ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫ﻧﻘﻮم‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬‫اﻷول‬‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬text1‫اﺳﻢ‬ ‫ﺗﻤﺜﻞ‬ ‫اﻟﺘﻲ‬
‫اﻟﻌﻠﻢ‬ ‫ﻣﻊ‬ ‫اﻟﻤﻠﻒ‬‫أ‬‫ﻓﺮﺿﺎ‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬ ‫اﻟﻤﻠﻒ‬ ‫اﻣﺘﺪاد‬ ‫ن‬).txt(‫إ‬‫ﻻ‬‫إذا‬‫ﺗﻐ‬ ‫اﺣﺒﺒﺖ‬‫ﯿﯿﺮه‬
‫ﺑ‬‫ﻤﺘﻐﯿﺮ‬‫آ‬‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬ ‫ﺧﺮ‬text2‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬:
Dim filename as string, filetext as string
‫ﺗﻌﻠﻤﻨﺎ‬ ‫ﻛﻤﺎ‬ً ‫ﺳﺎﺑﻘﺎ‬...
‫ﺑ‬ ‫ﻧﻘﻮم‬‫ﻗ‬ ‫ﺘﻌﺮﯾﻒ‬‫ﺣﯿ‬ ‫اﻟﺰر‬ ‫ﻓﻲ‬ ‫اﻟﻤﺘﻐﯿﺮﯾﻦ‬ ‫ﯿﻤﺔ‬‫ﺚ‬‫أ‬‫اﻟﻘﯿﻤﺔ‬ ‫ﯾﺎﺧﺬ‬ ‫اﻟﻨﻘﺮ‬ ‫ﻋﻨﺪ‬ ‫ﻧﮫ‬
Filename = text1.text
Filetext = text2.text
‫اﻟﻜﻮد‬ ‫ھﺬا‬ ‫ﻧﻀﻊ‬ً ‫أﯾﻀﺎ‬‫اﻟﺰر‬ ‫ﻓﻲ‬
If filename <> "" then
Open app.path + "" + ilename + ".txt" for output as #1
Print #1, iletext
Close #1
Else: msgbox ("err in name") , vbexclamation
End if
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬‫ﺷﺮط‬ ‫وھﻮ‬‫أ‬‫ي‬‫أ‬‫ﻗﯿﻤﺔ‬ ‫ﺗﺴﺎوي‬ ‫ﻟﻢ‬ ‫ﻟﻮ‬ ‫ﻧﮫ‬filename‫ﻗﯿﻤﺔ‬)‫اﻟﻔﺮاغ‬(‫ﯾﺒﺪ‬‫أ‬
‫اﻟﺸﺮط‬ ‫ﺗﻨﻔﯿﺬ‬،‫ﻣﻦ‬ ‫اﻟﻜﻮد‬ ‫وھﺬا‬‫أ‬‫اﻷ‬ ‫ﺗﻨﻔﯿﺬ‬ ‫ﺟﻞ‬‫ﻣﺮ‬‫ﯾﺤﻮي‬ ‫اﻟﻤﻠﻒ‬ ‫اﺳﻢ‬ ‫ﺻﻨﺪوق‬ ‫ﻛﺎن‬ ‫ﺣﺎل‬ ‫ﻓﻲ‬
‫اﺳﻢ‬ ‫ﻋﻠﻰ‬.
‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬‫أﻣﺮ‬‫اﻟﻤﻠﻒ‬ ‫ﻟﻔﺘﺢ‬،‫اﻧﺘﺒﮫ‬ ‫ﻟﻜﻦ‬:
‫اﻷ‬‫ﻣﺮ‬app.path‫ﯾﺸﯿﺮ‬‫إﻟﻰ‬‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫اﻣﺘﺪاد‬،‫وﻷن‬‫ﺑﺎﺳﻢ‬ ‫ﯾﻨﺘﮭﻲ‬ ‫ﺳﻮف‬ ‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫اﻣﺘﺪاد‬
‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫اﻟﺤﺎوي‬ ‫اﻟﻤﺠﻠﺪ‬،‫ﻋﻠﻰ‬ ‫ﯾﺤﺘﻮي‬ ‫وﻟﻦ‬‫إ‬‫ﺷﺎرة‬""‫وﯾﻤﻜﻦ‬‫إ‬‫اﻟﻨﻘﻄﺔ‬ ‫ﯾﻀﺎح‬
‫اﻟﺘﺎﻟﻲ‬ ‫ﺑﺎﻟﻤﺜﺎل‬c:ahmed‫ﻧﻼﺣﻆ‬ ‫ﺳﻮف‬‫أ‬‫اﺳﻤﮫ‬ ‫ﻟﻤﺠﻠﺪ‬ ‫اﻣﺘﺪاد‬ ‫ھﺬا‬ ‫ن‬‫أ‬‫ﻧﺤﻦ‬ ‫ﻟﻜﻦ‬ ‫ﺣﻤﺪ‬
‫ﻧﺮﯾﺪ‬‫إﻧﺸﺎء‬‫اﻟﻤﺠﻠﺪ‬ ‫داﺧﻞ‬ ‫اﻟﻤﻠﻒ‬،‫ﺻﺤﯿﺤ‬ ‫اﻟﻤﺴﺎر‬ ‫ﯾﻜﻮن‬ ‫وﺣﺘﻰ‬ً ‫ﺎ‬‫ﯾﺠﺐ‬‫أ‬‫ﻋﻠﻰ‬ ‫ﯾﻜﻮن‬ ‫ن‬
‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﺸﻜﻞ‬ahmedc:‫ﺑ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻓﻲ‬ ‫ﻗﻤﻨﺎ‬ ‫وﻟﺬﻟﻚ‬‫ﺈﺿﺎﻓﺔ‬""
‫أ‬‫ﻣﺎ‬filename‫ﻗﯿﻤﺔ‬ ‫ﻓﮭﻲ‬text1.text‫ﻻﺣﻆ‬ ‫و‬‫أ‬‫ن‬".txt"‫اﻟﻤﻠﻒ‬ ‫اﻣﺘﺪاد‬ ‫ھﻲ‬
‫اﻻﻣﺘﺪاد‬ ‫ﺣﺴﺐ‬ ‫ﺗﻐﯿﺮه‬ ‫وﯾﻤﻜﻨﻚ‬‫اﻟﺬي‬‫و‬ ‫ﺗﺮﯾﺪه‬output‫ھﻲ‬‫أﻣﺮ‬‫اﻟﻜﺘﺎﺑﺔ‬.
‫أ‬‫ﻓﮭﻮ‬ ‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬‫أﻣﺮ‬‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﻓﻲ‬ ‫ﻣﻮﺟﻮد‬ ‫ھﻮ‬ ‫ﻣﺎ‬ ‫ﻟﻜﺘﺎﺑﺔ‬filetext‫اﻟﻤﻠﻒ‬ ‫ﻋﻠﻰ‬
‫أ‬‫ﻓﮭﻮ‬ ‫اﻟﺮاﺑﻊ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬‫إ‬‫اﻟﻤﻠﻒ‬ ‫ﻟﻘﺮاءة‬ ‫ﻏﻼق‬.
‫أ‬‫ﺗﺤﺬﯾﺮ‬ ‫رﺳﺎﻟﺔ‬ ‫ﺗﻈﮭﺮ‬ ‫ﺳﻮف‬ ‫اﻟﺸﺮط‬ ‫ﺗﺤﻘﻖ‬ ‫ﻋﺪم‬ ‫ﺣﺎﻟﺔ‬ ‫ﻓﻲ‬ ‫ﻓﮭﻮ‬ ‫اﻟﺨﺎﻣﺲ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬
)exclamation(‫اﻟﻤﻠﻒ‬ ‫اﺳﻢ‬ ‫ﻓﻲ‬ ‫ﺧﻄﺄ‬ ‫ﺑﻮﺟﻮد‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﺗﺨﺒﺮ‬.
‫اﻟﺴﺎدس‬ ‫اﻟﺴﻄﺮ‬‫ﻷﻧﮭﺎ‬‫اﻟﺸﺮط‬.
‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬:
‫ﺗﺬﻛﯿﺮ‬:‫ﻻﺣﻆ‬‫أ‬‫ﻋﻨﺪ‬ ‫ﻧﮫ‬‫إﺿﺎﻓﺔ‬‫ﻻ‬ ‫اﻟﻨﺺ‬ ‫ﺻﻨﺪوق‬‫ﻓﻲ‬ ‫اﻟﻜﺘﺎﺑﺔ‬ ‫ﻣﻦ‬ ‫ﯾﻤﻜﻨﻚ‬‫أ‬‫ﺳﻄﺮ‬ ‫ﻣﻦ‬ ‫ﻛﺜﺮ‬
‫اﻟﻤﺘﻌﺪد‬ ‫اﻟﺴﻄﺮ‬ ‫ﺧﺎﺻﯿﺔ‬ ‫ﺑﺘﻌﺪﯾﻞ‬ ‫ﻓﻘﻂ‬ ‫ﻗﻢ‬ ‫ﻟﺬﻟﻚ‬)MultiLine(‫واﺟﻌﻠﮭﺎ‬true
‫ﺗﺬﻛﯿ‬‫ﺮ‬‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻖ‬ ‫اﻟﻤﺜﺎل‬
‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺪرس‬:‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬)٢(:
‫طﺮﯾﻘﺔ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻌﺮﻓﻨﺎ‬ ‫اﻟﺴﺎﺑﻖ‬ ‫اﻟﺪرس‬ ‫ﻓﻲ‬‫اﻟﻤﻠﻔﺎت‬ ‫ﻋﻠﻰ‬ ‫اﻟﻜﺘﺎﺑﺔ‬،‫اﻟﺪرس‬ ‫ھﺬا‬ ‫ﻓﻲ‬ ‫وﺳﻨﺘﻌﺮف‬
-‫إ‬‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺷﺎء‬ ‫ن‬-‫ﻣﻮﺟﻮدة‬ ‫ﻣﻠﻔﺎت‬ ‫ﻋﻠﻰ‬ ‫ﻣﺨﺰﻧﺔ‬ ‫ﻣﻌﻠﻮﻣﺎت‬ ‫اﺳﺘﻌﺮاض‬ ‫ﻛﯿﻔﯿﺔ‬ ‫ﻋﻠﻰ‬
ً ‫ﻣﺴﺒﻘﺎ‬.
‫ﻣﺜﺎل‬)٢(
‫و‬ ‫اﻟﺴﺎﺑﻖ‬ ‫اﻟﻤﺜﺎل‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺘﻌﺪﯾﻞ‬ ‫اﻟﻤﺜﺎل‬ ‫ﺑﮭﺬا‬ ‫ﺳﻨﻘﻮم‬‫إﺿﺎﻓﺔ‬‫اﻟﺸﻜﻞ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬ ‫ﻟﮫ‬ ‫ﺣﻔﻆ‬ ‫زر‬
‫ھﺬا‬ ‫ﯾﺤﺘﻮي‬ ‫ﺳﻮف‬ ‫ﻧﺼﻲ‬ ‫ﻣﺘﻐﯿﺮ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫ﻧﻘﻮم‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬‫اﻟﻤﻠﻒ‬ ‫ﻧﺺ‬ ‫ﻋﻠﻰ‬ ‫اﻟﻤﺘﻐﯿﺮ‬
‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫ﻗﺮاءﺗﮫ‬ ‫اﻟﻤﺮاد‬:
Dim DataText as string
‫اﻟﻤﺴﻤﻰ‬ ‫اﻟﺰر‬ ‫داﺧﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻜﺘﺎﺑﺔ‬ ‫ﻧﻘﻮم‬OpenFile
FileName = Text1.Text
Open app.path + "" + ilename + "txt" for input as #1
Input #1,datatext
Close #1
Text2.text = datatext
‫ﻧﻼﺣﻆ‬‫أ‬‫اﻟﻜﺘﺎﺑﺔ‬ ‫ﻛﻮد‬ ‫ﯾﺸﺒﮫ‬ ‫اﻟﻜﻮد‬ ‫ن‬‫إﻟﻰ‬‫أ‬‫ﻓﻲ‬ ‫ﻛﺎن‬ ‫اﻟﻔﺮق‬ ‫ن‬‫أﻣﺮ‬Input.
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﻟﺠﻌﻞ‬filename‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬text1.text‫اﺳﻢ‬ ‫ھﻲ‬ ‫اﻟﺘﻲ‬
‫اﻟﻤﻠﻒ‬.
‫أ‬‫ﻟﻠﻘﺮاءة‬ ‫اﻟﻤﻠﻒ‬ ‫ﻟﻔﺘﺢ‬ ‫اﻟﻜﻮد‬ ،‫واﺿﺢ‬ ‫ﻓﮭﻮ‬ ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬.
‫ﻓﻲ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻟﻘﺮاءة‬ ‫اﻟﺜﺎﻟﺚ‬ ‫واﻟﺴﻄﺮ‬‫اﻟﺴﻄﺮ‬‫اﻷول‬‫ﻻﺣﻆ‬‫أﻧﮫ‬‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﯾﻘﺮأ‬ ‫ﺳﻮف‬
‫اﻟﺴﻄﺮ‬ ‫ﻓﻲ‬ ‫اﻟﻤﻮﺟﻮدة‬‫اﻷول‬‫اﻟﻤﻠﻒ‬ ‫ﻣﻦ‬ ‫ﻓﻘﻂ‬‫أ‬‫ﻣﺎ‬‫إ‬‫ذا‬‫أ‬‫اﻟﺴﻄﺮ‬ ‫ﻗﺮاءة‬ ‫ردﻧﺎ‬‫اﻷول‬‫واﻟﺜﺎﻧﻲ‬
‫ﺑ‬ ‫ﻧﻘﻮم‬ ‫ﻣﺜﻼ‬‫ﺈﻧﺸﺎء‬‫ﻣﺘﻐﯿﺮ‬‫أو‬‫ﻣﺼﻔﻮﻓﺔ‬–‫ﻻﺣﻘﺎ‬ ‫ﻧﺘﻌﻠﻢ‬ ‫ﺳﻮف‬ ‫ﻛﻤﺎ‬–‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺤﻤﻞ‬
‫ﺑﺎﻟﺘﺎﻟﻲ‬ ‫وﻧﻘﻮم‬
Input #1,datatext(0) - ‫ﻟﻠﺴﻄﺮ‬‫اﻷول‬
Input #1,datatext(1) -‫اﻟﺜﺎﻧﻲ‬ ‫ﻟﻠﺴﻄﺮ‬
‫وھﻜﺬا‬.....
‫أ‬‫ﻓﮭﻮ‬ ‫اﻟﺮاﺑﻊ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬‫ﻹ‬‫اﻟﻘﺮاءة‬ ‫ﻣﻦ‬ ‫اﻟﻤﻠﻒ‬ ‫ﻏﻼق‬.
‫اﻟﻨﺺ‬ ‫ﺻﻨﺪوق‬ ‫ﻓﻲ‬ ‫اﻟﻤﺤﺘﻮى‬ ‫ﻟﻌﺮض‬ ‫ﻓﮭﻮ‬ ‫اﻟﺨﺎﻣﺲ‬ ‫اﻟﺴﻄﺮ‬)TextBox(٢
‫ﻣﻼﺣﻈﺔ‬:‫ﺣﯿﻦ‬ ‫ﻣﻦ‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﺤﺘﺎج‬ ‫ﻓﻘﺪ‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫ﻟﻠﺘﻌﺎﻣﻞ‬ ‫ﺑﺴﯿﻄﺔ‬ ‫ﻣﻘﺪﻣﺔ‬ ‫ھﺬه‬ ‫ﻛﺎﻧﺖ‬
‫إﻟﻰ‬‫آ‬‫ﺧﺮ‬‫إﻟﻰ‬‫ﻟﻠﻌﻮدة‬ ‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻋﻦ‬ ‫ﺧﺎرﺟﻲ‬ ‫ﻣﻠﻒ‬ ‫ﻋﻠﻰ‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﺗﺨﺰﯾﻦ‬‫إ‬‫وﻗﺖ‬ ‫ﻓﻲ‬ ‫ﻟﯿﮭﺎ‬
‫آ‬‫ﺧﺮ‬.‫واﻟﻤﻌﻠﻮﻣﺎت‬ ‫اﻟﺪروس‬ ‫ﻣﻦ‬ ‫اﻟﻤﺰﯾﺪ‬ ‫ﻋﻠﻰ‬ ‫اﻟﺤﺼﻮل‬ ‫ﯾﻤﻜﻨﻚ‬‫اﻹﺿﺎﻓﯿﺔ‬‫ﻓﻲ‬ ‫ﺑﺎﻟﺒﺤﺚ‬
‫ﺷﺒﻜﺔ‬‫اﻹﻧﺘﺮﻧﺖ‬....
‫و‬‫أﺧﯿﺮ‬‫ا‬‫ﺗﺬﻛﺮ‬‫أ‬‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻖ‬ ‫اﻟﻤﺜﺎل‬ ‫ن‬...
‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﺪرس‬:‫ﺟﯿﺪة‬ ‫وﺑﺪاﯾﺔ‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬
‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﺤﺘﺎج‬ ‫ﻓﻘﺪ‬ ‫اﻟﺒﺮﻣﺠﺔ‬ ‫ﻓﻲ‬ ‫ﻋﺎم‬ ‫ﺑﺸﻜﻞ‬ ‫ﻣﮭﻤﺔ‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬‫إﻟﻰ‬‫ﻛﻤﯿﺎت‬ ‫ﺗﺨﺰﯾﻦ‬
‫ﺗﺨﺰﯾﻨﮭﺎ‬ ‫ھﻲ‬ ‫ﻋﻠﯿﮭﺎ‬ ‫اﻟﺮﺟﻮع‬ ‫ﻟﺘﺴﮭﯿﻞ‬ ‫ﺗﺨﺰﯾﻨﮭﺎ‬ ‫ﻓﻲ‬ ‫اﻟﺴﻠﯿﻤﺔ‬ ‫واﻟﻄﺮﯾﻖ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻣﻦ‬ ‫ﻛﺒﯿﺮة‬
‫أو‬،‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﻓﻲ‬ ‫ﺣﻔﻈﮭﺎ‬‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺗﺤﺘﻮي‬ ‫ﺳﻠﺴﻠﺔ‬ ‫ھﻲ‬ ‫واﻟﻤﺼﻔﻮﻓﺔ‬‫أو‬
،‫ﻣﻨﺘﻈﻢ‬ ‫ﺑﺸﻜﻞ‬ ‫ﻓﯿﮭﺎ‬ ‫ﻣﺮﺗﺒﺔ‬ ‫اﻟﻌﻨﺎﺻﺮ‬‫ﻓﻲ‬ ‫واﻟﻤﺼﻔﻮﻓﺔ‬‫ﺗﺸﺒﮫ‬ ‫اﻟﺒﺮﻣﺠﺔ‬ ‫ﻟﻐﺎت‬‫إﻟﻰ‬‫ﻣﺎ‬ ‫ﺣﺪ‬
‫اﻟﺮﯾﺎﺿﯿﺎت‬ ‫ﻓﻲ‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬.
‫ﻟﻦ‬‫ﻧ‬‫ﺘﻄﺮق‬‫إﻟﻰ‬‫أ‬‫اﻷ‬ ‫ﻧﺎﺧﺬ‬ ‫ﺳﻮف‬ ‫ﺑﻞ‬ ‫ﻣﻨﮭﺎ‬ ‫ﻛﺜﯿﺮة‬ ‫ﻣﻮر‬‫ﻣﻮر‬‫ﻟﻜﻲ‬ ‫ﻣﻌﺎ‬ ‫وﺟﺪﯾﺔ‬ ‫ﺑﺒﺴﺎطﺔ‬
‫اﻷ‬ ‫ﺗﻌﻘﯿﺪ‬ ‫ﻻﻧﺰﯾﺪ‬‫ﻣﻮر‬.
‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫ﯾﻜﻮن‬ ‫اﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﺷﻜﻞ‬:
A11=9 || A12=8 || A13 = 6
A21 =1|| A22=2 || A23 = 7
A31 =4|| A32=9 || A33 = 2
‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫اﻟﺘﺮﺗﯿﺐ‬ ‫ﯾﻜﻮن‬ ‫ﺣﯿﺚ‬ ‫وھﻜﺬا‬:
‫اﻵن‬‫و‬ ‫ﺗﺼﻨﯿﻒ‬ ‫ﻓﻲ‬ ‫ﻧﺪﺧﻞ‬ ‫ﻟﻦ‬‫أ‬‫ﻓﻘﻂ‬ ‫ﺷﻜﻠﯿﻦ‬ ‫ﻧﺪرس‬ ‫ﺳﻮف‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬ ‫ﻧﻮاع‬.
‫اﻟﺸﻜﻞ‬‫اﻷول‬Data(0 to N)
‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺸﻜﻞ‬Data = array("n1","n2",…..)
‫اﻟﻤﺜﺎل‬)٣(
‫اﻟﻤﺼ‬ ‫اﺳﺘﺨﺪام‬ ‫ﻧﻮﺿﺢ‬ ‫ﺳﻮف‬ ‫اﻟﻤﺜﺎل‬ ‫ھﺬا‬ ‫ﻓﻲ‬‫ﻔ‬‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﺮﻧﺎﻣﺞ‬ ‫ﺑﺸﺘﻐﯿﻞ‬ ‫ﻧﺒﺪأ‬ ،‫ﻮﻓﺎت‬
‫ﺑﯿﺴﻚ‬٦.
‫اﻟﻨﻤﻮذج‬ ‫ﺷﻜﻞ‬ ‫ﺑﻌﻤﻞ‬ ‫ﻧﻘﻮم‬)Form(‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬‫أو‬‫رﻏﺒﺘﻚ‬ ‫ﺣﺴﺐ‬ ‫ﺗﻌﺪﯾﻠﮫ‬ ‫ﯾﻤﻜﻨﻚ‬:
‫ﻣﺘﻐﯿﺮ‬ ‫ﻓﻲ‬ ‫اﻟﺜﻼث‬ ‫اﻟﺼﻨﺎدﯾﻖ‬ ‫ﻗﯿﻢ‬ ‫ﺗﺨﺰﯾﻦ‬ ‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻣﻦ‬ ‫اﻟﮭﺪف‬)‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬(
‫اﻟﻘﯿﻢ‬ ‫ﺳﯿﺤﻤﻞ‬ ‫اﻟﺬي‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫ﻧﻘﻮم‬ ‫وﻋﻠﯿﮫ‬ ،‫ﺟﻤﻌﮭﺎ‬ ‫وطﺒﺎﻋﺔ‬
Dim Data(0 to 2) as string
‫ﻻﺣﻆ‬‫أ‬‫ﯾﺤﻤﻞ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ن‬٣‫أ‬‫ﺗﺨﺰﯾﻦ‬ ‫ﻣﺎﻛﻦ‬‫أ‬‫ي‬‫أ‬‫ﺣﯿﺚ‬ ‫ﻣﺤﺴﻮب‬ ‫اﻟﺼﻔﺮ‬ ‫ن‬data(0)‫ﯾﻌﺪ‬
‫و‬ ‫ﻣﺘﻐﯿﺮ‬data(1)‫و‬ ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ھﻮ‬data(2)‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ھﻮ‬،‫أ‬‫ي‬‫أ‬‫ﻟﻮ‬ ‫ﻧﮫ‬
‫أ‬‫ﺗﺨﺰﯾﻦ‬ ‫ردﻧﺎ‬٨‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﺷﻜﻞ‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬ ‫ﻣﺜﻼ‬ ‫ﻗﯿﻢ‬data(0to8).
‫اﻟﺰر‬ ‫داﺧﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬‫اﻷول‬:
data(0) = text1.text
data(1) = text2.text
data(2) = text3.text
msgbox data(0) + data(1) + data
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬‫ﻋﻠﻰ‬ ‫اﻟﺜﻼﺛﺔ‬ ‫اﻟﺼﻨﺎدﯾﻖ‬ ‫ﻗﯿﻢ‬ ‫ﺗﺤﻤﻞ‬ ‫اﻟﻤﺘﻐﯿﺮات‬ ‫ﯾﺠﻌﻞ‬ ‫واﻟﺜﺎﻟﺚ‬ ‫واﻟﺜﺎﻧﻲ‬
‫اﻟﺘﺮﺗﯿﺐ‬)‫ﻧﻼﺣﻆ‬‫أ‬‫ا‬ ‫ﻛﺎﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﻧﮭﺎ‬‫ﻷ‬‫ﺣﺎدﯾﺔ‬.(
‫ﻹ‬ ‫وھﻮ‬ ‫اﻟﺮاﺑﻊ‬ ‫اﻟﺴﻄﺮ‬‫ﺑﻤﺎ‬ ‫طﺒﻌﺎ‬ ،‫ﺟﻤﻌﮭﻢ‬ ‫ﺑﺤﺎﺻﻞ‬ ‫رﺳﺎﻟﺔ‬ ‫رﺳﺎل‬‫أ‬‫ﻧﺼﻲ‬ ‫ھﻮ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ن‬
‫ﻛﻤﺎ‬‫ﻋﺮﻓﻨﺎه‬ً ‫ﺳﺎﺑﻘﺎ‬as string‫ﻋﺪدﯾﺔ‬ ‫ﻋﻤﻠﯿﺔ‬ ‫اﻟﺠﻤﻊ‬ ‫ﻋﻤﻠﯿﺔ‬ ‫ﺗﻜﻮن‬ ‫ﻟﻦ‬،‫و‬‫إ‬‫ﺗﻜﻮن‬ ‫ﻧﻤﺎ‬
‫ﻛﺎﻟﺘﺎﻟﻲ‬:
"anas" + "anis" = "anasanis"
"a" + "b" + "c" = "abc"
"102" + "a" + "5*%" = "102a5*%"
‫ﻣﺘﻐﯿﺮ‬ ‫ﻛﺎن‬ ‫ﻟﻮ‬ ‫ﻟﻜﻦ‬ً ‫ا‬‫ﻋﺪدﯾ‬ً ‫ﺎ‬‫ﻣﺜﻼ‬as single‫ﯾﻘﺒﻞ‬ ‫ﻟﻦ‬‫إ‬‫ﻻ‬‫أ‬‫رﻗﺎﻣ‬ً ‫ﺎ‬‫ﻋﺪدﯾ‬ ‫اﻟﺠﻤﻊ‬ ‫وﺳﯿﻜﻮن‬ً ‫ﺎ‬
‫ﻛﺎﻟﺘﺎﻟﻲ‬:
120 – 5 = 115
‫اﻵن‬‫ﺑ‬ ‫ﺳﻨﻘﻮم‬‫ﺈﺿﺎﻓﺔ‬‫داﻟﺔ‬array‫ﺑﮭﺎ‬ ‫ﺧﺎﺻﺔ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫واﺳﺘﺨﺪام‬،‫ﻓﻲ‬ ‫اﻟﻜﻮد‬ ‫ھﺬا‬ ‫ﺿﻊ‬
‫اﻟﺰر‬٢)Command2. (
Data2 = array("a","b","c","d")
Msgbox data2(3) + data2(1) + data2(2) + data2(0)
‫أن‬ ‫ﻧﻼﺣﻆ‬‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬ً ‫أﯾﻀﺎ‬ً‫ء‬‫اﺑﺘﺪا‬ ‫اﻟﻘﯿﻢ‬ ‫ﺗﺨﺰن‬‫اﻟﺮﻗﻢ‬ ‫ﻣﻦ‬0.
‫ﺗﻔﺴﯿﺮ‬‫اﻟﻜﻮد‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬‫ﺣﯿﺚ‬ ‫اﻟﻤﺼﻔﻮﻓﺔ‬ ‫داﺧﻞ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﯾﺨﺰن‬‫أ‬‫ن‬:
Data2(0) = "a"
Data2(1) = "b"
‫وھﻜﺬا‬.
‫اﻟﺠﻤﻊ‬ ‫ﻣﺎھﯿﺔ‬ ‫ﺑﯿﻨﺎ‬ ‫ﻛﻤﺎ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﺑﺠﻤﻊ‬ ‫ﯾﻘﻮم‬ ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬ً ‫ﺳﺎﺑﻘﺎ‬:
‫ﺑﺠﻤﻊ‬ ‫ﯾﺒﺪأ‬d‫ﺛﻢ‬b‫ﺛﻢ‬c‫ﺛﻢ‬a‫اﻟﻜﻮد‬ ‫ﺗﻌﺪﯾﻞ‬ ‫ﺑﺎﻟﻄﺒﻊ‬ ‫ﯾﻤﻜﻦ‬ ‫ﻛﻤﺎ‬.
‫ﻟﻠﻜﻮد‬ ‫اﻟﻨﮭﺎﺋﻲ‬ ‫اﻟﺸﻜﻞ‬:
‫ﻣﻘﺪﻣﺔ‬ ‫ھﺬه‬ ‫ﻛﺎﻧﺖ‬‫اﻟﻤﺼﻔﻮﻓﺎت‬ ‫ﻓﻲ‬ ‫ﺟﯿﺪة‬،‫ﺳ‬ ‫ﻣﻮﺿﻮﻋﺎت‬ ‫وﺗﺘﻨﺎول‬‫اﻟﺘﻘﺪم‬ ‫ﺑﻌﺪ‬ ‫ﺗﮭﻤﻨﺎ‬ ‫ﻮف‬
‫اﻟﻤﺎدة‬ ‫ھﺬه‬ ‫ﻓﻲ‬.
‫اﻻطﻼع‬ ‫ﯾﻤﻜﻨﻚ‬‫أ‬‫ا‬ ‫ﻣﻮاﻗﻊ‬ ‫زﯾﺎرة‬ ‫ﺧﻼل‬ ‫ﻣﻦ‬ ‫ﻛﺜﺮ‬‫ﻹ‬‫اﻟﻤﺨﺘﻠﻔﺔ‬ ‫ﻧﺘﺮﻧﺖ‬.
‫ﺗﺬﻛﺮ‬‫أ‬‫اﻟﻤﺜﺎل‬ ‫ﺑﺎﺳﻢ‬ ‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻖ‬ ‫اﻟﻤﺜﺎل‬ ‫ن‬)٣(
‫اﻟﺮاﺑﻊ‬ ‫اﻟﺪرس‬:‫وﻣﮭﻤﺔ‬ ‫ﻣﺘﻨﻮﻋﺔ‬ ‫دوال‬)١(
‫ﻣﮭﻤ‬ ‫دورا‬ ‫وﺗﻠﻌﺐ‬ ‫ﺗﺆدي‬ ‫اﻟﺮﯾﺎﺿﯿﺔ‬ ‫اﻟﻌﻤﻠﯿﺎت‬ً ‫ﺎ‬‫ﻻ‬ ‫ﻟﺬﻟﻚ‬ ‫اﻟﺒﺮﻣﺠﺔ‬ ‫ﻓﻲ‬ّ‫ﺪ‬‫ﺑ‬‫ﻋﻠﻰ‬ ‫اﻟﺘﻌﺮف‬ ‫ﻣﻦ‬
‫ھﺬه‬ ‫ﻋﻦ‬ ‫ﻟﻠﺤﺪﯾﺚ‬ ‫ﻣﺨﺼﺼﺎ‬ ‫ﺳﯿﻜﻮن‬ ‫اﻟﺪرس‬ ‫ھﺬا‬ ‫ﻟﺬﻟﻚ‬ ،‫اﻟﻌﻤﻠﯿﺎت‬ ‫ﺑﮭﺬه‬ ‫اﻟﻤﺘﻌﻠﻘﺔ‬ ‫اﻟﺪوال‬
‫اﻟﺪوال‬.‫ﻋﻤﻞ‬ ‫وﺑﻌﺪھﺎ‬‫آ‬‫اﻟﺪرس‬ ‫ھﺬا‬ ‫ﻋﻠﻰ‬ ‫ﻛﺘﻄﺒﯿﻖ‬ ‫اﻟﺪوال‬ ‫ھﺬه‬ ‫ﺗﺸﻤﻞ‬ ‫ﺣﺴﺎﺑﺔ‬ ‫ﻟﺔ‬.
‫اﻟﺠﯿﺐ‬ ‫داﻟﺔ‬Sin
‫ﺑﻞ‬ ‫واﺳﺘﺨﺪاﻣﮭﺎ‬ ‫ﻣﺎ‬ ‫زاﯾﺔ‬ ‫ﺟﯿﺐ‬ ‫ﻋﻠﻰ‬ ‫اﻟﺤﺼﻮل‬ ‫ﻓﻲ‬ ‫ﺗﺴﺘﺨﺪم‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬ّ‫إن‬‫ﺟﻤﯿﻊ‬ ‫اﺳﺘﺨﺪام‬
‫ﻧﻮﻋﺎ‬ ‫ﺳﮭﻞ‬ ‫اﻟﺤﺴﺎﺑﯿﺔ‬ ‫اﻟﺪوال‬‫ﻣﺎ‬،‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻨﺤﻮ‬ ‫ﻋﻠﻰ‬ ‫وﯾﻜﻮن‬:
X = sin(angle ‫)اﻟﺰاوﯾﺔ‬
‫اﻟﺘﻤﺎم‬ ‫ﺟﯿﺐ‬ ‫داﻟﺔ‬Cos
‫ﻓﻲ‬ ‫ﺗﺴﺘﺨﺪم‬ ‫ﻟﻜﻦ‬ ‫ﺳﺎﺑﻘﺘﮭﺎ‬ ‫ﻣﺜﻞ‬‫إ‬‫واﻻﺳﺘﺨﺪام‬ ‫اﻟﺰاوﯾﺔ‬ ‫ﺗﻤﺎم‬ ‫ﺟﯿﺐ‬ ‫ﯾﺠﺎد‬:
X = Cos(angle)
‫اﻟﺰاوﯾﺔ‬ ‫ظﻞ‬ ‫داﻟﺔ‬Tan
‫أﻣﺎ‬‫ﺑ‬ ‫ﻓﺘﻘﻮم‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬‫ﺈ‬‫ﯾﻤﻜﻦ‬ ‫ﻛﻤﺎ‬ ‫اﻟﺰاوﯾﺔ‬ ‫ظﻞ‬ ‫ﯾﺠﺎد‬ً ‫أﯾﻀﺎ‬‫اﻟﺪاﻟﺘﯿﻦ‬ ‫ﺧﻼل‬ ‫ﻣﻦ‬ ‫ﺣﺴﺎﺑﮫ‬
‫اﻟﻈﻞ‬ ‫اﻟﺮﯾﺎﺿﯿﺔ‬ ‫اﻟﻌﻼﻗﺔ‬ ‫ﺑﺎﺳﺘﺨﺪام‬ ‫اﻟﺴﺎﺑﻘﺘﯿﻦ‬=‫اﻟﺠﯿﺐ‬/‫اﻟﺘﻤﺎم‬ ‫ﺟﯿﺐ‬،‫ھﺬه‬ ‫اﺳﺘﺨﺪام‬ ‫وﯾﻜﻮن‬
‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻨﺤﻮ‬ ‫ﻋﻠﻰ‬ ‫اﻟﺪاﻟﺔ‬:
X = tan(angle)
‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫داﻟﺔ‬Abs
‫ﺑ‬ ‫ﺗﻘﻮم‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬‫ﺈ‬‫ﻟ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﻋﻄﺎء‬‫ﻠ‬‫داﺧﻠﮭﺎ‬ ‫ﯾﻮﺟﺪ‬ ‫اﻟﺬي‬ ‫ﻌﺪد‬،‫داﺧﻠﮭﺎ‬ ‫ﻛﺎن‬ ‫ﻟﻮ‬ ‫ﻣﺜﻼ‬
‫اﻟﻌﺪد‬–٢٥‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﻧﺎﺗﺞ‬ ‫ﺳﯿﻜﻮن‬٢٥،‫وھﻜﺬا‬‫أﻣﺎ‬‫اﻟﺪوال‬ ‫ﻛﺒﺎﻗﻲ‬ ‫ﻓﮭﻮ‬ ‫اﺳﺘﺨﺪاﻣﮭﺎ‬:
X = abs(number)
‫اﻟﺘﺪوﯾﺮ‬ ‫داﻟﺔ‬‫إﻟﻰ‬‫أ‬‫ﻋﺸﺮﯾﺔ‬ ‫ﻣﻨﺰﻟﺔ‬ ‫ﻗﺮب‬Round
‫اﻟﺮﻗﻢ‬ ‫ﺑﺘﺪوﯾﺮ‬ ‫ﺳﺘﻘﻮم‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬‫إﻟﻰ‬‫أ‬‫ﻛﺎن‬ ‫ﻟﻮ‬ ‫ﻣﺜﻼ‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﺤﺪدھﺎ‬ ‫ﻋﺸﺮﯾﺔ‬ ‫ﻣﻨﺰﻟﺔ‬ ‫ﻗﺮب‬
‫اﻟﺮﻗﻢ‬12.276‫و‬‫أ‬‫ﺗﺪوﯾﺮه‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫راد‬‫إﻟﻰ‬‫أ‬‫ﻧﺎﺗﺞ‬ ‫ﺳﯿﻜﻮن‬ ‫ﻋﺸﺮﯾﺘﯿﻦ‬ ‫ﻣﻨﺰﻟﺘﯿﻦ‬ ‫ﻗﺮب‬
‫اﻟﺘﺪوﯾﺮ‬12.28.‫اﻟﻨﺤﻮ‬ ‫ﻋﻠﻰ‬ ‫ﻓﯿﻜﻮن‬ ‫اﻟﺪوال‬ ‫ﺑﺎﻗﻲ‬ ‫ﻋﻦ‬ ‫ﻗﻠﯿﻼ‬ ‫ﯾﺨﺘﻠﻒ‬ ‫اﻟﺪاﻟﺔ‬ ‫اﺳﺘﺨﺪام‬
‫اﻟﺘﺎﻟﻲ‬:
X = round( ‫ﺗﺪوﯾﺮه‬ ‫اﻟﻤﺮاد‬ ‫,اﻟﺮﻗﻢ‬ ‫اﻟﺘﺪوﯾ‬ ‫اﻟﻤﺮاد‬ ‫اﻟﻤﻨﺎزل‬ ‫ﻋﺪد‬‫ﺮ‬‫إ‬‫ﻟﯿﮭﺎ‬ )
‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬ً ‫ﺟﺪا‬:‫اﻟﺴﺎﺑﻘﺔ‬ ‫اﻟﺪوال‬ ‫ﻓﻲ‬ ‫اﻟﺰواﯾﺎ‬ ‫ﻗﯿﺎس‬ ‫ﻓﻲ‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫اﻟﻨﻈﺎم‬
)tan,sin,cos(‫اﻟﺪاﺋﺮي‬ ‫اﻟﻨﻈﺎم‬ ‫ھﻮ‬Radian)(‫ﯾﺠﺐ‬ ‫وﻋﻠﯿﮫ‬‫أ‬‫ﺗﺴ‬ ‫ن‬‫ﺘ‬‫ﻗﯿﻢ‬ ‫ﺨﺪم‬Pi
‫اﻟﺰاوﯾﺔ‬ ‫ﻟﺘﺤﺪﯾﺪ‬،‫اﻟﺘﺤﻮﯾﻞ‬ ‫وﯾﻤﻜﻨﻚ‬‫إﻟﻰ‬‫اﻟﺘﺎﻟﯿﺔ‬ ‫اﻟﻌﻼﻗﺔ‬ ‫طﺮﯾﻖ‬ ‫ﻋﻦ‬ ‫اﻟﺴﺘﯿﻨﻲ‬ ‫اﻟﻨﻈﺎم‬:
X= ang * pi / 180
‫اﻟﻔﻜﺮة‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻤﺜﺎل‬ ‫ﯾﻮﺿﺢ‬ ‫ﺳﻮف‬ ‫ﻛﻤﺎ‬
‫اﻟﻤﺜﺎل‬)٣(
‫ﺑ‬ ‫ﺗﻘﻮم‬ ‫ﺣﺎﺳﺒﺔ‬ ‫اﻻﻟﺔ‬ ‫ﺳﻨﺼﻨﻊ‬ ‫اﻟﻤﺜﺎل‬ ‫ھﺬا‬ ‫ﻓﻲ‬‫ﺈﯾﺠﺎد‬‫اﻟﺰاوﯾﺔ‬ ‫وظﻞ‬ ‫اﻟﺘﻤﺎم‬ ‫وﺟﯿﺐ‬ ‫اﻟﺠﯿﺐ‬ ‫ﻗﯿﻢ‬،
‫ﻛﻤﺎ‬‫ﻧ‬‫ﺑ‬ ‫ﻘﻮم‬‫ﺈﯾﺠﺎد‬‫ﻟﻸ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬‫ﺑﺎﻹ‬ ‫ﻋﺪاد‬‫ﺿﺎﻓﺔ‬‫إﻟﻰ‬‫ﻣﺎ‬ ‫ﻋﺪد‬ ‫ﺗﻘﺮﯾﺐ‬‫إﻟﻰ‬‫ﻋﺸﺮﯾﺔ‬ ‫ﻣﻨﺰﻟﺔ‬
‫واﺣﺪة‬.
‫ﺑﺘﺸﻐﯿﻞ‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬ ‫ﻧﻘﻮم‬‫ﺑﺮﻧﺎﻣﺞ‬‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬٦‫و‬‫إﻧﺸﺎء‬‫ﻋﻠﯿﮫ‬ ‫ﺟﺪﯾﺪ‬ ‫ﻣﺸﺮوع‬.
‫اﻟﻨﻤﻮذ‬ ‫ﺷﻜﻞ‬ ‫ﻧﺠﻌﻞ‬‫ج‬)Form(‫ﻛﺎﻟﺘﺎﻟﻲ‬:
‫اﻟﺰاوﯾﺔ‬ ‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬ ‫اﻟﺬي‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬ ‫ﻧﻘﻮم‬،‫واﻷﻋﺪاد‬‫وﻟﯿﻜﻦ‬:
Dim Xnumber(0 to 4)
‫ﻧﻼﺣﻆ‬‫أ‬‫ﺗﺤﻤﻞ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻧﮫ‬٥‫ﻣﺘﻐﯿﺮ‬ ‫اﺳﺘﺨﺪام‬ ‫ﯾﻤﻜﻨﻨﺎ‬ ‫طﺒﻌﺎ‬ ‫ﻟﺘﺨﺰﯾﻦ‬ ‫وﺣﺪات‬
‫ﻟﻜﻦ‬ ‫واﺣﺪ‬‫أ‬‫اﻷ‬ ‫ھﺬه‬ ‫ﻣﺜﻞ‬ ‫ﻓﻲ‬ ‫اﻟﺘﺮﺗﯿﺐ‬ ‫ﻓﻀﻞ‬‫ﻣﻮر‬‫ﻋﻤﻠﯿﺔ‬ ‫ﻟﻜﻞ‬ ‫واﺣﺪ‬ ‫ﻣﺘﻐﯿﺮ‬ ‫ﺑﺎﺳﺘﺨﺪام‬
‫ﻣﻨﻔﺮدة‬‫ﻷﻧﮫ‬‫ﻻﺣﻘﺎ‬ ‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫وﺗﻄﻮﯾﺮ‬ ‫اﻟﺮﺟﻮع‬ ‫ﻓﻲ‬ ‫ﯾﺴﺎﻋﺪ‬ ‫ﺳﻮف‬،‫ﻛﻤﺎ‬‫أ‬‫ﻟﻤﺎ‬ ‫ﺗﻄﺒﯿﻖ‬ ‫ﻧﮫ‬
‫اﻟﺴﺎﺑﻖ‬ ‫اﻟﺪرس‬ ‫ﻓﻲ‬ ‫ﺗﻌﻠﻤﻨﺎه‬.
‫وﺑﻌﺪ‬‫ذﻟﻚ‬‫ﯾﺠﺐ‬‫أ‬‫ﺑﺎي‬ ‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬ ‫اﻟﺬي‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫ﻧﻘﻮم‬ ‫ن‬)pi(
Dim Pi as single
‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﻧﻀﻊ‬Form_Load‫ﻗﯿ‬ ‫ﻟﺘﺤﺪﯾﺪ‬ ‫وذﻟﻚ‬‫ﺑﺎي‬ ‫ﻤﺔ‬
Pi = 22 / 7
‫اﻟﺰر‬ ‫داﺧﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬sin)Command1(
Xnumber(0) = Sin(Val(Text1.Text) * Pi / 180)
MsgBox Xnumber(0)
‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬
‫اﻟﺪوال‬ ‫ھﺬه‬ ‫داﺧﻞ‬)Sin,Cos,Tan,Abs,Round(‫ﯾﺠﺐ‬‫أ‬‫ﻋﺪد‬ ‫ﯾﻜﻮن‬ ‫ن‬،‫ﻟﺬﻟﻚ‬
‫داﻟﺔ‬ ‫ﻧﺴﺘﺨﺪم‬Val‫ﻧﺼﯿﺔ‬ ‫ﺳﻠﺴﻠﺔ‬ ‫ﻣﻦ‬ ‫ﺑﺪاﺧﻠﮭﺎ‬ ‫ﻣﺎ‬ ‫ﻟﺘﺤﻮﯾﻞ‬‫إﻟﻰ‬‫أ‬‫ﻋﺪاد‬.
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﯾﺤﻤﻞ‬Xnumber(0)‫اﻟﺰاوﯾﺔ‬ ‫ﺟﯿﺐ‬ ‫ﻗﯿﻤﺔ‬،‫ﻻﺣﻆ‬‫أ‬‫ﻗﻤﻨﺎ‬ ‫ﻧﮫ‬
‫اﻟﺪاﺋﺮي‬ ‫اﻟﻨﻈﺎم‬ ‫ﻣﻦ‬ ‫اﻟﺰاوﯾﺔ‬ ‫ﺑﺘﺤﻮﯾﻞ‬‫إﻟﻰ‬‫اﻟﻮاردة‬ ‫اﻟﻌﻼﻗﺔ‬ ‫طﺮﯾﻖ‬ ‫ﻋﻦ‬ ‫اﻟﺴﺘﯿﻨﻲ‬ ‫اﻟﻨﻈﺎم‬
ً ‫ﺳﺎﺑﻘﺎ‬،‫إ‬‫ذ‬‫أ‬‫ﻣﻔﮭﻮﻣ‬ ‫ﯾﻌﺘﺒﺮ‬ ‫اﻟﺴﺘﯿﻨﻲ‬ ‫اﻟﻨﻈﺎم‬ ‫ن‬ً ‫ﺎ‬‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﻟﺪى‬‫أ‬‫اﻟﺪاﺋﺮي‬ ‫ﻗﺮﯾﻨﮫ‬ ‫ﻣﻦ‬ ‫ﻛﺜﺮ‬.
‫اﻟﺴﻄﺮ‬‫اﻟﺜﺎﻧﻲ‬:‫إ‬‫ﻟﻠﺰاوﯾﺔ‬ ‫اﻟﺠﯿﺐ‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺤﻤﻞ‬ ‫ﻟﻠﻤﺴﺘﺨﺪم‬ ‫رﺳﺎﻟﺔ‬ ‫رﺳﺎل‬.
‫اﻟﻤﻼﺣﻈﺔ‬ ‫ﯾﻤﻜﻨﻚ‬ ‫ﻛﻤﺎ‬‫أ‬‫دﻗﯿﻘﺔ‬ ‫ﺗﻜﻮن‬ ‫اﻟﺰاوﯾﺔ‬ ‫ﺟﯿﺐ‬ ‫ﻗﯿﻢ‬ ‫ن‬ً ‫ﺟﺪا‬‫اﻟﺰاوﯾﺔ‬ ‫ﺗﻘﺮﯾﺐ‬ ‫ﯾﻤﻜﻨﻚ‬ ‫ﻟﻜﻦ‬
‫اﻟﺪاﻟﺔ‬ ‫ﺑﺎﺳﺘﺨﺪام‬Round‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬ ‫ﯾﻜﻮن‬ ‫وﺳﻮف‬:
Xnumber(0) = Round(Sin(Val(Text1.Text) * Pi / 180), 2)
‫ﻧﻼﺣﻆ‬‫أ‬‫اﻟﺘﻘ‬ ‫ﺗﻢ‬ ‫ﻧﮫ‬‫ﺮﯾﺐ‬‫إﻟﻰ‬‫أ‬‫ﻋﺸﺮﯾﺘﯿﻦ‬ ‫ﻣﻨﺰﻟﺘﯿﻦ‬ ‫ﻗﺮب‬.
‫اﻟﺘﻤﺎم‬ ‫ﺟﯿﺐ‬ ‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬)Cos(
Xnumber(1) = Round(Cos(Val(Text1.Text) * Pi / 180), 2)
MsgBox Xnumber(1)
‫ﻻﺣﻆ‬ ‫ﻟﻜﻦ‬ ‫ﺳﺎﺑﻘﮫ‬ ‫ﻣﺜﻞ‬ ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬‫أ‬‫اﻟﻤﺘﻐﯿﺮ‬ ‫ن‬xnumber(1).
‫ﻣﺮة‬ ‫اﻟﻌﻤﻠﯿﺔ‬ ‫ﺑﺘﻜﺮار‬ ‫ﻧﻘﻮم‬‫أ‬‫ﻓﻲ‬ ‫ﺧﺮى‬‫إﯾﺠﺎد‬‫اﻟﻈﻞ‬.
Xnumber(2) = Round(Tan(Val(Text1.Text) * Pi / 180), 2)
MsgBox Xnumber(2)
‫ﻧﻘﻮم‬ً ‫أﯾﻀﺎ‬‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬Abs‫ﻹ‬‫ﯾﺠﺎد‬‫ا‬‫اﻟﻤﺪﺧﻞ‬ ‫ﻟﻠﻌﺪد‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫ﻟﻘﯿﻤﺔ‬.
Xnumber(3) = Abs(Val(InputBox("Number::", "Abs")))
MsgBox Xnumber(3)
ً‫أوﻻ‬‫ﻧﻼﺣﻆ‬‫أ‬‫ﺳﺎﺑﻘ‬ ‫ﻋﻦ‬ ‫ﯾﺨﺘﻠﻒ‬ ‫اﻟﻜﻮد‬ ‫ھﺬا‬ ‫ن‬‫ﮫ‬‫إ‬‫ﺻﻨﺪوق‬ ‫ﻋﺮض‬ ‫ﯾﺘﻢ‬ ‫ھﻨﺎ‬ ‫ذ‬‫اﻹدﺧﺎل‬
InputBox‫وﺗﺘﻢ‬‫إ‬‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻟﮫ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﻋﺮض‬ ‫ﺛﻢ‬ ‫وﻣﻦ‬ ‫داﺧﻠﮫ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫دﺧﺎل‬
‫ﻧﺼﯿﺔ‬ ‫رﺳﺎﻟﺔ‬.
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﻤﺘﻐﯿﺮ‬Xnumber(3)‫داﺧﻞ‬ ‫ﯾﻮﺟﺪ‬ ‫ﻟﻤﺎ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬
‫أ‬‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﻗﻮاس‬abs‫وﻧﻼﺣﻆ‬ ،‫أ‬‫داﺧﻞ‬ ‫ن‬absّ‫ﺪ‬‫ﺑ‬ ‫ﻻ‬‫أ‬‫ن‬‫ﯾﻜﻮن‬‫ھﻨﺎك‬‫ﻟﺬﻟﻚ‬ ‫ﻋﺪد‬
‫داﻟﺔ‬ ‫اﺳﺘﺨﺪﻣﻨﺎ‬Val‫ﻟﺘﺤﻮﯾ‬ ‫وھﻲ‬‫ﻞ‬‫اﻟﻨﺺ‬‫إﻟﻰ‬،‫ﻋﺪد‬‫أﻣﺎ‬‫داﻟﺔ‬InputBox‫ﻓﮭﻲ‬‫ﻹ‬‫ظﮭﺎر‬
‫ﺻﻨﺪوق‬‫إ‬‫ﺑ‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﯾﻘﻮم‬ ‫ﻟﻠﻤﺴﺘﺨﺪم‬ ‫دﺧﺎل‬‫ﺈ‬‫اﻟﻤﺮاد‬ ‫اﻟﻌﺪد‬ ‫دﺧﺎل‬‫إﯾﺠﺎد‬‫ﻟﮫ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬.
‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫وھﻮ‬ ‫ﺑﺴﯿﻂ‬‫ﻹ‬‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺤﻤﻞ‬ ‫ﻟﻠﻤﺴﺘﺨﺪم‬ ‫رﺳﺎﻟﺔ‬ ‫ظﮭﺎر‬
Xnumber(3).
‫زر‬ ‫داﺧﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻜﺘﺎﺑﺔ‬ ‫ﻧﻘﻮم‬Round
Xnumber(4) = Round(Val(InputBox("Number::",
"Round")),2)
MsgBox Xnumber(4)
‫ﺳﺎﺑﻘﮫ‬ ‫ﯾﺸﺒﮫ‬ ‫اﻟﻜﻮد‬ ‫ھﺬا‬‫إ‬‫ﻻ‬‫أ‬‫اﻟﺘﻘﺮﯾﺐ‬ ‫داﻟﺔ‬ ‫اﺳﺘﺨﺪام‬ ‫ﺗﻢ‬ ‫ﻧﮫ‬‫إﻟﻰ‬‫ﻋﺸﺮﯾﺘﯿﻦ‬ ‫ﻣﻨﺰﻟﺘﯿﻦ‬
‫اﻟﻨﮭﺎﺋﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬:
‫ﺗﺬﻛﺮ‬‫أ‬‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮاﻓﻖ‬ ‫اﻟﻤﺜﺎل‬ ‫ن‬.
‫اﻟﺪرس‬‫اﻟﺜﺎﻧﻲ‬:‫ﻣﺘﻨﻮﻋﺔ‬ ‫دوال‬)٢(
‫اﻟﺮﯾﺎﺿﯿﺔ‬ ‫اﻟﺪوال‬ ‫ﺑﺎﺳﺘﺨﺪام‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﻜﺘﻔﻲ‬ ‫ﻟﻦ‬،‫و‬‫إ‬‫ﯾﺘﻌﺪاه‬ ‫ﻗﺪ‬ ‫ﻧﻤﺎ‬‫إﻟﻰ‬‫دوال‬ ‫اﺳﺘﺨﺪام‬
‫أ‬‫وﻏﯿﺮھﺎ‬ ‫واﻟﺒﺤﺚ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻣﻘﺎرﻧﺔ‬ ‫دوال‬ ‫ﻣﺜﻞ‬ ‫ﺧﺮى‬،‫اﻟﺪرس‬ ‫ھﺬا‬ ‫ﻓﻲ‬ ‫ﺳﻨﺸﺮﺣﮫ‬ ‫ﻣﺎ‬ ‫وھﺬا‬.
‫ﺗﺤﻮﯾﻞ‬ ‫داﻟﺔ‬‫اﻷﻋﺪاد‬‫واﻷرﻗﺎم‬‫إﻟﻰ‬‫ﻧﺼﯿﺔ‬ ‫ﺳﻼﺳﻞ‬Str
‫ﻣﮭﻤﺔ‬ ‫داﻟﺔ‬ ‫ھﺬه‬ً ‫ﺟﺪا‬،‫ﺑﻌﺾ‬ ‫ﻓﻲ‬‫اﻷﺣﯿﺎن‬‫رﻗﻤﯿﺔ‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺤﻮﯾﻞ‬ ‫ﯾﺠﺐ‬‫إﻟﻰ‬‫ﻧﺼﯿﺔ‬ ‫ﻗﯿﻤﺔ‬
‫ﻹﺟﺮاء‬‫ﻻ‬ ‫ﻋﻠﯿﮭﺎ‬ ‫ﻣﺨﺘﻔﻠﺔ‬ ‫ﻋﻤﻠﯿﺎت‬‫ﯾﺼﺢ‬‫إﺟﺮاء‬‫ﻋﻠﻰ‬ ‫اﻟﻌﻤﻠﯿﺎت‬ ‫ھﺬه‬‫اﻷﻋﺪاد‬.‫ﺳﻮف‬
‫ﻋﺎم‬ ‫ﺑﺸﻜﻞ‬ ‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﻓﻲ‬ ‫اﻟﺘﻘﺪم‬ ‫ﻋﻦ‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺘﻌﺮف‬.‫أﻣﺎ‬‫ﻓﯿﻜﻮن‬ ‫ﺷﻜﻠﮭﺎ‬
‫ﻛﺎﻟﺘﺎﻟﻲ‬:
A = str(number)
‫ﻧﺼﯿﺔ‬ ‫ﺳﻠﺴﺔ‬ ‫ﻣﻦ‬ ‫ﺟﺰءا‬ ‫ﺗﺄﺧﺬ‬ ‫داﻟﺔ‬Mid
‫أ‬ّ‫ﺒ‬‫ﺷ‬‫اﻟﻘﺺ‬ ‫ﺑﻌﻤﻠﯿﺔ‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬ ‫ﻋﻤﻞ‬ ‫ﮫ‬‫إ‬‫ﻋﻠﯿﻚ‬ ‫ﯾﺠﺐ‬ ‫ذ‬‫أ‬‫اﻟﻤﺮاد‬ ‫اﻟﺴﻠﺴﻠﺔ‬ ‫ﺑﺪء‬ ‫ﻣﻜﺎن‬ ‫ﺗﺤﺪد‬ ‫ن‬
‫أ‬‫اﻟﺤﺮوف‬ ‫وﻋﺪد‬ ‫ﻗﯿﻤﺘﮭﺎ‬ ‫ﺧﺬ‬،‫ﯾ‬ ‫ﺳﻮف‬ ‫وﺑﻌﺪھﺎ‬‫ﺄ‬‫ﻣﺘﻐﯿﺮ‬ ‫ﺧﺬ‬‫آ‬‫اﻟﻘﯿﻤﺔ‬ ‫ﺧﺮ‬،‫ﺷﻜﻠﮭﺎ‬ ‫وﯾﻜﻮن‬
‫ﻛﺎﻟﺘﺎﻟﻲ‬:
A =mid(Text,start‫اﻟﺒﺪاﯾﺔ‬ ‫,ﻣﻮﻗﻊ‬Length )‫اﻟﻄﻮل‬
‫ﻻﺣﻆ‬‫أ‬‫ﻣﺜ‬ ‫ﻋﻨﺪه‬ ‫ﻣﻦ‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫اﻟﻤﺮاد‬ ‫اﻟﺤﺮف‬ ‫رﻗﻢ‬ ‫ﯾﺸﻤﻞ‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻣﻮﻗﻊ‬ ‫ن‬‫ﻟﻮ‬ ‫ﻼ‬‫أ‬‫ردﻧﺎ‬‫أ‬‫ﻧﺎﺧﺬ‬ ‫ن‬
‫اﻷ‬ ‫اﻟﺤﺮﻓﯿﻦ‬‫ﻛﻠﻤﺔ‬ ‫ﻣﻦ‬ ‫ﺧﯿﺮﯾﻦ‬Ahmed‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫اﻟﺸﻜﻞ‬ ‫ﺳﯿﻜﻮن‬:
A = mid("ahmed",3,2)
‫داﻟﺔ‬‫إﯾﺠﺎد‬‫اﻟﻨﺼﯿﺔ‬ ‫اﻟﺴﻠﺴﻠﺔ‬ ‫ﻓﻲ‬ ‫اﻟﺤﺮوف‬ ‫ﻋﺪد‬Len
‫ﺑﯿﺎﻧﺎت‬ ‫ﻧﻘﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻌﻤﻞ‬ ‫ﺑﺮاﻣﺞ‬ ‫ﺑﺮﻣﺠﺔ‬ ‫ﻋﻨﺪ‬ ‫ﺧﺎﺻﺔ‬ ‫ﻛﺒﯿﺮة‬ ‫ﻓﺎﺋﺪة‬ ‫ﻟﮭﺎ‬ ‫وﺳﯿﻜﻮن‬ ‫ﺑﺴﯿﻄﺔ‬ ‫داﻟﺔ‬
‫أو‬‫ﺗﺤﻮﯾﻠﮭﺎ‬،‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫وﺷﻜﻠﮭﺎ‬:
A = len(string)
‫اﻟﻔﺮاﻏﺎت‬ ‫ﺣﺬف‬ ‫داﻟﺔ‬Trim
‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫ﯾﻜﻮن‬ ‫ﺷﻜﻠﮭﺎ‬:
A = trim(string)
‫داﻟﺘ‬‫ﺎ‬‫اﻟﺤﺮوف‬ ‫ﺷﻜﻞ‬ ‫ﺗﺤﻮﯾﻞ‬Ucase & Lcase
‫داﻟﺘ‬،‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﻣﻌﺮﻓﺘﮭﺎ‬ ‫ﯾﻔﺘﺮض‬ ‫ﺎن‬‫ﺣﯿﺚ‬:
‫اﻟﺪاﻟﺔ‬Ucase‫ا‬ ‫اﻟﺤﺮوف‬ ‫ﺗﺤﻮل‬‫ﻹ‬‫ﺻﻐﯿﺮة‬ ‫ﻣﻦ‬ ‫ﻧﺠﻠﯿﺰﯾﺔ‬‫إﻟﻰ‬‫ﻛﺒﯿﺮة‬،‫وﺷﻜﻠﮭﺎ‬:
A = ucase(string)
‫اﻟﺪاﻟﺔ‬Lcase‫ا‬ ‫اﻟﺤﺮوف‬ ‫ﺗﺤﻮل‬‫ﻹ‬‫ﻛﺒﯿﺮة‬ ‫ﻣﻦ‬ ‫ﻧﺠﻠﯿﺰﯾﺔ‬‫إﻟﻰ‬‫ﺻﻐﯿﺮة‬،‫وﺷﻜﻠﮭﺎ‬:
a = lcase(string)
‫اﻟﻨﺼﯿﺔ‬ ‫اﻟﺴﻼﺳﻞ‬ ‫ﺑﯿﻦ‬ ‫اﻟﻤﻘﺎرﻧﺔ‬ ‫داﻟﺔ‬StrComp
‫ﻣﮭﻤﺔ‬ ‫داﻟﺔ‬ً ‫ﺟﺪا‬‫اﻷ‬ ‫ﻣﺨﺘﻠﻒ‬ ‫ﻓﻲ‬ ‫ﺗﺴﺘﺨﺪم‬‫ﻣﻮر‬،،‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻣﻘﺎرﻧﺔ‬ ‫ﻣﺜﻼ‬‫و‬‫اﻟﻤﺮور‬ ‫ﻛﻠﻤﺎت‬
‫وﻏﯿﺮھﺎ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﺟﺪاول‬ ‫ﻓﻲ‬ ‫اﻟﻤﻘﺎرﻧﺔ‬،‫و‬‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫ﯾﻜﻮن‬ ‫ﺷﻜﻠﮭﺎ‬:
A = strComp(string1,string2, [Comparison Type ])
‫ﻻﺣﻆ‬‫أ‬‫اﻟﻨﺼﯿﺔ‬ ‫اﻟﺴﻠﺴﻠﺔ‬ ‫ﺑﯿﻦ‬ ‫ﺑﺎﻟﻤﻘﺎرﻧﺔ‬ ‫ﺗﻘﻮم‬ ‫ﻧﮭﺎ‬string1‫و‬string2‫أﻣﺎ‬‫اﻟﺨﯿﺎر‬
‫ﻋﻠﻰ‬ ‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﻟﻐﺔ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﻣﺤﺪد‬ ‫وھﻮ‬ ‫اﻟﻤﻘﺎرﻧﺔ‬ ‫ﻧﻮع‬ ‫ﻓﮭﻮ‬ ‫اﻟﺜﺎﻟﺚ‬
binarycompare‫ﻣﺎ‬‫ﺑﺘﻌﺪﯾﻠﮫ‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﯾﻘﻮم‬ ‫ﻟﻢ‬،‫ﺧﻄﺎ‬ ‫ﯾﻮﺟﺪ‬ ‫وﻻ‬‫إ‬،‫ﺑﺘﻌﺪﯾﻠﮫ‬ ‫ﺗﻘﻢ‬ ‫ﻟﻢ‬ ‫ن‬
‫ﻧﺘﻄﺮق‬ ‫ﻟﻦ‬‫إﻟﻰ‬‫أ‬‫اﻟﻤ‬ ‫ﻧﻮع‬‫ﻘﺎرﻧﺔ‬،‫ﻋﻦ‬ ‫اﻟﺤﺪﯾﺚ‬ ‫ﯾﻜﻔﯿﻨﺎ‬binarycompare‫ﻗﯿﺎم‬ ‫ﺑﻌﺪ‬ ‫ﺣﯿﺚ‬
‫اﻟﻠﻐﺔ‬ ‫ﻣﺘﺮﺟﻢ‬)compiler(‫ﺑﯿﻦ‬ ‫ﺑﺎﻟﻤﻘﺎرﻧﺔ‬string1‫و‬string2‫ھﻨﺎﻟﻚ‬ ‫وﺟﺪ‬ ‫ﻟﻮ‬
‫ﯾﻌﻄﻲ‬ ‫ﺳﻮف‬ ‫ﺑﯿﻨﮭﻤﺎ‬ ‫ﺗﻄﺎﺑﻖ‬A‫ﻗﯿﻤﺔ‬0‫ﯾﻌﻄﻲ‬ ‫ﺳﻮف‬ ‫ﺗﻄﺎﺑﻖ‬ ‫ھﻨﺎﻟﻚ‬ ‫ﯾﻜﻦ‬ ‫ﻟﻢ‬ ‫ﻟﻮ‬ ‫وﻟﻜﻦ‬
‫ﻗﯿﻤﺔ‬ ‫اﻟﻤﺴﺘﺨﺪم‬1‫وھﻜﺬا‬.
‫ﻻﺣﻆ‬‫أ‬‫ﯾﻜﻮن‬ ‫ﻋﻠﯿﮭﺎ‬ ‫ﺷﺮط‬ ‫ﺗﻜﻮﯾﻦ‬ ‫ﯾﻤﻜﻨﻚ‬ ‫ﻧﮫ‬‫ﻛﺎﻟﺘﺎﻟﻲ‬:
If a = 0 then action ….. ‫ﺗﻄﺎﺑﻖ‬ ‫ﺣﺪوث‬ ‫ﻋﻨﺪ‬
If a = 1 then action ….. ‫ﺗﻄﺎﺑﻖ‬ ‫اي‬ ‫وﺟﻮد‬ ‫ﻋﺪم‬ ‫ﻋﻨﺪ‬
‫اﻟﻤﺜﺎل‬)٣(
‫ﻧﻘﻮم‬ ‫ﺳﻮف‬‫ﻓﻲ‬‫ﺑﺘﺸﻐﯿﻞ‬ ‫ﻧﺒﺪأ‬ ،‫ﺗﺠﺮﯾﺒﮭﺎ‬ ‫طﺮﯾﻖ‬ ‫ﻋﻦ‬ ‫اﻟﺪوال‬ ‫ﺑﻌﺾ‬ ‫ﺑﺘﻮﺿﯿﺢ‬ ‫اﻟﻤﺜﺎل‬ ‫ھﺬا‬
‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﺮﻧﺎﻣﺞ‬٦‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫اﻟﻨﻤﻮذج‬ ‫ﺷﻜﻞ‬ ‫وﻧﺠﻌﻞ‬:
‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬len)Command1(
lennumber = Len(Text1.Text)
MsgBox lennumber
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﯾﻘﻮم‬lennumber‫ﺑ‬‫ﺄ‬‫ﻣﻦ‬ ‫اﻟﺤﺮوف‬ ‫ﻋﺪد‬ ‫ﺧﺬ‬text1‫ﺑﺎﺳﺘﻌﻤﺎل‬
‫اﻟﺪاﻟﺔ‬len‫اﻟﻤﻼﺣﻈﺔ‬ ‫ﻣﻊ‬‫أ‬‫ﺣﺮﻓﺎ‬ ‫ﺗﺤﺴﺐ‬ ‫اﻟﻔﺮاﻏﺎت‬ ‫ن‬.
‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫اﻟﺜﺎﺑﺖ‬ ‫طﺒﺎﻋﺔ‬lennumber‫ﻟﻠﻤﺴﺘﺨﺪم‬ ‫رﺳﺎﻟﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬.
‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬Mid
l1 = Val(InputBox("StartPosition"))
l2 = Val(InputBox("Length"))
MidString = Mid(Text1.Text, l1, l2)
MsgBox MidString
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﯾﺤﻤﻞ‬l1‫ﺑﺪاﯾﺔ‬ ‫ﻣﻮﻗﻊ‬ ‫ﺗﻤﺜﻞ‬ ‫اﻟﺘﻲ‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﯾﺪﺧﻠﮭﺎ‬ ‫اﻟﺘﻲ‬ ‫اﻟﻘﯿﻤﺔ‬
‫اﻻﻗﺘﻄﺎع‬.
‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫اﻟﺜﺎﺑ‬ ‫ﻧﻔﺲ‬‫اﻻﻗﺘﻄﺎع‬ ‫طﻮل‬ ‫ﯾﻤﺜﻞ‬ ‫ﻟﻜﻨﮫ‬ ‫اﻟﺴﺎﺑﻖ‬ ‫ﺖ‬.
‫داﻟﺔ‬Val‫ﯾﻤﻜﻨﻚ‬‫إ‬‫ز‬‫ا‬‫ﻟﺘﮭﺎ‬‫أﻧﺎ‬ ‫ﻟﻜﻦ‬ ،‫أﻧﺼﺢ‬‫اﻟﺪاﻟﺔ‬ ‫ﺑﻮﺿﻊ‬،‫ﻷ‬‫ﻧﮫ‬‫ﻓﻲ‬ ‫اﻟﺘﻘﺪم‬ ‫ﻣﻊ‬ ‫ﺗﻮاﺟﮭﻚ‬ ‫ﻗﺪ‬
‫ﻻ‬ ‫ﻣﺘﻐﯿﺮات‬ ‫اﻟﺒﺮﻣﺠﺔ‬‫ﻟﻠﺤﯿ‬ ‫داﺋﻤﺎ‬ ‫ﻓﻀﻌﮭﺎ‬ ‫ﻣﺜﻼ‬ ‫ﻧﺼﯿﺔ‬ ‫ﺑﺴﻠﺴﻠﺔ‬ ‫ﺳﻮى‬ ‫ﺗﻌﻮد‬‫ﻄﺔ‬.
‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﺴﻄﺮ‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﻓﻲ‬ ‫اﻻﻗﺘﻄﺎع‬ ‫ﻗﯿﻤﺔ‬ ‫ﯾﺨﺰن‬midstring.
‫اﻟﺮاﺑﻊ‬ ‫اﻟﺴﻄﺮ‬:‫اﻟﺜﺎﺑﺖ‬ ‫طﺒﺎﻋﺔ‬midstring.
‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬ucase
utext = UCase(Text1.Text)
MsgBox utext
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﯾﺤﻤﻞ‬utext‫اﻷ‬‫ﺗﺤﻮﯾﻠﮭﺎ‬ ‫ﺑﻌﺪ‬ ‫ﺣﺮف‬‫إﻟﻰ‬‫ﻓﻲ‬ ‫ﻛﺒﯿﺮة‬text1
‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫ﻗﯿﻤﺔ‬ ‫طﺒﺎﻋﺔ‬utext
‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬strcomp
a = StrComp(LCase(Text1.Text), "end")
If a = 0 Then End
‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬:
‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﯾﺤﻤﻞ‬a‫ﻗﯿﻤﺔ‬text1‫ﻗﯿﻤﺔ‬ ‫ﻣﻊ‬ ‫وﯾﻘﺎرﻧﮭﺎ‬"end"‫ﻻﺣﻆ‬‫أ‬‫ﻗﺪ‬ ‫ﻧﮫ‬
‫ﺑﻮﺿﻊ‬ ‫ﻗﻤﻨﺎ‬text1‫داﻟﺔ‬ ‫ﻓﻲ‬Lcase‫اﻟﺤﺮوف‬ ‫ﻟﺘﺤﻮﯾﻞ‬ ‫وذﻟﻚ‬‫إﻟﻰ‬‫ﻣﻊ‬ ‫ﻟﺘﻄﺎﺑﻖ‬ ‫ﺻﻐﯿﺮة‬
end
‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫إ‬‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﯾﻐﻠﻖ‬ ‫ﺳﻮف‬ ‫ﺻﺤﯿﺤﺔ‬ ‫اﻟﻤﻘﺎرﻧﺔ‬ ‫ﻧﺘﯿﺠﺔ‬ ‫ﻛﺎﻧﺖ‬ ‫ذا‬.
‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫ﯾﻜﻮن‬ ‫اﻟﻨﮭﺎﺋﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬:
‫ﺗﺬﻛﺮ‬‫أن‬‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻖ‬ ‫اﻟﻤﺜﺎل‬
‫اﻟﻌﺎﺷﺮة‬ ‫اﻟﻮﺣﺪة‬
‫اﻷ‬ ‫ﺑﺮﻣﺠﺔ‬‫ﻟﻌﺎب‬‫وﻣﺴﺘﻤﺮ‬ ‫داﺋﻢ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺗﺘﻘﺪم‬،‫ﯾﻨﻜﺮ‬ ‫وﻻ‬‫أ‬‫ﺣﺪ‬‫أ‬‫ﻧﮭﺎ‬‫أ‬‫ﺻﺒﺤﺖ‬‫ﻓﺮﻋ‬ً ‫ﺎ‬
‫ﻣﮭﻤ‬ً ‫ﺎ‬‫اﻷ‬ ‫ﺑﺪأت‬ ‫ﻓﻘﺪ‬ ،‫اﻟﺒﺮﻣﺠﺔ‬ ‫ﻣﻦ‬ ‫ﺑﮫ‬ ‫ﯾﺴﺘﮭﺎن‬ ‫وﻻ‬ ‫ﺑﻞ‬‫ﻟﻌﺎب‬‫واﻟﺘﻄﺒﯿﻘﺎت‬
‫ﺗﻐﺰو‬ ‫اﻟﻤﺨﺘﻠﻔﺔ‬ ‫اﻟﺮﺳﻮﻣﯿﺔ‬‫أ‬‫اﻟﺤﺎﺳﺐ‬ ‫ﺟﮭﺰة‬،‫وﺗﻌﺪﺗﮭﺎ‬‫إﻟﻰ‬‫اﻟﺬﻛﯿﺔ‬ ‫اﻟﮭﻮاﺗﻒ‬
‫وﻏﯿﺮھﺎ‬.
‫اﻷ‬ ‫وﺑﺮﻣﺠﺔ‬ ‫ﺗﺼﻤﯿﻢ‬ ‫طﺮق‬ ‫ﺗﺨﺘﻠﻒ‬‫ﻟﻌﺎب‬‫ﺗﻄﻮر‬ ‫ﻣﻊ‬ ‫ﻣﺨﺘﻠﻔﺔ‬ ‫ﻣﺪاﺧﻞ‬ ‫ﺳﻠﻜﺖ‬ ‫ﻓﻘﺪ‬
‫اﻟﻌﻠﻢ‬،‫أﻣﺎ‬‫اﻷ‬ ‫ﺑﺮﻣﺠﺔ‬ ‫ﺑﺘﻌﻠﻢ‬ ‫ﻧﺒﺪأ‬ ‫ﺳﻮف‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬه‬ ‫ﻓﻲ‬‫ﻟﻌﺎب‬‫ﻣﺤﺮك‬ ‫ﻋﻠﻰ‬‫أﻟﻌﺎب‬
)‫ﺑﺮﻣﺠﯿﺔ‬ ‫دوال‬ ‫ﻣﻜﺘﺒﺔ‬(Truevision3D‫ﻣﺤﺮك‬ ‫وھﻮ‬‫أ‬‫ﻣﺤﺮﻛ‬ ‫ﻋﺘﺒﺮه‬ً ‫ﺎ‬‫ﺟﯿﺪ‬ً ‫ا‬
‫وﻗﻮﯾ‬،ً ‫ﺎ‬‫ﻣﺜﻞ‬ ‫وﻛﺜﯿﺮة‬ ‫ﻣﺨﺘﻠﻔﺔ‬ ‫ﻟﻐﺎت‬ ‫وﯾﺪﻋﻢ‬C#،C++،Delphi،visualbasic.net
‫واﻷھﻢ‬‫أ‬‫ﻟﻐﺔ‬ ‫ﯾﺪﻋﻢ‬ ‫ﻧﮫ‬visualbasic.
‫ﻣﻜﺘﺒﺔ‬ ‫ﻋﻠﻰ‬ ‫اﻟﻌﺮﺑﯿﺔ‬ ‫اﻟﺪروس‬Truevision3d‫ﻣﺎ‬ ‫ﻧﻮﻋﺎ‬ ‫ﻗﻠﯿﻠﺔ‬،‫دروس‬ ‫ﺗﻮﺟﺪ‬ ‫ﻟﻜﻦ‬
‫ﺑﺎﻟﻠﻐﺎت‬ ‫اﻟﻤﻜﺘﺒﺔ‬ ‫ﻟﮭﺬه‬ ‫ﺟﯿﺪة‬،‫اﻷﺟﻨﺒﯿﺔ‬‫ﻛﻤﺎ‬‫أ‬‫ﻣﺘﻤﻜﻨ‬ ‫ﺗﺠﻌﻞ‬ ‫ﺳﻮف‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬا‬ ‫ن‬ً ‫ﺎ‬‫ﻣﻨﮭﺎ‬
‫واﻷھﻢ‬‫ذﻟﻚ‬ ‫ﻣﻦ‬‫أﻧﮭ‬‫ﻓﻤﻦ‬ ‫ﺳﺎﺑﻘﺘﮭﺎ‬ ‫ﻋﻦ‬ ‫وﺗﺨﺘﻠﻒ‬ ‫ﻣﻤﺘﻌﺔ‬ ‫وﺣﺪة‬ ‫ﺎ‬‫أ‬‫ﻓﯿﮫ‬ ‫ﻧﺠﺢ‬ ‫اﻟﺸﺊ‬ ‫ﺣﺐ‬.
‫ﻣﻘﺴﻤﺔ‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬه‬‫إﻟﻰ‬‫ﺑ‬ ‫ﺗﻨﻘﻠﻚ‬ ‫ﺳﻮف‬ ‫دروس‬‫ﺈذ‬‫ﺗﻌ‬ ‫ﷲ‬ ‫ن‬‫ﺎﻟﻰ‬‫إﻟﻰ‬‫ﻟﺒﺮﻣﺠﺔ‬ ‫ﺟﯿﺪ‬ ‫ﻓﮭﻢ‬
‫اﻷ‬‫ﻟﻌﺎب‬،‫و‬‫إﻧﺸﺎء‬‫أﻟﻌﺎب‬‫ﺗﻘﺮﯾﺒﺎ‬ ‫ﻛﺎﻣﻠﺔ‬ ‫اﻟﺒﻌﺪ‬ ‫ﺛﻼﺛﯿﺔ‬،‫ﻋﻦ‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬه‬ ‫ﻓﻲ‬ ‫ﻧﺘﺤﺪث‬ ‫ﺳﻮف‬
‫اﻷ‬ ‫ﺑﺮﻣﺠﺔ‬‫ﻟﻌﺎب‬‫اﻟﺒﻌﺪ‬ ‫ﺛﻼﺛﯿﺔ‬3D‫ﻧﺘﻄﺮق‬ ‫وﻟﻦ‬‫إﻟﻰ‬2D‫اﻟﻌﻠﻢ‬ ‫ﻣﻊ‬‫أ‬‫ﻣﺤﺮك‬ ‫ن‬
TrueVision‫ﻋﺪد‬ ‫ﯾﻤﻠﻚ‬ً ‫ا‬‫ﻛﺒﯿﺮ‬ً ‫ا‬‫اﻟﺪوال‬ ‫ﻣﻦ‬)Functions(‫ﻣﺠﺎل‬ ‫ﻓﻲ‬2d.
‫ﷲ‬ ‫ﺑﺘﻮﻓﯿﻖ‬ ‫ﻧﺒﺪأ‬
‫اﻟﺪرس‬‫اﻷول‬:‫اﻷ‬ ‫ﺑﺮﻣﺠﺔ‬ ‫ﻋﻦ‬ ‫ﻧﺒﺬة‬‫ﻟﻌﺎب‬‫وﻣﺤﺮﻛﺎﺗﮭﺎ‬
‫اﻟﻛﺛﯾرون‬‫ﯾﺑدأون‬‫ﺑﺑرﻣﺟﺔ‬‫اﻷ‬‫ﻟﻌﺎب‬‫ﺑﺎﺳﺗﻌﻣﺎل‬‫ﻣﻛﺗﺑﺗﻲ‬DirectX‫أو‬OpenGl‫ﻟﻛن‬
‫أ‬‫ﻧﺎ‬‫أﻧﺻﺢ‬‫ﻣن‬‫ﯾرﯾد‬‫اﻟﺑد‬‫ء‬‫أ‬‫ن‬‫ﯾﺑدأ‬‫ﺑﻣﺣرك‬‫أﻟﻌﺎب‬‫ﻣﺷﮭور‬ّ‫ﻷن‬DirectX‫وﻗرﯾﻧﮫ‬
OpenGl‫ھﻣﺎ‬‫ﻓﻲ‬‫ﻏﺎﯾﺔ‬‫اﻟﺻﻌوﺑﺔ‬‫ﺧﺻﯾﺻﺎ‬‫ﻟﻠﻣﺑرﻣﺞ‬‫اﻟﻣﺑﺗد‬‫ئ‬.‫ﻣﺣرﻛﺎت‬ ‫ﺟﻣﯾﻊ‬
‫اﻷ‬‫ﻟﻌﺎب‬‫ھﻲ‬‫ﺑﺎﻷﺳﺎس‬‫ﺑﺎﺳﺗﺧدام‬ ‫ﺑرﻣﺟﺗﮭﺎ‬ ‫ﺗم‬DirectX & OpenGl‫اﻷ‬ ‫ﻓﻣﻛﺗﺑﺔ‬‫ﻟﻌﺎب‬
‫ﻣﺎھﻲ‬‫إﻻ‬‫آ‬‫اﻟﻠﻌﺑﺔ‬ ‫ﺻﻧﻊ‬ ‫اﻟﻣﺑرﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﺗﺳﮭل‬ ‫اﻟﺗﻲ‬ ‫اﻟدوال‬ ‫ﻻف‬‫أو‬‫اﻟرﺳوﻣﻲ‬ ‫اﻟﺗطﺑﯾق‬.
‫أ‬‫اﻷ‬ ‫وﺑرﻣﺟﺔ‬ ‫ﺻﻧﺎﻋﺔ‬ ‫ﺷرﻛﺎت‬ ‫ﻏﻠب‬‫ﻟﻌﺎب‬‫ﺧﺎص‬ ‫ﻣﺣرك‬ ‫ﺑﺻﻧﻊ‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬ ‫ﺗﻘوم‬‫ﺑ‬‫ﮭﺎ‬
‫ﻟﺗطوﯾر‬‫أﻟﻌﺎﺑ‬‫ﮭﺎ‬،‫وﻣن‬‫أ‬‫اﻟﺷرﻛﺎت‬ ‫ھذه‬ ‫ﻣﺛﺎل‬RockStar‫اﻟﻣﺣرك‬ ‫ﺻﺎﺣﺑﺔ‬Rage.
‫اﻟﻣﺑرﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺿروري‬ ‫ﻟﯾس‬‫اﻟﺻﻔر‬ ‫ﻣن‬ ‫اﻟﺑداﯾﺔ‬،‫ﻟﮫ‬ ‫ﻣﺣرك‬ ‫وﺻﻧﻊ‬،‫ﺑل‬‫ﻋﻠﯾﮫ‬‫اﻟﻌﻣ‬‫ل‬
‫ﺷرﻛﺎت‬ ‫ﺑﺑرﻣﺟﺗﮭﺎ‬ ‫ﻗﺎﻣت‬ ‫ﻣﺣرﻛﺎت‬ ‫ﻋﻠﻰ‬‫أ‬‫ﻛﻣﺎ‬ ‫ﺧرى‬‫أ‬‫ﻟن‬ ‫ﯾﻧﺗﺟﮫ‬ ‫ﺳوف‬ ‫اﻟذي‬ ‫اﻟﻣﺣرك‬ ‫ن‬
‫اﻟﻣﺣرﻛﺎت‬ ‫ﺑﺎﻗﻲ‬ ‫ﺑﻛﻔﺎءة‬ ‫ﯾﻛون‬‫إ‬‫واﻟﻣﺎﻟﻲ‬ ‫اﻟﻔﻛري‬ ‫اﻟدﻋم‬ ‫ﯾﻣﻠك‬ ‫ﯾﻛن‬ ‫ﻟم‬ ‫ن‬.
‫ﻣﺣرﻛﺎت‬ ‫ﺗطوﯾر‬ ‫اﻟﻣﺗﻘدم‬ ‫اﻟﻣﺑرﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﯾﻣﻛن‬‫أﻟﻌﺎب‬‫ﻣوﺟودة‬ً ‫ﺳﺎﺑﻘﺎ‬‫و‬‫وﻣﻔﺗوﺣﺔ‬ ‫ﻣﺧﺗﻠﻔﺔ‬
‫اﻟﻣﺻدر‬)OpenSource(‫ﯾرﯾد‬ ‫اﻟﺗﻲ‬ ‫اﻟدوال‬ ‫ووﺿﻊ‬.
‫ﻣﺣرﻛﺎت‬ ‫ھﻧﺎﻟك‬‫أﻟﻌﺎب‬‫اﻟﺗﺻﻣﯾم‬ ‫ﺗﺳﺗﺧدم‬ ‫ﻣﺧﺗﻠﻔﺔ‬+‫ﻣﺛل‬ ‫اﻟﻠﻌﺑﺔ‬ ‫ﺻﻧﺎﻋﺔ‬ ‫ﻓﻲ‬ ‫اﻟﺑرﻣﺟﺔ‬
unity‫و‬unreal‫ﻣﺣرﻛﺎت‬ ‫ﺗوﺟد‬ ‫ﻛﻣﺎ‬‫أﻟﻌﺎب‬‫أ‬‫ﻟﻠوﺻول‬ ‫اﻟﺑرﻣﺟﺔ‬ ‫ﺗﺳﺗﺧدم‬ ‫ﺧرى‬‫إﻟﻰ‬
‫ﻣﺛل‬ ‫اﻟﻠﻌﺑﺔ‬Xna‫و‬OgreSdk.
‫أﻣﺎ‬‫ﻧﺳﺗﺧدﻣﮫ‬ ‫ﺳوف‬ ‫اﻟذي‬ ‫اﻟﻣﺣرك‬)TrueVision3d6.2(‫اﻟﺛﺎﻧﻲ‬ ‫اﻟﺻﻧف‬ ‫ﻣن‬ ‫ھو‬
‫اﻻﺳﺗﻌﻣﺎل‬ ‫ﺳﻠس‬ ‫اﻟﺗﻌﻠم‬ ‫ﺳﮭل‬ ‫ﻣﺣرك‬ ‫وھو‬.
‫ﻣﺣرك‬ ‫ﯾﺣوي‬TrueVision‫ﻋدد‬ً‫ا‬‫ﻛﺑﯾر‬ً ‫ا‬‫ﻓﻲ‬ ‫اﻟﻣﺗﺧﺻﺻﺔ‬ ‫اﻟدوال‬ ‫ﻣن‬3d‫و‬
‫اﻟﺗﺻﺎدم‬‫واﻹدﺧﺎل‬‫واﻟﺗ‬‫ﺄ‬‫ﺛﯾرات‬)Effects(‫واﻟﻣﺷﺎھد‬)Scenes(‫ﻟﻠﺑرﻣﺟﺔ‬ ‫ودوال‬
‫اﻷ‬ ‫ﺻﻧﻊ‬ ‫ﻋﻠﯾﻧﺎ‬ ‫ﯾﺳﮭل‬ ‫ﺳوف‬ ‫ﻟذﻟك‬ ‫وﻏﯾرھﺎ‬ ‫اﻟﺑﻌد‬ ‫ﺛﻧﺎﺋﯾﺔ‬‫ﻟﻌﺎب‬.
‫ﻓﻲ‬ ‫اﻟﺗﻘدم‬ ‫ﺑﻌد‬‫ﯾﻣﻛﻧك‬ ‫اﻟﻣﺎدة‬ ‫ھذه‬‫إﻧﺷﺎء‬‫ﻣﺛل‬ ‫ﺧﺎرﺟﯾﺔ‬ ‫ﺑراﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫واﻟﺧراﺋط‬ ‫اﻟﻣﺟﺳﻣﺎت‬
‫ﺑرﻧﺎﻣﺞ‬3dmax‫ﺗﺻدﯾرھﺎ‬ ‫ﺛم‬ ‫وﻣن‬‫إﻟﻰ‬TrueVision.
‫ﺗذﻛر‬:‫ﺟﻣﯾﻊ‬‫اﻷﻣﺛﻠﺔ‬‫واﻟﻣﺟﺳﻣﺎت‬)Models(‫واﻟﺧﺎﻣﺎت‬)Texture(‫اﻟﺗﻲ‬ ‫واﻟﻣﻠﻔﺎت‬
‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓﻘﺔ‬ ‫ﺳﺗﻛون‬ ‫ﺗﺣﺗﺎﺟﮭﺎ‬ ‫ﺳوف‬‫إ‬‫ﷲ‬ ‫ﺷﺎء‬ ‫ن‬.
‫اﻟﺪرس‬‫اﻟﺜﺎﻧﻲ‬:‫إﻋﺪاد‬‫ﻣﺤﺮك‬TrueVision3D‫ﻟﻠﻌﻤﻞ‬
‫ﻣﺣرك‬ ‫ﺳﻧﺳﺗﻌﻣل‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬true vision 3d‫اﻹﺻدار‬6.2‫اﻟﻣﻛﺗﺑﺔ‬ ،‫ﻣﻠﻔﺎت‬
‫ﻗﺑل‬ ‫ﻣﺳﺎﻋدة‬ ‫ﺑراﻣﺞ‬ ‫ﻣﺟﻠد‬ ‫ﻓﻲ‬ ‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓﻘﺔ‬‫أ‬‫ﻧﺷرح‬ ‫ن‬‫إﺿﺎﻓﺔ‬‫اﻟﻣﻛﺗﺑﺔ‬‫إﻟﻰ‬‫اﻟﻔﯾﺟوال‬
‫ﻋدة‬ ‫ﻣﻼﺣظﺔ‬ ‫ﯾﺟب‬ ‫ﺑﯾﺳك‬‫أﻣور‬:
‫ﻟﮫ‬ ‫اﻟﻛﺎﻣﻠﺔ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﻟﯾﺳت‬ ‫اﻟﺟﮭﺎز‬ ‫ﻣﻊ‬ ‫اﻟﻣﻠﺣﻘﺔ‬ ‫اﻟﻣﻛﺗﺑﺔ‬،‫و‬‫ﺳوف‬ ‫اﻟﺗﻲ‬ ‫اﻟﻣﻠﻔﺎت‬ ‫إﻧﻣﺎ‬
‫ﻧﺣﺗﺎﺟﮭﺎ‬‫اﻟﺗﻲ‬‫اﻟﻛﺎﻣﻠﺔ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﺗﺿﻣﻧﮭﺎ‬.
‫واﻷ‬ ‫اﻟﺑراﻣﺞ‬ ‫ﻣن‬ ‫ﻣﺟﻣوﻋﺔ‬ ‫ﺗﺣوي‬ ‫اﻟﻛﺎﻣﻠﺔ‬ ‫اﻟﻣﻛﺗﺑﺔ‬‫ﻣور‬‫ﻣن‬ ‫ﺗﺣﻣﯾﻠﮭﺎ‬ ‫ﯾﻣﻛﻧك‬ ‫اﻟﻣﺳﺎﻋدة‬
‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻣوﻗﻊ‬:
‫اﻹ‬ ‫ﻋﻠﻰ‬ ‫واﻟﺗطﺑﯾق‬ ‫واﻟﻌﻣل‬ ‫ﺑﺎﻟﺷرح‬ ‫ﻧﻘوم‬ ‫ﺳوف‬ ‫ﻧﺣن‬‫ﺻدار‬٦.٢
‫و‬ ‫وﺧﺎﻣﺎت‬ ‫ﻣﺟﺳﻣﺎت‬ ‫ﺗﺣﻣﯾل‬ ‫ﯾﻣﻛﻧك‬‫ﺗﺄﺛﯾر‬‫اﻟﻣوﻗﻊ‬ ‫ﻣن‬ ‫اﻟﯾﮭﺎ‬ ‫ﺗﺣﺗﺎج‬ ‫ﻗد‬ ‫ات‬‫أ‬‫دﻧﺎه‬:
‫ﺗذﻛر‬:‫أ‬‫اﻷ‬ ‫ﺟﻣﯾﻊ‬ ‫ن‬‫ﻣﺛﻠﺔ‬‫ﻣﺎ‬ ‫وﻛل‬ ‫واﻟﻣﺳﺎﻋدة‬ ‫اﻟﻣﺧﺗﻠﻔﺔ‬ ‫واﻟﺑراﻣﺞ‬ ‫واﻟﻣﺟﺳﻣﺎت‬ ‫واﻟﺧﺎﻣﺎت‬
‫ﻣرﻓﻘ‬ ‫ﯾﻛون‬ ‫اﻟﻛﺗﺎب‬ ‫ھذا‬ ‫ﻓﻲ‬ ‫ﻟﮫ‬ ‫ﻧﺗطرق‬ ‫ﺳوف‬ً ‫ﺎ‬‫ﻣﻌﮫ‬.
‫اﻵن‬‫ﻹ‬‫ﺿﺎﻓﺔ‬‫اﻟﻣﺳﺎﻋدة‬ ‫اﻟﻣﻠﻔﺎت‬ ‫ﺑﻔﺗﺢ‬ ‫ﻗم‬ ‫ﺑك‬ ‫اﻟﺧﺎص‬ ‫اﻟﺟﮭﺎز‬ ‫ﻋﻠﻰ‬ ‫وﺗﻌرﯾﻔﮭﺎ‬ ‫اﻟﻣﻛﺗﺑﺔ‬
‫ﻣﻠف‬ ‫واﺧﺗر‬TrueVision3D‫اﻻﻣﺗداد‬ ‫ذات‬ ‫اﻟﻣﻠﻔﺎت‬ ‫ﺑﻧﺳﺦ‬ ‫وﻗم‬DLL‫إﻟﻰ‬‫اﻻﻣﺗداد‬
‫اﻟﺗﺎﻟﻲ‬c:windowssystem32
‫ﻣﻠف‬ ‫ﺑﺗﺷﻐﯾل‬ ‫ﻗم‬ ‫ذﻟك‬ ‫وﺑﻌد‬setup.bat‫ﻣﺳﺟل‬ ‫ﻓﻲ‬ ‫ﺑﺗﻌرﯾﻔﮭﺎ‬ ‫ﯾﻘوم‬ ‫ﺳوف‬ ‫اﻟذي‬
‫اﻟﻧظﺎم‬.
‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫ﻧوع‬ ‫ﻣن‬ ‫ﺑك‬ ‫اﻟﺧﺎص‬ ‫اﻟﺗﺷﻐﯾل‬ ‫ﻧظﺎم‬ ‫ﻛﺎن‬ ‫اذا‬windows 7‫اﻋﻠﻰ‬ ‫او‬
‫ﻋﻠﻰ‬ ‫اﻻﯾﻣن‬ ‫اﻟﻔﺄرة‬ ‫ﺑزر‬ ‫ﺑﺎﻟﻧﻘر‬ ‫ﻗم‬‫ﻣﻠف‬setup.bat‫اﻟﺧﯾﺎر‬ ‫واﺧﺗر‬Run as
administrator.
‫ﻣﺟﻠد‬ ‫ﻓﻲ‬ ‫اﻟﻣوﺟودة‬ ‫اﻟﻣﻠﻔﺎت‬ ‫وﺿﻊ‬ ‫ﯾﻔﺿل‬TrueVision3d‫اﻷ‬ ‫ﻣﻊ‬‫ﻟﻌﺎب‬‫ﺳوف‬ ‫اﻟﺗﻲ‬
‫ﻟو‬ ‫ﻻﻧك‬ ‫وذﻟك‬ ‫ﺑﺑرﻣﺟﺗﮭﺎ‬ ‫ﺗﻘوم‬‫أ‬‫اﻷ‬ ‫ﻧﻘل‬ ‫ردت‬‫ﻟﻌﺎب‬‫إﻟﻰ‬‫أ‬‫ﺣﺎﺳوب‬ ‫ﺟﮭزة‬‫أﺧرى‬‫ﯾﺗﺳﻧﻰ‬
‫اﻟﻣطﻠوب‬ ‫ﺑﺎﻟﺷﻛل‬ ‫اﻟﻌﻣل‬ ‫ﻟﮭﺎ‬.
‫ﻛﯾﻔﯾﺔ‬‫إﺿﺎﻓﺔ‬‫اﻟﻣﻛﺗﺑﺔ‬‫إﻟﻰ‬‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬:
١-‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬ ‫ﺑرﻧﺎﻣﺞ‬ ‫ﺑﺗﺷﻐﯾل‬ ‫ﻧﻘوم‬٢.
٢-‫ﻻﺋﺣﺔ‬ ‫ﺑﺎﺧﺗﯾﺎر‬ ‫ﻧﻘوم‬ ‫ذﻟك‬ ‫ﺑﻌد‬Projects‫ﻋﻠﻰ‬ ‫ﻧﻧﻘر‬ ‫ﺛم‬ ‫وﻣن‬References
٣-‫ﻋﻠﻰ‬ ‫ﻧﻧﻘر‬ ‫ﺛم‬ ‫وﻣن‬Browse‫ﻣﺟﻠد‬ ‫وﻧﻔﺗﺢ‬TrueVision3D‫اﻟﻣﻠف‬ ‫وﻧﺧﺗﺎر‬
Truevision3D.dll‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬:
٤-‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﺿﺎﻓﺔ‬‫اﻟﻣﻠﻔﯾن‬dx8vb.dll‫و‬tvmedia.dll‫ﻧﻔﺳﮭﺎ‬ ‫ﺑﺎﻟطرﯾﻘﺔ‬.
٥-‫ﻧﻘوم‬‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫ﺗﺣدﯾدھﺎ‬ ‫طرﯾق‬ ‫ﻋن‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﺑﺎﺧﺗﯾﺎر‬:
‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫ﻋﻧ‬ ‫اﻟﻌﻣﻠﯾﺔ‬ ‫ﺑﺗﻛرﯾر‬ ‫ﻧﻘوم‬‫د‬‫ﺟدﯾد‬ ‫ﻣﺷروع‬ ‫ﻋﻣل‬‫أ‬‫ي‬‫أﻧﮫ‬‫ﯾﺗوﺟب‬
‫ﻋﻠﯾك‬‫إﺿﺎﻓﺔ‬‫ﺑﺎﻟﺿروري‬ ‫ﻟﯾس‬ ‫ﻟﻛن‬ ‫ﻣﺷروع‬ ‫ﻛل‬ ‫ﻓﻲ‬ ‫اﻟﻣﻠﻔﺎت‬‫أن‬‫ﺑﺗﻛرار‬ ‫ﺗﻘوم‬
‫ﻣن‬ ‫اﻟﺧطوات‬٢-٤ّ‫ﻷن‬‫ﻓﻲ‬ ‫ﯾﺣﻔظﮭﺎ‬ ‫ﺳوف‬ ‫اﻟﻔﯾﺟوال‬refrences.
‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﺪرس‬:‫رﺳﺎﻟﺔ‬ ‫ﺑﺮﻣﺠﺔ‬)HelloWorld(
‫اﻟوﺻول‬ ‫ﻟﯾس‬ ‫اﻟدرس‬ ‫ھذا‬ ‫ﻣن‬ ‫اﻟﻣﻐزى‬‫إﻟﻰ‬‫ﺟﻣﻠﺔ‬helloworld‫و‬ ‫ﻓﻘط‬‫إﻧﻣﺎ‬‫ﻣﻌرﻓﺔ‬
‫و‬ ‫اﻟﺑرﻣﺟﺔ‬ ‫ﻛﯾﻔﯾﺔ‬‫إ‬‫اﻟﻣﺣرك‬ ‫ھذا‬ ‫ﻋداد‬.‫ﻓ‬ ‫ﻣﺑﺎﺷرة‬ ‫ﺑﺎﻟﻣﺛﺎل‬ ‫ﻧﺑدأ‬ ‫ﺳوف‬‫ﻔ‬‫ﯾﺗﺿﺢ‬ ‫اﻟﻣﺛﺎل‬ ‫ﻲ‬
‫اﻟﻣﻘﺎل‬.
‫اﻟﻤﺜﺎل‬)١(
‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬ ‫ﺑرﻧﺎﻣﺞ‬ ‫ﺑﺗﺷﻐﯾل‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬ ‫ﻧﻘوم‬ ‫دﻋﻧﺎ‬٦‫و‬‫إﺿﺎﻓﺔ‬‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﻣﻠﻔﺎت‬
)sdk(‫ﻛﻣﺎ‬‫اﻟﺳﺎﺑق‬ ‫اﻟدرس‬ ‫ﻓﻲ‬ ‫ﺗﻌﻠﻣﻧﺎ‬.
‫ﻓﻲ‬ ‫ﺑﺎﻟﻣﻛﺗﺑﺔ‬ ‫اﻟﺧﺎﺻﺔ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﺑﺗﻌرﯾف‬ ‫ﻧﻘوم‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬General‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬:
Public V8 As TVEngine
Public Scene As TVScene
Public Inp As TVInputEngine
‫اﻟﻣﺗﻐﯾرات‬ ‫ﺑﺷرح‬ ‫ﻧﺑدأ‬:
V8 as tvengine:‫ﺑ‬ ‫ﯾﻘوم‬ ‫اﻟذي‬ ‫ﻓﮭو‬ ‫اﻟﻣﺣرك‬ ‫ھذا‬ ‫ﻓﻲ‬ ‫اﻻﺳﺎﺳﻲ‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ھذا‬‫ﺈﻧﺷﺎء‬
‫اﻟﺧ‬ ‫ﻣن‬ ‫اﻟﻌدﯾد‬ ‫وﯾﺣوي‬ ‫اﻻﻓﺗراﺿﻲ‬ ‫اﻟﻌﺎﻟم‬ ‫وﺗﻛوﯾن‬ ‫اﻟﺷﺎﺷﺔ‬‫ﺑ‬‫رات‬‫اﻟﺗﻲ‬‫ﻧﺗﻧﺎوﻟﮭﺎ‬ ‫ﺳوف‬
‫اﻟﻣﺎدة‬ ‫ﻓﻲ‬ ‫اﻟﺗﻘدم‬ ‫ﻣﻊ‬.
Scene as tvscene:‫اﻟﺷﺎﺷﺔ‬ ‫ﻋﻠﻰ‬ ‫واﻟﻌرض‬ ‫ﺑﺎﻟﻣﺷﺎھد‬ ‫اﻟﺧﺎص‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ھذا‬
‫ﻋﻠﯾﮭﺎ‬ ‫اﻟﻛﺎﺋﻧﺎت‬ ‫وﻋرض‬.
Inp as tvinputengine:‫اﻹ‬ ‫ﻣﺗﻐﯾر‬ ‫ھو‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ھذا‬‫اﻷ‬ ‫ﺑﺗﻧﻔﯾذ‬ ‫اﻟﺧﺎص‬ ‫دﺧﺎل‬‫واﻣر‬
‫ﻣﺎ‬ ‫زر‬ ‫ﻋﻠﻰ‬ ‫اﻟﺿﻐط‬ ‫ﻋﻧد‬.
‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫ﺗذﻛر‬‫أﻧﮫ‬‫ﺗﻐﯾر‬ ‫ﯾﻣﻛﻧك‬‫أ‬‫ھواك‬ ‫ﻋﻠﻰ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﺳﻣﺎء‬.
‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫ﺳ‬‫ﺷرح‬ ‫ﯾﺗم‬‫اﻹدﺧﺎل‬‫اﻟدروس‬ ‫ﻣﻊ‬‫ﻷن‬‫اﻹدﺧﺎل‬‫ﺑ‬‫ﻣﺣرك‬truevision
‫ﺳﮭل‬‫ﺑ‬‫ﻌﻛس‬OpenGl‫و‬DirectX‫اﻟﻠذ‬‫ﯾ‬‫ﺑﮭﻣﺎ‬ ‫ﺧﺎص‬ ‫ﻟدرس‬ ‫ﯾﺣﺗﺎﺟﺎن‬ ‫ن‬.
‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬Load_Form
Set V8 = New TVEngine
Set Scene = New TVScene
Set Inp = New TVInputEngine
V8.Init3DWindowedMode Me.hWnd
Scene.SetSceneBackGround 0, 0, 0
Me.Show
Do
DoEvents
If Inp.IsKeyPressed(TV_KEY_ESCAPE) = True Then End
V8.Clear
Scene.DrawText "HelloWorld", 0, 20
Scene.RenderAllMeshes
V8.RenderToScreen
Loop
‫اﻟﻛود‬ ‫ﺗﻔﺳﯾر‬:
‫اﻟﺳطر‬‫اﻷول‬+‫اﻟﺛﺎﻧﻲ‬+‫اﻟﺛﺎﻟث‬:‫ﺑﻣﺎ‬‫أ‬‫ﻛﺎﺋﻧﯾﺔ‬ ‫ھﻲ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ھذه‬ ‫ﺟﻣﯾﻊ‬ ‫ن‬،‫ﻓﯾﺟب‬
‫اﻟﻣﺗﻐﯾرات‬ ‫ﺗﻌرﯾف‬ ‫ﻋﻠﯾﻧﺎ‬.
‫اﻟﺳطراﻟراﺑﻊ‬:‫اﻟﺳواﻗﺔ‬ ‫ﯾﺣدد‬ ‫اﻟﻛود‬ ‫ھذا‬)‫أ‬‫اﻟﻌرض‬ ‫ﻣﻛﺎن‬ ‫ﯾﺣدد‬ ‫ي‬(‫ﻟﯾﻛون‬ ‫اﺧﺗرﻧﺎ‬ ‫وھﻧﺎ‬
‫اﻟﻧﻣوذج‬)form(‫ﻟﻠﻌرض‬ ‫ﻣﻛﺎﻧﺎ‬.
‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫إ‬‫ذا‬‫أ‬‫ردت‬‫أ‬‫ﻛﺎﻣﻠﺔ‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﺗﺟﻌل‬ ‫ن‬)FullScreen(‫ﺷﻛل‬ ‫ﯾﻛون‬ ‫ﺳوف‬
‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬:
V8.Init3DFullscreen 1024, 768, 32
‫ھذه‬‫اﻷرﻗﺎم‬‫ھﻲ‬‫أ‬‫اﻟﺷﺎﺷﺔ‬ ‫ﺑﻌﺎد‬‫ﻓ‬َ‫ﺗﻧس‬ ‫ﻼ‬‫ﺗﻐ‬‫ﯾ‬‫ﺣﺳب‬ ‫ﯾرھﺎ‬‫أ‬‫ﺑك‬ ‫اﻟﺧﺎﺻﺔ‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﺑﻌﺎد‬.
‫اﻟﺧﺎﻣس‬ ‫اﻟﺳطر‬:‫ﺑﻧظﺎم‬ ‫ﻟﻛن‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﺧﻠﻔﯾﺔ‬ ‫ﻟون‬ ‫ﺑﺗﺣدﯾد‬ ‫اﻟﻛود‬ ‫ھذا‬ ‫ﯾﻘوم‬‫أ‬‫ﻟوان‬RGB
‫اﻹ‬ ‫ﻓﻲ‬ ‫ﻋﻧﮫ‬ ‫ﺗﺣدﺛﻧﺎ‬ ‫اﻟذي‬‫ﺻدار‬‫اﻷول‬‫اﻟﻛﺗﺎب‬ ‫ھذا‬ ‫ﻣن‬.
‫اﻟﺳﺎدس‬ ‫اﻟﺳطر‬:‫ﻻﺣظ‬ ‫اﻟﻔورم‬ ‫ﻟﻌرض‬ ‫وھو‬‫أﻧﮫ‬‫اﻷ‬ ‫ھذا‬ ‫ﺗﺿﻊ‬ ‫ﻟم‬ ‫ﻟو‬‫ﻣر‬‫ﻋرض‬ ‫ﯾﺗم‬ ‫ﻟن‬
‫وﻟذﻟك‬ ‫اﻟﻧﻣوذج‬‫ﻷﻧﻧﺎ‬‫ﻟﻠﻌرض‬ ‫ﻣﻛﺎﻧﺎ‬ ‫اﻟﻧﻣوذج‬ ‫ﺣددﻧﺎ‬‫أﻣﺎ‬ٍ‫داع‬ ‫ﯾوﺟد‬ ‫ﻓﻼ‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﺣددﻧﺎ‬ ‫ﻟو‬
‫اﻷ‬ ‫ھذا‬ ‫ﻟﻛﺗﺎﺑﺔ‬‫ﻣر‬.
‫اﻟﺳﺎﺑﻊ‬ ‫اﻟﺳطر‬+‫اﻟﺛﺎﻣن‬:‫اﻟﺗﻛرار‬ ‫ﻟﻌﻣل‬ ‫ھو‬ ‫اﻟﺳﺎﺑﻊ‬ ‫اﻟﺳطر‬Do‫ھذا‬‫أھم‬‫أﻣر‬‫ﻛل‬ ‫ﻓﻲ‬
‫ﻷ‬ ‫ﻣﺎﺳﺑق‬‫ﻧﮫ‬‫ﯾﺟب‬‫أن‬‫ﻣﺳ‬ ‫ﺗﻛرار‬ ‫داﺧل‬ ‫اﻟﻌﺎﻟم‬ ‫ﻓﻲ‬ ‫اﻟرﺳم‬ ‫ﻣﺗﻐﯾرات‬ ‫ﺗوﺿﻊ‬‫ﺗﻣ‬‫وذﻟك‬ ‫ر‬‫ﻷن‬
‫ﺷﻛل‬ ‫ﻋﻠﻰ‬ ‫ﯾﻛون‬ ‫اﻟﻠﻌﺑﺔ‬ ‫ﻋرض‬Frame‫ﯾﺗم‬ ‫وھﻛذا‬ ‫ﺑﺎﺳﺗﻣرار‬ ‫ﻣﺳﺣﮫ‬ ‫ﯾﺗم‬ ‫ﻣﺗﻛرر‬
‫اﻟﻌرض‬.‫أﻣﺎ‬‫ﻟو‬ ‫ﺿﯾر‬ ‫ﻓﻼ‬ ‫اﻟﺛﺎﻣن‬ ‫اﻟﺳطر‬‫أ‬‫ﻟﻛن‬ ‫زﻟﺗﮫ‬‫أ‬‫ﺣﺑذ‬‫أن‬‫ﻣوﺟود‬ ‫ﯾﻛون‬ً‫ا‬‫ﻛل‬ ‫ﻓﻲ‬
‫ﻣﺷروع‬.
‫اﻟﺳطراﻟﺗﺎﺳﻊ‬:‫ﺑ‬ ‫ﺗﻘوم‬ ‫اﻟداﻟﺔ‬ ‫ھذه‬‫ﻣﺳ‬‫ﻣﮭﻣ‬ ‫وھﻲ‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻣوﺟود‬ ‫ھو‬ ‫ﻣﺎ‬ ‫ﺢ‬،‫ﺔ‬‫وﻟن‬
‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘم‬ ‫وﻟم‬ ‫ﯾﺗﺣرك‬ ‫ﺻﻧدوق‬ ‫ﺑﻌﻣل‬ ‫ﻗﻣﻧﺎ‬ ‫ﻟو‬ ‫ﻣﺛﻼ‬ ‫اﻟداﻟﺔ‬ ‫ھذه‬ ‫دون‬ ‫ﻟﻌﺑﺔ‬ ‫اﻟﻠﻌﺑﺔ‬ ‫ﺗﻛون‬
‫اﻷ‬ ‫ھذا‬‫ﻣر‬،‫ﺣرﻛﺗﮫ‬ ‫ﻓﺗرة‬ ‫طول‬ ‫ﻋﻠﻰ‬ ‫اﻟﺻﻧدوق‬ ‫ﺑرﺳم‬ ‫اﻟﻣﺣرك‬ ‫ﻓﺳﯾﻘوم‬‫ﻣﺣرك‬ ‫ﻓﻲ‬ ‫ﻟﻛن‬
TrueVision‫ا‬ ‫ﻋﻣﻠﯾﺔ‬ ‫ﺗﺗم‬ ‫ﻟن‬‫اﻷ‬ ‫ھذا‬ ‫ﻛﺗﺎﺑﺔ‬ ‫دون‬ ‫ﻟﻌرض‬‫ﻣر‬.
‫اﻟﻌﺎﺷر‬ ‫اﻟﺳطر‬:‫اﻟداﻟﺔ‬ ‫ھذه‬‫اﻟﺗﻲ‬‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﺗﻘوم‬ ‫ﺳوف‬HelloWorld‫اﻟﺷﺎﺷﺔ‬ ‫ﻋﻠﻰ‬
‫اﻟﺧﯾﺎر‬ ‫ﺣﯾث‬‫اﻷول‬‫اﻹ‬ ‫ھو‬ ‫واﻟﺛﺎﻧﻲ‬ ‫اﻟﻛﻠﻣﺔ‬ ‫اﺳم‬‫ﺣداﺛ‬‫ﻟﮭﺎ‬ ‫اﻟﺳﯾﻧﻲ‬ ‫ﻲ‬‫أﻣﺎ‬‫ﻓﮭو‬ ‫اﻟﺛﺎﻟث‬
‫اﻹ‬‫ﺣداﺛ‬‫اﻟﺻﺎدي‬ ‫ﻲ‬)‫ﺷﻛل‬ ‫ﻋﻠﻰ‬ ‫اﻟرﺳم‬ ‫ﯾﺗم‬‫إﺣداﺛ‬‫ﻟﻧﻘﺎط‬ ‫ﻲ‬X,Y.(
‫ﻋﺷر‬ ‫اﻟﺣﺎدي‬ ‫اﻟﺳطر‬:‫اﻟﺳطر‬ ‫ھذا‬‫ﻟﯾس‬ً ‫ﺿرورﯾﺎ‬‫ﺧﺎص‬ ‫ﻓﮭو‬ ‫اﻟﺣﺎﺿر‬ ‫اﻟوﻗت‬ ‫ﻓﻲ‬
‫اﻟﻧوع‬ ‫ﻣن‬ ‫اﻟﻣﺟﺳﻣﺎت‬ ‫ﺑﻌرض‬Mesh‫اﻻﻣﺗدادات‬ ‫ذات‬).X/.3DS(‫ﻟﻛن‬‫أ‬‫ﻓﺿل‬‫أ‬‫ن‬
‫ﻛﺗﺎﺑﺗﮫ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻌﺗﺎد‬.
‫ﻋﺷر‬ ‫اﻟﺛﺎﻧﻲ‬ ‫اﻟﺳطر‬:‫وھو‬‫أﻣر‬‫اﻟﻣﺣرك‬ ‫ﺳواﻗﺔ‬ ‫ﻓﻲ‬ ‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﻟﻌﻣل‬ ‫ﻣﮭم‬
‫ﻻﺗﻧس‬،‫ﻓﮭو‬ ‫ﻛﺗﺎﺑﺗﮫ‬‫أﻣر‬‫دوﻧﮫ‬ ‫ﻣن‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﯾﻌﻣل‬ ‫وﻟن‬ ‫رﺋﯾﺳﻲ‬.
‫اﻷ‬ ‫اﻟﺳطر‬‫ﺧﯾر‬:‫ﻟﺗﻛرار‬ ‫وھو‬do + events + loop
‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻛود‬ ‫ﺷﻛل‬ ‫ﯾﻛون‬:
‫أﻣﺎ‬‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﻟﻌﻣل‬ ‫ﺑﻌد‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﺷﻛل‬:
‫اﻟﺪرس‬‫اﻟﺮاﺑﻊ‬::‫إ‬‫ﻋﺪاد‬ClassModule‫اﻟﻌﻤﻞ‬ ‫ﻟﺘﺴﮭﯿﻞ‬
‫ﻣﮭم‬ ‫اﻟدرس‬ ‫ھذا‬ً ‫ﺟدا‬‫اﻷ‬ ‫وﺗطوﯾر‬ ‫ﺑرﻣﺟﺔ‬ ‫ﻓﻲ‬ ‫اﻟﺗطور‬ ‫ﻋﻧد‬ ‫ﺧﺻوﺻﺎ‬‫ﻟﻌﺎب‬،‫ﺳﺑﯾل‬ ‫ﻓﻌﻠﻰ‬
‫ﻣن‬ ‫ﺑدل‬ ‫اﻟﻣﺛﺎل‬‫أن‬‫ﻣن‬ ‫ﻛﺑﯾر‬ ‫ﻋدد‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫اﻷﺳطر‬‫واﻷ‬‫واﻣر‬‫ﻹ‬‫ﻧﺷﺎء‬‫ﺳﯾﺎرة‬ ‫ﻣﺟﺳم‬
‫ﻣﺛﻼ‬،‫ﺑﻌد‬ ‫اﻟﻣﺟﺳم‬ ‫ﺑﻌﻣل‬ ‫ﺑدورھﺎ‬ ‫ﺗﻘوم‬ ‫داﻟﺔ‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫إ‬‫اﻟﻛﺎﻓﯾﺔ‬ ‫اﻟﺑﯾﺎﻧﺎت‬ ‫دﺧﺎل‬،‫ھذا‬ ‫ﻓﻲ‬
‫ﺑ‬ ‫ﺗﻘوم‬ ‫ﺑداﺧﻠﮫ‬ ‫داﻟﺔ‬ ‫ووﺿﻊ‬ ‫ﻛﺎﺋن‬ ‫ﺑﻌﻣل‬ ‫ﻧﻘوم‬ ‫ﺳوف‬ ‫اﻟدرس‬‫ﺈ‬‫ﻋداد‬truevision
‫ال‬ ‫اﺳﺗﻐﻼل‬ ‫وﯾﻣﻛﻧك‬ ‫ﺑﺳرﻋﺔ‬)ClassModule(‫ﺑراﻣﺞ‬ ‫ﻓﻲ‬‫أ‬‫ﺧرى‬.
‫اﻟﻤﺜﺎل‬)٢(
‫ﺑﺗﺷﻐﯾل‬ ‫ﻧﻘوم‬‫ﺑرﻧﺎﻣﺞ‬‫و‬ ‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬‫إﺿﺎﻓﺔ‬‫ﻓﻲ‬ ‫ﺗﻌﻠﻣﻧﺎ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ً ‫ﺳﺎﺑﻘﺎ‬.
‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﻧﺷﺎء‬ClassModule‫ﺗرﯾد‬ ‫ﻛﻣﺎ‬ ‫ﺑﺗﺳﻣﯾﺗﮫ‬ ‫وﻗم‬ ‫اﻟﺷﻛل‬ ‫ﻓﻲ‬ ‫ﻛﻣﺎ‬‫أﻧ‬‫ﺳوف‬ ‫ﺎ‬‫أ‬‫ﺳﻣﯾﮫ‬
World3D‫ﻣﺛﻼ‬:
‫ﺑ‬ ‫ﻧﻘوم‬ ‫ﺛم‬ ‫وﻣن‬‫ﺈﻧﺷﺎء‬Module‫ﻓﯾﮫ‬ ‫اﻟﻣﺣرك‬ ‫ﻣﺗﻐﯾرات‬ ‫ووﺿﻊ‬
‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬
‫ﺑﺗﻌرﯾف‬ ‫ﻧﻘوم‬‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﻣﺗﻐﯾرات‬
Public V8 As TVEngine
Public Scene As TVScene
Public Inp As TVInputEngine
‫ﺷرﺣﮭﺎ‬ ‫ﺗم‬ً ‫ﻣﺳﺑﻘﺎ‬.
‫اﻟﻣﺗﻐﯾرات‬ ‫ﻟﺗﻌرﯾف‬ ‫داﻟﺔ‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬ ‫ﻧﻘوم‬.
Public Sub Set_Dims()
Set V8 = New TVEngine
Set Scene = New TVScene
Set Inp = New TVInputEngine
End Sub
‫ﺷرﺣﮫ‬ ‫ﺗم‬ً ‫ﻣﺳﺑﻘﺎ‬.
‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﯾﺔ‬ ‫اﻟداﻟﺔ‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫وﻧﻘوم‬ClassModule
Public Sub Create_Handl(FullScreen As Boolean, Handle As
Long, Width As Long, Height As Long, Bpp As Long)
If FullScreen = True Then
V8.Init3DFullscreen Width, Height, Bpp
Else
V8.Init3DWindowedMode Handle
End If
End Sub
‫اﻟﺳطر‬‫اﻷول‬)١+٢:(‫وھو‬‫أﻣر‬‫إﻧﺷﺎء‬‫ﺑﺎراﻣﺗرات‬ ‫ﻋدت‬ ‫ﻋﻠﻰ‬ ‫وﯾﺣوي‬ ‫اﻟﺳواﻗﺔ‬
)parameters(‫أو‬‫اﻷ‬ ‫ﻣن‬ ‫ﻋدد‬ ‫ﻣﺎ‬‫ﻣور‬‫ﯾﺗوﺟب‬ ‫اﻟﺗﻲ‬‫إدﺧﺎﻟ‬‫اﻟداﻟﺔ‬ ‫ﻟﺗﻌﻣل‬ ‫ﮭﺎ‬،‫وھﻲ‬:
Fullscreen as boolean:‫ﺧﯾﺎر‬ ‫وھﻲ‬،‫ﻣﻧطﻘﻲ‬‫أﻣﺎ‬true‫أو‬false‫ﻟﺗﺣدﯾد‬ ‫وھﻲ‬
‫إذ‬‫ﻣﺎ‬ ‫ا‬‫ﻛﺎﻣﻠﺔ‬ ‫ﺷﺎﺷﺔ‬ ‫اﻟﻌرض‬ ‫ﻛﺎن‬‫أو‬‫ﻧﺎﻓذة‬.
Handle as long:‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫ﻟﯾس‬‫إذ‬‫ﻗﯾﻣﺔ‬ ‫ﻛﺎﻧت‬ ‫ا‬fullscreen=true‫إذ‬‫أﻧﮫ‬
‫اﻟﻌرض‬ ‫ﻧوع‬ ‫ﻟﺗﺣدﯾد‬ ‫ﯾﺧﺗص‬‫أﻣﺎ‬‫ﻧﻣوذج‬ ‫ﻓﻲ‬from‫أو‬‫ﺻﻧدوق‬ ‫ﻓﻲ‬picture‫ﻣﺛﻼ‬.
width:‫اﻟﺷﺎﺷﺔ‬ ‫ﻋرض‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬.‫ﻧﺎﻓذة‬ ‫ﻋﻠﻰ‬ ‫اﻟﻌرض‬ ‫ﯾﻛون‬ ‫ﻋﻧدﻣﺎ‬ ‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫وﻟﯾس‬
Height:‫اﻟﺷﺎﺷﺔ‬ ‫طول‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬.‫اﻟﻧﺎﻓذة‬ ‫ﻋﻠﻰ‬ ‫اﻟﻌرض‬ ‫ﯾﻛون‬ ‫ﻋﻧدﻣﺎ‬ ‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫وﻟﯾس‬
‫ﻋﻠﯾﻧﺎ‬ ‫ﯾﺟب‬ ‫ﻧﺎﻓذة‬ ‫ﻓﻲ‬ ‫اﻟﻌرض‬ ‫وﻛﺎن‬ ‫اﻟداﻟﺔ‬ ‫اﺳﺗﺧدام‬ ‫ﻋﻧد‬ ‫ﻻﺣظ‬ ‫ﻟﻛن‬‫إ‬‫وھﻣﯾﺔ‬ ‫ﻗﯾﻣﺔ‬ ‫ﻋطﺎء‬
‫ﻻ‬ ‫اﻟﺧطﺄ‬ ‫ﻟﺗﻔﺎدي‬ ‫وذﻟك‬‫أﻛﺛر‬.
Bpp:‫اﻷ‬ ‫ﺧﯾﺎرات‬‫ﻟوان‬‫وﻋرﺿﮭﺎ‬.‫ﻧﺎﻓذة‬ ‫ﻋﻠﻰ‬ ‫اﻟﻌرض‬ ‫ﯾﻛون‬ ‫ﻋﻧدﻣﺎ‬ ‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫وﻟﯾس‬.
‫اﻟﺛﺎﻟث‬ ‫اﻟﺳطر‬:‫ﻓ‬ ‫اﻟﻌرض‬ ‫ﻧوع‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬‫ﺈذ‬‫ﻛﺎﻧت‬ ‫ا‬fullscreen = true‫ﺗﺣﻘق‬ ‫ﻓﻘد‬
‫ﻛﺎﻣﻠﺔ‬ ‫ﺷﺎﺷﺔ‬ ‫ﻓﻲ‬ ‫اﻟﻌرض‬ ‫ﺷرط‬.
‫اﻟراﺑﻊ‬ ‫اﻟﺳطر‬:‫ﺷرﺣﮫ‬ ‫ﺗم‬ً‫ﻣﺳﺑﻘﺎ‬‫ﻻﺣظ‬ ‫ﻟﻛن‬‫أن‬‫اﻷ‬‫ﺑﻌﺎد‬‫ھﻲ‬‫اﻟﺗﻲ‬‫اﻟﺑﺎراﻣﺗرات‬ ‫ﻓﻲ‬ ‫ﻧدﺧﻠﮭﺎ‬.
‫اﻟﺧﺎﻣس‬ ‫اﻟﺳطر‬‫إﻟﻰ‬‫اﻷ‬‫ﺧﯾر‬:‫ﺷرﺣﮫ‬ ‫ﺗم‬ً‫ﻣﺳﺑﻘﺎ‬.
‫وﯾﻣﻛﻧك‬‫إﺿﺎﻓﺔ‬‫داﻟﺔ‬‫ﻹﻏﻼق‬‫ﻋﻠﻰ‬ ‫اﻟﺿﻐط‬ ‫ﻋﻧد‬ ‫اﻟﺑرﻧﺎﻣﺞ‬escape‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫وﯾﻛون‬ ‫ﻣﺛﻼ‬:
Public Sub EndWhenPressEscape()
If Inp.IsKeyPressed(TV_KEY_ESCAPE) = True Then End
End Sub
‫ﺷرﺣﮫ‬ ‫ﺗم‬ً‫ﻣﺳﺑﻘﺎ‬.
‫اﻵن‬‫ل‬ ‫ﺧﺎص‬ ‫ﻣﺗﻐﯾر‬ ‫ﺑﺗﻌرﯾف‬ ‫ﻧﻘوم‬class module‫ﻓﻲ‬ ‫اﻟﻛود‬ ‫وﻧﺿﻊ‬ ‫ﺑﻌﻣﻠﮫ‬ ‫ﻗﻣﻧﺎ‬ ‫اﻟذي‬
module‫أو‬‫ﻓﻲ‬general‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻔورم‬ ‫ﻓﻲ‬:
Public Vworld As New World3D
‫ﻻﺣظ‬‫أﻧﮫ‬)‫اﺳم‬Class module(as new
‫اﻵن‬‫اﻟﻔور‬ ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬
With Vworld
.Set_Dims
.Create_Handl True, Me.hWnd, 1024, 768, 32
End With
Me.Show
Do
DoEvents
Vworld.EndWhenPressEscape
V8.Clear
V8.RenderToScreen
Loop
‫ﻧﻼﺣظ‬‫أﻧﮫ‬‫ﻋرﻓﻧﺎه‬ ‫اﻟذي‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ﺑﺎﺳﺗﺧدام‬ ‫ﻗﻣﻧﺎ‬+‫ﻟو‬ ‫ﻛﺎﻣﻠﺔ‬ ‫ﺷﺎﺷﺔ‬ ‫ﻓﻲ‬ ‫اﻟﻌرض‬
‫اﻟﻘﯾﻣﺔ‬ ‫ﺟﻌﻠﻧﺎ‬false‫ﻧﺎﻓذة‬ ‫ﻓﻲ‬ ‫ﯾﺻﺑﺢ‬ ‫اﻟﻌرض‬.
‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﺷﻛل‬
‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺎت‬:‫ﻓﻲ‬ ‫اﻟﻛﺎﺋﻧﯾﺔ‬ ‫اﻟﺑرﻣﺟﺔ‬ ‫اﺳﺗﺧدام‬ ‫ﯾﻣﻛﻧك‬‫إﻧﺷﺎء‬‫واﻻﺿﺎءة‬ ‫اﻟﻣﺟﺳﻣﺎت‬
‫واﻷ‬‫ﺻوات‬‫واﻟ‬‫ﺗﺄﺛﯾر‬‫ﻋﻠﯾك‬ ‫اﻟﻌﻣل‬ ‫ﻟﺗﺳﮭﯾل‬ ‫ات‬.‫أﻣﺎ‬‫أﻧ‬‫ﻓﻠن‬ ‫اﻟﻘﺎدﻣﺔ‬ ‫اﻟدروس‬ ‫ﻓﻲ‬ ‫ﺎ‬
‫أ‬‫ﺳﺗﺧدﻣﮭﺎ‬ً‫ﻛﺛﯾرا‬،‫ﻷ‬ ‫وذﻟك‬‫ﻧﮭ‬‫ﺎ‬‫أﻣور‬‫وذﻟك‬ ‫ﻋﻣﻠﮭﺎ‬ ‫اﻟﻘﺎرئ‬ ‫ﻋﻠﻰ‬ ‫ﯾﻔﺿل‬‫ﻷن‬‫ﻣﺑرﻣﺞ‬ ‫ﻛل‬
‫اﻟﺗﻘدم‬ ‫ﻣﻊ‬ ‫ﻟﻛن‬ ‫اﻟﻘدﯾﻣﺔ‬ ‫اﻟطرﯾﻘﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻧﺳﯾر‬ ‫ﺳوف‬ ‫ﻟذﻟك‬ ‫ﻏﯾره‬ ‫ﻋن‬ ‫ﺗﻔﻛﯾره‬ ‫ﻓﻲ‬ ‫ﯾﺧﺗﻠف‬
‫ﺑراﻣﺟك‬ ‫ﻣﺧﺗﻠف‬ ‫ﻓﻲ‬ ‫اﻟﻛﺎﺋﻧﯾﺔ‬ ‫اﻟﺑرﻣﺟﺔ‬ ‫ﺗﺳﺧدم‬ ‫ﻧﻔﺳك‬ ‫ﺗﺟد‬ ‫ﺳوف‬ ‫واﻟﻣﻣﺎرﺳﺔ‬.
**‫ﺗذﻛر‬‫أن‬‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓق‬ ‫اﻟﻣﺛﺎل‬
‫اﻟﺨﺎﻣﺲ‬ ‫اﻟﺪرس‬:‫إﺿﺎﻓﺔ‬‫ﻣﺠﺴﻤﺎت‬Mesh‫و‬‫إ‬‫وﺗﻌﺪﯾﻠﮭﺎ‬ ‫ﻛﺴﺎﺋﮭﺎ‬
‫ﺑ‬ ‫اﻟدرس‬ ‫ھذا‬ ‫ﻓﻲ‬ ‫ﻧﻘوم‬ ‫ﺳوف‬‫ﺈﺿﺎﻓﺔ‬‫ﻧوع‬ ‫ﻣن‬ ‫ﻣﺟﺳﻣﺎت‬3DS‫و‬X‫ﺳوف‬ ‫ﺛم‬ ‫وﻣن‬
‫ﻧﻘوم‬‫ﺑﺈﻛﺳﺎﺋﮭﺎ‬.
‫اﻟﻤﺜﺎل‬)٣(
‫ﺑﺗﺷﻐﯾ‬ ‫ﻧﻘوم‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬‫و‬ ‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬ ‫ﺑرﻧﺎﻣﺞ‬ ‫ل‬‫إﺿﺎﻓﺔ‬‫ﯾﻣﻛﻧك‬ ‫ﻛﻣﺎ‬ ‫ﻋﻠﯾﮫ‬ ‫اﻟﻣﻛﺗﺑﺔ‬
‫اﻟﺳﺎﺑق‬ ‫اﻟدرس‬ ‫ﻓﻲ‬ ‫ﺑﻌﻣﻠﮫ‬ ‫ﻗﻣﻧﺎ‬ ‫اﻟذي‬ ‫اﻟﻛﻼس‬ ‫اﺳﺗﺧدام‬.
‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﻧﺷﺎء‬Module‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﻟوﺿﻊ‬:
Public V8 As TVEngine
Public Scene As TVScene
Public Inp As TVInputEngine
Public Texture as TvTextureFactory
Public Box As TVMesh
Public Car As TVMesh
‫ﻧﻌرﻓﮭﺎ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﺟﻣﯾﻊ‬ً ‫ﺳﺎﺑﻘﺎ‬‫ﻣﺎ‬‫اﻷ‬ ‫اﻟﺛﻼث‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﻋدا‬‫ﺧﯾر‬‫ة‬.
Texture as TvTextureFactory:‫ﻣﻊ‬ ‫ﺑﺎﻟﺗﻌﺎﻣل‬ ‫اﻟﺧﺎص‬ ‫اﻟﻣﺗﻐﯾر‬ ‫وھو‬
‫اﻹ‬‫ﻛﺳﺎء‬‫ﻋﻠﯾﮭﺎ‬ ‫اﻟﻣﺧﺗﻠف‬ ‫واﻟﺗﻌدﯾل‬ ‫واﻟﺻور‬ ‫ات‬.
As tvmesh:‫ﻧوع‬ ‫ﻣن‬ ‫اﻟﻣﺟﺳﻣﺎت‬ ‫ﻣﻊ‬ ‫ﺑﺎﻟﺗﻌﺎﻣل‬ ‫اﻟﻣﺧﺗص‬ ‫وھو‬3Ds‫و‬X.
‫ﺗﻌﻠﻣﻧﺎ‬ ‫ﻛﻣﺎ‬ ‫ﻟﻠﻌﻣل‬ ‫اﻟﻣﺣرك‬ ‫ﺑﺗﺟﮭﯾز‬ ‫ﻧﻘوم‬ً ‫ﺳﺎﺑﻘﺎ‬.
‫ﻗﺑل‬‫أن‬‫ﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫إﻧﺷﺎء‬‫ﻣن‬ ‫ﺑد‬ ‫ﻻ‬ ‫اﻟﻣﺟﺳم‬‫أن‬‫ﻧﻌرف‬‫ﺑﺄن‬‫اﻷ‬ ‫ﺛﻼﺛﻲ‬ ‫اﻟﻣﺟﺳم‬‫ﺑﻌﺎد‬
‫ﯾﻌﻧﻲ‬ ‫وھذا‬‫أﻧﮫ‬‫ﻣﺣﺎور‬ ‫ﺛﻼث‬ ‫ﻋﻠﻰ‬ ‫ﯾوﺟد‬)Axises(‫وھ‬‫ﻲ‬‫اﻟﻣﺣور‬X‫واﻟﻣﺣور‬y
‫واﻟﻣﺣور‬z‫اﻟﺛﻼث‬ ‫اﻟﻣﺣﺎور‬ ‫ﻣن‬ ‫ﻧﻘطﺔ‬ ‫ﺗﺣدﯾد‬ ‫ﯾﺟب‬ ‫ﻣوﻗﻌﮫ‬ ‫ﺗﺣدﯾد‬ ‫ﻋﻧد‬ ‫وﻟذﻟك‬)X,y,z(.
‫اﻧظر‬ ‫ﯾﺟري‬ ‫ﻣﺎ‬ ‫ﺗﻔﮭم‬ ‫وﺣﺗﻰ‬‫إﻟﻰ‬‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﺷﻛل‬:
‫ﻧرﯾد‬ ‫وﻋﻧدﻣﺎ‬‫أن‬‫ﯾﺟب‬ ‫اﻟﺻﻧدوق‬ ‫ﺣﺟم‬ ‫ﺑﺗﺣدﯾد‬ ‫ﻧﻘوم‬‫أن‬‫ﻧﺣدد‬ً ‫أﯾﺿﺎ‬‫ﻣﺣﺎور‬ ‫ﺛﻼث‬ ‫ﻋﻠﻰ‬
‫وھﻲ‬)‫اﻟطول،اﻟﻌرض،اﻻرﺗﻔﺎع‬(‫اﻟﺛﻼث‬ ‫اﻟﻣﺣﺎور‬ ‫ﻋﻠﻰ‬ ‫ﯾﻛون‬ ‫اﻟدوران‬ ‫وﻛذﻟك‬‫أو‬
‫ﻣﺣورﯾن‬‫أو‬‫ﻣﺣور‬ ‫ﻋﻠﻰ‬.
‫ﻹ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫ﻧﺷﺎء‬‫ﻓﻲ‬ ‫اﻟﺻﻧدوق‬Load_Form
Set Box = New TVMesh
Set Box = Scene.CreateMeshBuilder
Box.CreateBox 10, 10, 10
Box.SetPosition 20, 0, 50
Box.SetRotation 45, 20, 80
Box.SetColor RGBA(0.3, 0.8, 0.8, 0.1)
‫اﻟﻛود‬ ‫ﺗﻔﺳﯾر‬:
‫اﻟﺳطر‬‫اﻷول‬+‫اﻟﺛﺎﻧﻲ‬:‫اﻟﻣﺗﻐﯾر‬ ‫ﻟﺗﻌرﯾف‬ ‫وھو‬Box.
‫اﻟﺳ‬‫اﻟﺛﺎﻟث‬ ‫طر‬:‫ﻹ‬ ‫وھو‬‫ﻧﺷﺎء‬‫اﻟداﻟﺔ‬ ‫ﺑﺎﺳﺗﺧدام‬ ‫ﺻﻧدوق‬CreateBox‫ﺗﺣدﯾد‬ ‫ﺛم‬ ‫وﻣن‬
‫اﻟطول‬ ‫ﺧﻼل‬ ‫ﻣن‬ ‫اﻟﺻﻧدوق‬ ‫ھذا‬ ‫ﺣﺟم‬)‫اﻟﻌﻣق‬Depth(‫اﻟﻌرض‬ ‫و‬)Width(
‫واﻻرﺗﻔﺎع‬)Height.(
‫اﻟراﺑﻊ‬ ‫اﻟﺳطر‬:‫ﺑﯾﻧﺎ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﻛﻌب‬ ‫ﻣوﻗﻊ‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬ً ‫ﺳﺎﺑﻘﺎ‬.
‫اﻟﺧﺎﻣس‬ ‫اﻟﺳطر‬:‫ﻟدوران‬ ‫وھو‬‫أو‬‫ﻧﻼﺣظ‬ ‫اﻟﺟﺳم‬ ‫دوران‬ ‫اﺗﺟﺎه‬‫أﻧﮫ‬‫ﻣﺣور‬ ‫ﻋﻠﻰ‬ ‫ﯾدور‬X
‫ﺑﻣﻘدار‬٤٥‫ﻣﺣور‬ ‫ﻋن‬ ‫و‬ ‫درﺟﺔ‬Y‫ﺑﻣﻘدار‬٢٠‫وﺑﻣﻘدار‬ ‫درﺟﺔ‬٨٠‫ﻣﺣور‬ ‫ﻋن‬ ‫درﺟﺔ‬
z.
‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬:‫ﺗذﻛر‬‫أن‬‫اﻟداﺋري‬ ‫اﻟﻧظﺎم‬ ‫ھو‬ ‫ﻟﻠﻣﺣرك‬ ‫اﻟﺗﻠﻘﺎﺋﻲ‬ ‫اﻟﻧظﺎم‬)Radian(‫ﻟذك‬
‫اﻟﺗﺣوﯾل‬ ‫ﺗﻧﺳﻰ‬ ‫ﻻ‬‫إﻟﻰ‬‫اﻟﺳﺗﯾﻧﻲ‬ ‫اﻟﻧظﺎم‬.‫ذﻟك‬ ‫ﺷرﺣﻧﺎ‬ً ‫ﺳﺎﺑﻘﺎ‬‫ﺑ‬ ‫وﯾﻛون‬‫ﺈﺿﺎﻓﺔ‬‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬
V8.SetAngleSystem TV_ANGLE_DEGREE
‫اﻟﺳﺎدس‬ ‫اﻟﺳطر‬:‫ﻻﺣظ‬ ‫اﻟﻣﻛﻌب‬ ‫ﻟون‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬‫أن‬‫اﻟداﻟﺔ‬rgba‫ﺑﺎﻟﺳﺎﺑق‬ ‫ﺗﻌرﻓﻧﺎ‬
‫ﻋﻠﻰ‬‫إ‬‫اﻷ‬ ‫ن‬‫ﻟوان‬‫ﻓﻲ‬TrueVision‫ب‬ ‫ﺗﺣدد‬RGB‫أﻣﺎ‬‫رﻣز‬a‫ھ‬ ‫ﻓﻲ‬‫ﯾﻌﻧﻲ‬ ‫اﻟداﻟﺔ‬ ‫ذه‬
‫وھو‬ ‫اﻟﻣﺟﺳم‬ ‫ﺷﻔﺎﻓﯾﺔ‬‫اﻟرﻗم‬ ‫ﻣن‬0)‫ﻣرﺋﻲ‬ ‫ﻏﯾر‬ ‫ﺷﻔﺎف‬(‫إﻟﻰ‬١)‫ﻋﻠﻰ‬ ‫ﺷﻔﺎف‬ ‫ﻏﯾر‬
‫اﻹطﻼق‬(‫اﻟﺷﻔﺎﻓﯾﺔ‬ ‫ﻛﺎﻧت‬ ‫وھﻧﺎ‬0.2.
‫اﻵن‬‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﺿﺎﻓﺔ‬‫ﻣﺟﺳم‬Car‫ﺳﯾﺎرة‬ ‫ﻣﺟﺳم‬ ‫ﯾﺣﻣل‬ ‫ﺳوف‬ ‫واﻟذي‬.‫اﻟﻣﺟﺳم‬ ‫اﺧذ‬ ‫ﯾﻣﻛﻧك‬
‫واﻹ‬‫ﻛﺳﺎء‬‫ﻣﺟﻠد‬ ‫ﻣن‬Car‫اﻟﻣرﻓق‬ ‫اﻟﻣﺛﺎل‬ ‫ﻣﺟﻠد‬ ‫ﻓﻲ‬.
‫ﻓﻲ‬ ‫اﻟﻛود‬ ‫ھذا‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬Load_Formً ‫أﯾﺿﺎ‬‫ﺳو‬ ‫ﺳﺎﺑﻘﮫ‬ ‫ﻋن‬ ‫ﯾﺧﺗﻠف‬ ‫ﻻ‬ ‫وھو‬‫ى‬‫أﻧ‬‫ﻧﺎ‬
‫اﻟﻣﺟﺳم‬ ‫ﺑﺎﺳﺗﯾراد‬ ‫ﻧﻘوم‬ ‫ﺳوف‬.
Set Car = New TVMesh
Set Car = Scene.CreateMeshBuilder
Set Texture = New TVTextureFactory
Texture.LoadTexture App.Path + "car1.jpg", "CarTexture"
Car.Load3DSMesh App.Path + "carcar.3ds"
Car.ScaleMesh 0.1, 0.1, 0.1
Car.SetPosition -20, 0, 50
Car.SetRotation 0, 45, 0
Car.SetTexture GetTex("cartexture")
‫اﻟﺳطر‬‫اﻷول‬+‫اﻟﺛﺎﻧﻲ‬+‫اﻟﺛﺎﻟث‬:‫اﻟﻣﺗﻐﯾرات‬ ‫ﻟﺗﻌرﯾف‬texture‫و‬car
‫اﻟراﺑﻊ‬ ‫اﻟﺳطر‬:‫ﻹ‬ ‫اﻟﺳطر‬ ‫ھذا‬‫ﺿﺎﻓﺔ‬‫اﻹ‬ ‫ﺻورة‬‫ﻛﺳﺎء‬1.jpg‫ﺣﯾث‬app.path‫ﯾﻣﺛل‬
‫اﻟﻣﺷروع‬ ‫ﻣﻠف‬ ‫اﻣﺗداد‬)‫اﻟﺗﻧﻔﯾذي‬ ‫اﻟﻣﻠف‬ ‫اﻣﺗداد‬exe‫ﺗﺣوﯾﻠﮫ‬ ‫ﺑﻌد‬(‫و‬+
"car1.jpg"‫اﻣﺗ‬ ‫وھو‬‫اﻟﻣﺷروع‬ ‫ﻣﺟﻠد‬ ‫ﻓﻲ‬ ‫اﻟﺻورة‬ ‫داد‬.‫أﻣﺎ‬‫اﻷ‬ ‫اﻟﺑﺎراﻣﺗر‬‫ﺧﯾر‬‫ﻓﮭو‬
‫اﻹ‬ ‫ﻻﺳم‬‫ﻛﺳﺎء‬‫ﯾﻧﺎﺳﺑك‬ ‫اﻟذي‬ ‫اﻻﺳم‬ ‫ﺿﻊ‬ ‫اﻟﺻورة‬ ‫ﻻﺳﺗدﻋﺎء‬ ‫ﻧﺳﺗﺧدﻣﮫ‬ ‫ﺳوف‬ ‫اﻟذي‬.
‫اﻟﺧﺎﻣس‬ ‫اﻟﺳطر‬:‫ﻹ‬ ‫وھو‬‫ﺿﺎﻓﺔ‬‫ﻧوع‬ ‫ﻣن‬ ‫وھو‬ ‫اﻟﻣﺟﺳم‬)3DS.(
‫اﻟﺳﺎدس‬ ‫اﻟﺳطر‬+‫اﻟﺳﺎﺑﻊ‬+‫اﻟﺛﺎﻣن‬:‫ﺷرﺣﮭم‬ ‫ﺗم‬ً ‫ﻣﺳﺑﻘﺎ‬‫وھ‬‫ﻲ‬‫ﻟﺿﺑط‬)‫واﻟﻣوﻗﻊ‬ ‫اﻟﺣﺟم‬
‫اﻟدوران‬ ‫و‬.(
‫اﻟﺗﺎﺳﻊ‬ ‫اﻟﺳطر‬:‫اﻹ‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬‫ﻛﺳﺎء‬‫داﻟﺔ‬ ‫ﺑﺎﺳﺗﺧدام‬gettex
‫داﻟﺔ‬GetTex:‫ﻣﻛﺗﺑﺔ‬ ‫دوال‬ ‫ﻣن‬ ‫داﻟﺔ‬ ‫ھﻲ‬TrueVision‫ﺧﺎﺻﺔ‬ ‫وھﻲ‬ ‫اﻟﻣﮭﻣﺔ‬
‫اﻹ‬ ‫ﺑﺎﺳﺗدﻋﺎء‬‫ﻛﺳﺎء‬.‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﺳﺗﺧداﻣﮭﺎ‬ ‫ﺷﻛل‬ ‫ﯾﻛون‬.
GetTex("‫ﺑﺎﻟﺻورة‬ ‫اﻟﺧﺎص‬ ‫اﻻﺳﺗدﻋﺎء‬ ‫)"اﺳم‬
‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬ً ‫ﺟﺪا‬:‫ﻧوع‬ ‫ﻣن‬ ‫ﻣﺟﺳﻣﺎت‬ ‫اﺳﺗﺧدام‬ ‫ﻋﻧد‬Mesh‫ﺷﺎﺷﺔ‬ ‫ﻓﻲ‬ ‫ﺗظﮭر‬ ‫ﻟن‬
‫اﻷ‬ ‫ﻧﺿﻊ‬ ‫ﺣﺗﻰ‬ ‫اﻟﻌرض‬‫ﻣر‬‫اﻟﺗﻛرار‬ ‫داﺧل‬ ‫اﻟﺗﺎﻟﻲ‬Do:
Scene.RenderAllMeshes
‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﻛود‬ ‫ﺷﻛل‬ ‫ﯾﻛون‬:
‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫وﻛود‬:
‫اﻟﻧﮭﺎﺋﻲ‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﺷﻛل‬ ‫وﯾﻛون‬:
‫ﻋﻠﻰ‬ ‫ﺑذﻟك‬ ‫اﻟﻣﺧﺗﺻﺔ‬ ‫اﻟﻣواﻗﻊ‬ ‫ﻣن‬ ‫ﻣﺧﺗﻠﻔﺔ‬ ‫ﻣﺟﺳﻣﺎت‬ ‫ﺗﺣﻣﯾل‬ ‫ﯾﻣﻛﻧك‬‫اﻹﻧﺗرﻧت‬‫ﻣﻊ‬
‫إﻛﺳﺎء‬‫اﺗﮭﺎ‬.
‫ﺗﺬﻛﺮ‬:‫اﻷ‬ ‫ﺟﻣﯾﻊ‬‫ﻣﺛﻠﺔ‬‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓﻘﺔ‬.
‫اﻟﺴﺎدس‬ ‫اﻟﺪرس‬:‫إﺿﺎﻓﺔ‬‫ﻣﺠﺴﻤﺎت‬MDl‫وﺗﻌﺪﯾﻠﮭﺎ‬
‫و‬ ‫ﻋﻠﯾﮫ‬ ‫واﻟﺗﻌدﯾل‬ ‫اﻟﺳﺎﺑق‬ ‫اﻟﻣﺷروع‬ ‫ﺑﻔﺗﺢ‬ ‫ﻧﻘوم‬ ‫ﺳوف‬ ‫اﻟدرس‬ ‫ھذا‬ ‫ﻓﻲ‬‫إﺿﺎﻓﺔ‬‫ﻣن‬ ‫ﻣﺟﺳم‬
‫ﻧوع‬mdl.
‫ﻣن‬‫أ‬‫ﻣﺟﺳﻣﺎت‬ ‫ﻣﯾزات‬ ‫ھم‬mdl‫ھﻲ‬animation‫أ‬ ‫اي‬‫ﻗﺑل‬ ‫ﻣن‬ ‫ﻣﺧﺗﻠﻔﺔ‬ ‫ﺣرﻛﺎت‬ ‫داء‬
‫ﻋﻠﯾﮫ‬ ‫ﻣﺳﺟﻠﺔ‬ ‫ﺗﻛون‬ ‫اﻟﻣﺟﺳم‬ً ‫ﻣﺳﺑﻘﺎ‬.
‫اﻟﻤﺜﺎل‬)٤(
‫ﻋﻠﯾﮫ‬ ‫ﺑﺎﻟﺗﻌدﯾل‬ ‫وﻧﻘوم‬ ‫اﻟﺳﺎﺑق‬ ‫ﺑﺎﻟدرس‬ ‫اﻟﺧﺎص‬ ‫اﻟﻣﺷروع‬ ‫ﺑﻔﺗﺢ‬ ‫ﻧﻘوم‬ ‫دﻋﻧﺎ‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬
‫ﺑ‬‫ﺈﺿﺎﻓﺔ‬‫ﻧوع‬ ‫ﻣن‬ ‫اﺧر‬ ‫ﻣﺟﺳم‬mdl.
‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﺿﺎﻓﺔ‬‫ﻓﻲ‬ ‫اﻟﻣﺟﺳم‬ ‫ﺳﯾﺣﻣل‬ ‫اﻟذي‬ ‫اﻟﻣﺗﻐﯾر‬module
Public Animal As TVActor2
‫ﺧﺻﺎﺋص‬ ‫ﺗﻌدﯾل‬ ‫اﺟل‬ ‫ﻣن‬ ‫اﻟﻔورم‬ ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫ﻣﺳﺎره‬ ‫وﺗﺣدﯾد‬ ‫اﻟﻣﺟﺳم‬.
Set Animal = New TVActor2
Animal.Load App.Path + "modelsanimal.mdl"
Animal.SetPosition 0, 0, 50
Animal.SetScale 0.1, 0.1, 0.1
‫اﻟﻛود‬ ‫ﺗﻔﺳﯾر‬:
‫اﻟﺳطر‬‫اﻷول‬+‫اﻟﺛﺎﻧﻲ‬:‫اﻟﺳطر‬‫اﻷول‬‫ﺗﻌﻠﻣﻧﺎ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ﻟﺗﻌرﯾف‬ ‫وھو‬ً ‫ﺳﺎﺑﻘﺎ‬،‫أﻣﺎ‬
‫ﻓﮭو‬ ‫اﻟﺛﺎﻧﻲ‬ ‫اﻟﺳطر‬‫اﻟﻣﺟﺳم‬ ‫ﻟﺗﺣدﯾد‬)‫اﻟﻣرﻓق‬ ‫اﻟﻣﺛﺎل‬ ‫ﻣﻊ‬ ‫ﻣوﺟود‬ ‫اﻟﻣﺟﺳم‬ ‫ﻻﺣظ‬‫أو‬‫ﯾﻣﻛﻧك‬
‫اﻹ‬ ‫ﻣن‬ ‫اﻟﻣزﯾد‬ ‫ﺗﺣﻣﯾل‬‫ﻧﺗرﻧت‬(.
‫اﻟﺛﺎﻟث‬ ‫اﻟﺳطر‬+‫اﻟراﺑﻊ‬:‫ﺷرﺣﮭﻣﺎ‬ ‫ﺗم‬ً ‫ﻣﺳﺑﻘﺎ‬.
‫اﻵن‬‫ﻋﻣل‬ ‫ﻋﻠﯾﻧﺎ‬ ‫ﯾﺟب‬render‫و‬ ‫ﻟﻠﻣﺟﺳم‬‫إ‬‫طرﯾق‬ ‫ﻋن‬ ‫ذﻟك‬ ‫وﯾﻛون‬ ‫ﯾظﮭر‬ ‫ﻟن‬ ‫ﻻ‬
‫اﻟﺗﻛرار‬ ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫وﺿﻊ‬Doanimal.render
‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬:‫ﻧوع‬ ‫ﻣن‬ ‫اﻟﻣﺗﻐﯾرات‬as tvmesh‫اﻟﻛود‬ ‫وﺿﻊ‬ ‫ﺗظﮭر‬ ‫ﻛﻲ‬ ‫ﯾﺟب‬
‫اﻟﺗﻛرار‬ ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬Do
Scene.RenderAllMeshes
‫ﻧوع‬ ‫ﻣن‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﻟﻛن‬tvactor+tvactor2‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫وﺿﻊ‬ ‫ﯾﺟب‬
‫ﻟظﮭورھﺎ‬ ‫اﻟﺗﻛرار‬.
Object.render
‫اﻟﺗﻧﻔﯾذ‬ ‫ﺑﻌد‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﺷﻛل‬
‫ﺗﺬﻛﺮ‬:‫اﻷ‬ ‫ﺟﻣﯾﻊ‬‫ﻣﺛﻠﺔ‬‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓﻘﺔ‬.
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2
تميز مع اليجوال بيسك 6 الاصدار 2

More Related Content

Viewers also liked

Viewers also liked (19)

Sevilla robrto
Sevilla robrtoSevilla robrto
Sevilla robrto
 
Alcohol Rocca Deyros
Alcohol Rocca DeyrosAlcohol Rocca Deyros
Alcohol Rocca Deyros
 
Poema Y Cuento
Poema Y CuentoPoema Y Cuento
Poema Y Cuento
 
Decreto 374 1996 [1]
Decreto 374 1996 [1]Decreto 374 1996 [1]
Decreto 374 1996 [1]
 
Verbs, adverb,
Verbs, adverb,Verbs, adverb,
Verbs, adverb,
 
مهارات التخطيط
مهارات التخطيطمهارات التخطيط
مهارات التخطيط
 
Ask about lifestyles
Ask about lifestylesAsk about lifestyles
Ask about lifestyles
 
2ª República Guerra Civil española
2ª República Guerra Civil española2ª República Guerra Civil española
2ª República Guerra Civil española
 
Photos insolites
Photos insolitesPhotos insolites
Photos insolites
 
Wikispaces Altamasiva
Wikispaces AltamasivaWikispaces Altamasiva
Wikispaces Altamasiva
 
Andrea.....iin
Andrea.....iinAndrea.....iin
Andrea.....iin
 
التفوق في الاتصال
التفوق في الاتصالالتفوق في الاتصال
التفوق في الاتصال
 
De Corazon
De CorazonDe Corazon
De Corazon
 
Tarea de ingles en ingles
Tarea de ingles en inglesTarea de ingles en ingles
Tarea de ingles en ingles
 
Proxecto Chiron, profesores de Clásicas na web 2.0
Proxecto Chiron, profesores de Clásicas na web 2.0Proxecto Chiron, profesores de Clásicas na web 2.0
Proxecto Chiron, profesores de Clásicas na web 2.0
 
Tugas tenses triany syafrilia
Tugas tenses triany syafriliaTugas tenses triany syafrilia
Tugas tenses triany syafrilia
 
18y54
18y5418y54
18y54
 
Predicado aluno
Predicado   alunoPredicado   aluno
Predicado aluno
 
Liq Corp
Liq CorpLiq Corp
Liq Corp
 

Recently uploaded

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxShobhayan Kirtania
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 

Recently uploaded (20)

Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptx
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 

تميز مع اليجوال بيسك 6 الاصدار 2

  • 1. ‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﻣﻊ‬ ‫ﺗﻤﯿﺰ‬٢ ‫اﻟﻤﺆﻟﻒ‬:‫ﻣﺤﻔﻮظ‬ ‫أﻧﯿﺲ‬ ‫إﺑﺮاھﯿﻢ‬ ‫أﻧﺲ‬ ‫اﻟﺘﻌﺎﻣﻞ‬ ‫اﻟﻜﺘﺎب‬ ‫ﯾﺘﻨﺎول‬‫ﻣﻊ‬‫اﻟﻤﻠﻔﺎت‬‫اﻟﻤﺨﺘﻠﻔﺔ‬‫وﺷﺮح‬‫ﻣﺒﺴﻂ‬‫ّﺮ‬‫ﺴ‬‫وﻣﯿ‬‫ﻟﮭﺎ‬ ‫واﻟﺘﻌﺮف‬‫إﻟﻰ‬‫اﻟﻤﺘﻐﯿﺮات‬‫واﻟﻤﺼﻔﻮﻓﺎت‬‫ﺑﺎﻹ‬‫ﺿﺎﻓﺔ‬‫إﻟﻰ‬‫اﻟﻤﻮﺿﻮع‬‫اﻟﺠﺪﯾﺪ‬ ‫اﻟﻤﻤﯿﺰ‬‫أﻻ‬‫وھﻮ‬‫ﺑﺮﻣﺠﺔ‬‫اﻷ‬‫ﻟﻌﺎب‬‫ﺑﺎﺳﺘﺨﺪام‬‫ﻣﺤﺮﻛﺎت‬،‫ﻣﺨﺘﻠﻔﺔ‬‫ﻛﻤﺎ‬‫ﯾﺸﺘﻤﻞ‬ ‫اﻟﻜﺘﺎب‬‫ﻋﻠﻰ‬‫أﻣﺜﻠﺔ‬‫ﻣﺨﺘﻠﻔﺔ‬‫ﻟﻠﺸﺮوح‬‫ﻣﺮﻓﻘﺔ‬‫ﻣﻊ‬‫اﻟﻜﺘﺎب‬. 2014 ‫ﻋﻤﺎن‬-‫اﻷردن‬ ‫ﻟﻠﻤﺆﻟﻒ‬ ‫ﻣﺤﻔﻮظﺔ‬ ‫واﻟﻨﺸﺮ‬ ‫اﻟﻄﺒﻊ‬ ‫ﺣﻘﻮق‬
  • 2. ‫اﻹھﺪاء‬: ‫وﻋﻨﺎﯾﺘﮭﺎ‬ ‫ﺑﺠﮭﺪھﺎ‬ ً ‫ﯾﻮﻣﺎ‬ ّ‫ﻋﻠﻲ‬ ‫ﺗﺒﺨﻞ‬ ‫ﻟﻢ‬ ‫اﻟﺘﻲ‬ ‫اﻟﻐﺎﻟﯿﺔ‬ ‫أﻣﻲ‬ ‫إﻟﻰ‬ ‫ھﺬا‬ ‫ﻛﺘﺎﺑﻲ‬ ‫أھﺪي‬ ‫ﯾﺴﺎﻧﺪﻧﻲ‬ ‫اﻟﺬي‬ ‫اﻟﻌﺰﯾﺰ‬ ‫أﺑﻲ‬ ‫إﻟﻰ‬ ‫أھﺪﯾﮫ‬ ‫ﻛﻤﺎ‬‫طﺎﻟﻤﺎ‬ ‫اﻟﺬي‬ ‫أﺣﻤﺪ‬ ‫ﺷﻘﯿﻘﻲ‬ ‫وإﻟﻰ‬ ،ً ‫دوﻣﺎ‬ ‫واﻟﻐﻨﯿﺔ‬ ‫اﻟﺜﺮﯾﺔ‬ ‫وآراﺋﮫ‬ ‫أﻓﻜﺎره‬ ‫ﻣﻦ‬ ‫اﻟﻜﺜﯿﺮ‬ ‫ﻟﻲ‬ ‫وﻗﺪم‬ ‫ﺟﺎﻧﺒﻲ‬ ‫إﻟﻰ‬ ‫وﻗﻒ‬. ‫اﻻﺳﺘﻔﺎدة‬ ‫إﻟﻰ‬ ‫ﯾﺴﻌﻰ‬ ‫ﻋﻠﻢ‬ ‫طﺎﻟﺐ‬ ‫ﻛﻞ‬ ‫إﻟﻰ‬ ‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ ‫أھﺪي‬ ‫أن‬ ‫ﯾﻔﻮﺗﻨﻲ‬ ‫وﻻ‬‫ﻣﻦ‬ ‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﺮﻧﺎﻣﺞ‬ ‫ﻟﮫ‬ ‫ﯾﻔﺘﺤﮫ‬ ‫اﻟﺬي‬ ‫اﻟﻮاﺳﻊ‬ ‫اﻟﻌﺎﻟﻢ‬‫ﻣﺼﻤﻢ‬ ّ‫ﻞ‬‫ﻛ‬ ‫وإﻟﻰ‬ ، ‫وﻣﺒﺮﻣﺞ‬‫و‬ ‫ﻋﻤﻠﮫ‬ ‫ﺗﻄﻮﯾﺮ‬ ‫إﻟﻰ‬ ‫ﯾﮭﺪف‬‫ﺑﺮاﻣﺠﮫ‬‫وأﻟﻌﺎﺑﮫ‬. ‫وﻓﺤــﺺ‬ ‫ﺗﺪﻗﯿــــﻖ‬ ‫أ‬.‫ﻣﺤﻔﻮظ‬ ‫اﻧﯿﺲ‬ ‫اﺑﺮاھﯿـﻢ‬
  • 3. ‫اﻟﻤﻘﺪﻣﺔ‬ ‫اﻟﻨﺴﺨﺔ‬ ‫ﻧﺠﺎح‬ ‫ﺑﻌﺪ‬‫اﻷوﻟﻰ‬‫اﻟﻌﻤﻞ‬ ‫ﻗﺮرت‬ ‫واﻟﺤﻤﺪ‬ ‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ ‫ﻣﻦ‬‫و‬‫اﻟﺒﺪء‬ ‫ﻟﺴﺎﺑﻘﺘﮭﺎ‬ ‫ﻣﻜﻤﻠﺔ‬ ‫ﺗﻜﻮن‬ ‫ﻛﻲ‬ ‫اﻟﺜﺎﻧﯿﺔ‬ ‫اﻟﻨﺴﺨﺔ‬ ‫ﺑﻜﺘﺎﺑﺔ‬‫أن‬ ‫ﷲ‬ ‫ﻣﻦ‬ ً ‫راﺟﯿﺎ‬‫اﻟﺒﻌﺾ‬ ‫ﺗﻔﯿﺪ‬ ‫ﺑﻌﺾ‬ ‫ﻓﮭﻢ‬ ‫ﻓﻲ‬‫اﻷﻣﻮر‬‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﻋﺘﺒﺔ‬ ‫ﻣﻦ‬ ‫واﻻﻧﺘﻘﺎل‬‫إﻟﻰ‬‫اﺣﺘﺮاﻓﮫ‬ ‫ﻓﯿﮫ‬ ‫واﻟﺘﻤﯿﺰ‬. ‫ﻓﻲ‬‫ھﺬه‬‫اﻹﺻﺪار‬‫ﺳﻮف‬‫ﻧ‬‫ﺑ‬ ‫ﺘﻨﺎول‬‫ﺈذ‬‫وﻣﺨﺘﻠﻔﺔ‬ ‫ﻣﮭﻤﺔ‬ ‫ﻣﻮاﺿﯿﻊ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ن‬ ‫ﻣﻦ‬ ‫واﻟﺘﻌﻠﻢ‬ ‫ﺟﮭﺔ‬ ‫ﻣﻦ‬ ‫واﻟﺒﺮﻣﺠﺔ‬ ‫اﻟﺘﻄﺒﯿﻖ‬ ‫ﺑﻤﺘﻌﺔ‬ ‫ﯾﺸﻌﺮ‬ ‫اﻟﻘﺎرئ‬ ‫ﺗﺠﻌﻞ‬ ‫ﺳﻮف‬ ‫ﺟﮭﺔ‬‫أ‬‫ﺧﺮى‬. ‫ﺳ‬‫ﻨ‬‫ﺘﺤﺪث‬‫ﻓﻲ‬‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬‫اﻟﻤﺨﺘﻠﻔﺔ‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬ ‫ﻋﻦ‬،‫ﻣﺒﺴﻂ‬ ‫وﺷﺮح‬ ‫ّﺮ‬‫ﺴ‬‫وﻣﯿ‬‫ﻟﮭﺎ‬،‫واﻟﺘﻌﺮف‬‫إ‬‫ﺑﺎ‬ ‫واﻟﻤﺼﻔﻮﻓﺎت‬ ‫اﻟﻤﺘﻐﯿﺮات‬ ‫ﻟﻰ‬‫ﻹ‬‫ﺿﺎﻓﺔ‬‫إ‬‫اﻟﻤﻮﺿﻮع‬ ‫ﻟﻰ‬ ‫اﻟﻤﻤﯿﺰ‬ ‫اﻟﺠﺪﯾﺪ‬‫أ‬‫ﺑﺮﻣﺠﺔ‬ ‫وھﻮ‬ ‫ﻻ‬‫اﻷ‬‫ﻟﻌﺎب‬‫ﻛﻤﺎ‬ ،‫ﻣﺨﺘﻠﻔﺔ‬ ‫ﻣﺤﺮﻛﺎت‬ ‫ﺑﺎﺳﺘﺨﺪام‬ ‫ﻋﻠﻰ‬ ‫اﻟﻜﺘﺎب‬ ‫ﯾﺸﺘﻤﻞ‬‫أ‬‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻘﺔ‬ ‫ﻟﻠﺸﺮوح‬ ‫ﻣﺨﺘﻠﻔﺔ‬ ‫ﻣﺜﻠﺔ‬. ‫ّﻲ‬ ‫ﻛﻠ‬‫أﻣﻞ‬‫أن‬‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ ‫ﯾﻨﺎل‬‫إﻋﺠﺎﺑﻜﻢ‬‫ﺑﺈ‬‫ﻋﺰوﺟﻞ‬ ‫ﷲ‬ ‫ذن‬. ‫وراء‬ ‫ﻣﻦ‬ ‫وﷲ‬‫اﻟﻘﺼﺪ‬
  • 4. ‫اﻟﻔﮭﺮس‬ -‫اﻟﺘﻤﮭﯿﺪ‬:‫ﻣﺎذا‬‫ﯾﻠﺰم‬‫ﻗﺒﻞ‬‫أ‬‫ﻧﺒﺪأ‬ ‫ن‬ ‫اﻟﺘﺎﺳﻌﺔ‬ ‫اﻟﻮﺣﺪة‬: ‫و‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬‫اﻟ‬‫ﻤﺘﻔﺮﻗﺎت‬‫اﻟ‬‫ﻤﮭﻤﺔ‬ ١-‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬)١( ٢-‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬)٢( ٣-‫اﻟﻤﺼ‬‫ﻔ‬‫و‬ ‫ﻮﻓﺎت‬‫اﻟ‬‫ﺒﺪاﯾﺔ‬‫اﻟ‬‫ﺠﯿﺪة‬ ٤-‫ﻣﮭﻤﺔ‬ ‫ﻣﺘﻨﻮﻋﺔ‬ ‫دوال‬)١( ٥-‫ﻣﮭﻤﺔ‬ ‫ﻣﺘﻨﻮﻋﺔ‬ ‫دوال‬)٢( ‫اﻟﻮﺣﺪة‬‫اﻟﻌﺎﺷﺮة‬: ‫ﺑﺮﻣﺠﺔ‬ ‫ﻓﻲ‬ ‫اﻟﺒﺪاﯾﺔ‬‫اﻷ‬‫ﻟﻌﺎب‬ ١-‫ﺑﺮﻣﺠﺔ‬ ‫ﻋﻦ‬ ‫ﻧﺒﺬة‬‫اﻷ‬‫ﻟﻌﺎب‬‫وﻣﺤﺮﻛﺎﺗﮭﺎ‬ ٢-‫إ‬‫ﻣﺤﺮك‬ ‫ﻋﺪاد‬TrueVision3D‫ﻟﻠﻌﻤﻞ‬ ٣-‫رﺳﺎﻟﺔ‬ ‫ﺑﺮﻣﺠﺔ‬)HelloWorld( ٤-‫إ‬‫ﻋﺪاد‬Class Module‫اﻟﻌﻤﻞ‬ ‫ﻟﺘﺴﮭﯿﻞ‬ ٥-‫إﺿﺎﻓﺔ‬‫ﻣﺠﺴﻤﺎت‬Mesh‫و‬‫إ‬‫وﺗﻌﺪﯾﻠﮭﺎ‬ ‫ﻛﺴﺎﺋﮭﺎ‬ ٦-‫إﺿﺎﻓﺔ‬‫ﻣﺠﺴﻤﺎت‬Mdl‫وﺗﻌﺪﯾﻠﮭﺎ‬ ٧-‫إﺿﺎﻓﺔ‬‫اﻷ‬‫رض‬)Terrain( ٨-‫إﺿﺎﻓﺔ‬‫ﻣﻜﻌﺐ‬‫اﻟﺴﻤﺎء‬)SkyBox( ٩-‫اﻟﺘﺤﻜﻢ‬‫ﺑﺎﻟﻜﺎﻣﯿﺮا‬)Camera Control 1( ١٠-‫ﺑﺎﻟﻜﺎﻣﯿﺮا‬ ‫اﻟﺘﺤﻜﻢ‬)Camera Control 2( ١١-‫اﻟﺤﺮﻛﺔ‬‫واﻟﺘﺼﺎدم‬)Movement&Collision1( ١٢-‫اﻟﺤﺮﻛﺔ‬‫واﻟﺘﺼﺎدم‬)Movement&Collision2( ١٣-‫إﺿﺎﻓﺔ‬‫ﺧﺮاﺋﻂ‬Bsp
  • 5. ١٤-‫ﻣﺘﻨﻮﻋﺔ‬ ‫ﺗﻄﺒﯿﻘﺎت‬)١( ١٥-‫ﻣﺘﻨﻮﻋﺔ‬ ‫ﺗﻄﺒﯿﻘﺎت‬)٢( ١٦-‫ﺑﺴﯿﻄﺔ‬ ‫ﻟﻌﺒﺔ‬ ‫ﻋﻤﻞ‬)١( ١٧-‫ﺑﺴﯿﻄﺔ‬ ‫ﻟﻌﺒﺔ‬ ‫ﻋﻤﻞ‬)٢( ١٨-‫ﺑﺴﯿﻄﺔ‬ ‫ﻟﻌﺒﺔ‬ ‫ﻋﻤﻞ‬)٣( ١٩-‫أ‬‫ﻣﺘﻨﻮﻋﺔ‬ ‫ﻓﻜﺎر‬‫ﻣﺴﺘﻘﺒﻠﯿﺔ‬ ‫ﻟﺘﻄﺒﯿﻘﺎت‬
  • 6. ‫ﯾﻠﺰﻣﻨﺎ‬ ‫ﻣﺎذا‬‫ﻗﺒﻞ‬‫أ‬‫ﻧﺒﺪأ‬ ‫ن‬: ‫ا‬ ‫ﺳﻮى‬ ‫اﻟﻜﺜﯿﺮ‬ ‫ﻣﻨﻚ‬ ‫ﯾﺘﻄﻠﺐ‬ ‫ﻻ‬‫ﻹ‬‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﻠﻐﺔ‬ ‫اﻟﺒﺴﯿﻂ‬ ‫ﻟﻤﺎم‬٦‫أ‬‫ﻣﺎ‬‫إ‬‫ذا‬ ‫ﺿﻌﯿﻔ‬ ‫ﻛﻨﺖ‬ً ‫ﺎ‬‫إﻟﻰ‬ٍ‫ﺪ‬‫ﺣ‬‫اﻟﻨﺴﺨﺔ‬ ‫ﺑﺘﺤﻤﯿﻞ‬ ‫اﻟﻘﯿﺎم‬ ‫ﯾﻤﻜﻨﻚ‬ ‫اﻟﻠﻐﺔ‬ ‫ھﺬه‬ ‫ﻓﻲ‬ ‫ﻣﺎ‬‫اﻷوﻟﻰ‬‫ﻣﻦ‬ ‫ﺷﺮﺣ‬ ‫ﺗﺤﻤﻞ‬ ‫ﻓﮭﻲ‬ ‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ً ‫ﺎ‬‫ﺟﯿﺪ‬ً ‫ا‬‫وﻛﺎﻓ‬ً ‫ﯿﺎ‬‫ﻟﻠﻐﺔ‬ ‫ﻣﺠﺎﻧﻲ‬ ‫اﻟﻜﺘﺎب‬‫و‬‫ﺑﺎﻷ‬ ‫ﻣﺪﻋﻢ‬‫ﻣﺜﻠﺔ‬،‫و‬‫ھﻨﺎ‬ ‫ﻣﻦ‬ ‫اﻟﺘﺤﻤﯿﻞ‬ ‫ﯾﻤﻜﻨﻚ‬ http://www.kutub.info/library/book/6493 ‫أو‬‫ا‬ ‫ﻋﻠﻰ‬ ‫اﻟﻤﻮاﻗﻊ‬ ‫ﻣﺨﺘﻠﻒ‬ ‫ﻣﻦ‬ ‫اﻟﻤﺨﺘﻠﻔﺔ‬ ‫اﻟﻜﺘﺐ‬ ‫ﺗﺤﻤﯿﻞ‬ ‫ﯾﻤﻜﻨﻚ‬‫ﻹ‬‫ﻧﺘﺮﻧﺖ‬ ‫وﺷﺨﺼﯿﺎ‬‫أﻧﺼﺢ‬‫اﻟﻜﺘﺐ‬ ‫ﻟﺘﺤﻤﯿﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻤﻮﻗﻊ‬ ‫ﺑﺰﯾﺎرة‬ http://www.kutub.info/ ‫ﺟﺪا‬ ‫ﻣﮭﻢ‬::‫ﯾﺠﺐ‬ ‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻘﺔ‬ ‫اﻟﻤﺴﺎﻋﺪة‬ ‫واﻟﺒﺮاﻣﺞ‬ ‫اﻻﻣﺜﻠﺔ‬ ‫ﺗﻜﻦ‬ ‫ﻟﻢ‬ ‫اذا‬ ‫اﻟﺘﺎﻟﯿﺔ‬ ‫اﻟﺮواﺑﻂ‬ ‫ﻣﻦ‬ ‫ﺑﺘﺤﻤﯿﻠﮭﺎ‬ ‫اﻟﻘﯿﺎم‬ ‫ﻋﻠﯿﻚ‬. http://www.4shared.com/rar/4wao9A- Oba/_online.html ‫اﻟﻤﺴﺎﻋﺪة‬ ‫اﻟﺒﺮاﻣﺞ‬ ‫ﻟﺘﺤﻤﯿﻞ‬)‫ﻣﻠﻔﺎت‬ ‫ﺗﺸﻤﻞ‬sdk‫ﻧﺴﺘﺨﺪﻣﮭﺎ‬ ‫ﺳﻮف‬ ‫وﺑﺮاﻣﺞ‬ ‫اﻟﺒﺪأ‬ ‫ﻗﺒﻞ‬ ‫اﻣﺘﻼﻛﮭﺎ‬ ‫ﻋﻠﯿﻚ‬ ‫وﯾﺠﺐ‬ ‫ﻻﺣﻘﺎ‬(‫اﻟﺘﺎﻟﯿـ‬ ‫اﻟﺮاﺑﻂ‬ ‫ﻣﻦ‬ ‫وھﻲ‬: http://www.4shared.com/rar/MJHwZIqMba/__onlin e.html
  • 7. ‫اﻟﺘﺎﺳﻌﺔ‬ ‫اﻟﻮﺣﺪة‬ ‫ﻓﺘﺢ‬ ‫ﻣﻦ‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬ ‫ﻓﻲ‬ ‫ﻣﮭﻤﺔ‬ ‫ﻣﻮﺿﻮﻋﺎت‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬه‬ ‫ﺗﺘﻨﺎول‬ ‫ﺳﻮف‬ ‫ﺑﺎﻹ‬ ‫ﻋﻠﯿﮫ‬ ‫واﻟﺘﻌﺪﯾﻞ‬ ‫واﻟﻜﺘﺎﺑﺔ‬ ‫ﻣﻠﻒ‬‫ﺿﺎﻓﺔ‬‫إﻟﻰ‬‫اﻟ‬ ‫ﻓﻲ‬ ‫ﺟﯿﺪة‬ ‫ﺑﺪاﯾﺔ‬‫ﻤﺼﻔﻮﻓﺎت‬ ‫واﻟﻤﺘﻐﯿﺮات‬،‫ﻓﻲ‬ ‫ذﻛﺮھﺎ‬ ‫ﯾﺮد‬ ‫ﻟﻢ‬ ‫اﻟﺘﻲ‬ ‫اﻟﺪوال‬ ‫ﻟﺒﻌﺾ‬ ‫ﺷﺮوح‬ ‫ﻋﻠﻰ‬ ‫ﺗﺤﺘﻮي‬ ‫ﻛﻤﺎ‬ ‫ا‬‫ﻹ‬‫ﺻﺪار‬‫اﻷول‬‫ﻣﻦ‬ ‫اﻟﻌﺪﯾﺪ‬ ‫ﻣﻊ‬ ‫اﻟﻜﺘﺎب‬ ‫ھﺬا‬ ‫ﻣﻦ‬‫اﻷﻣﺜﻠﺔ‬‫واﻟﺸﺎﻣﻠﺔ‬ ‫اﻟﻤﺘﻨﻮﻋﺔ‬ ‫ﻟﻜﺎﻣﻞ‬ ‫اﻟﻤﻔﺼﻞ‬ ‫واﻟﺸﺮح‬ ‫اﻟﺪروس‬ ‫ﻟﻤﺨﺘﻠﻒ‬‫اﻷﻛﻮاد‬. ‫أ‬‫ﻣﮭﻤﺔ‬ ‫ﻓﮭﻲ‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬا‬ ‫ﻷھﻤﯿﺔ‬ ‫ﺑﺎﻟﻨﺴﺒﺔ‬ ‫ﻣﺎ‬ً ‫ﺟﺪا‬،‫و‬‫ﻛﺜﯿﺮ‬ ‫ﻓﻲ‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﺤﺘﺎج‬ ‫ﻗﺪ‬ ‫اﻻﺣﯿﺎن‬ ‫ﻣﻦ‬‫إﻟﻰ‬‫ﻣﻠﻒ‬ ‫ﻓﻲ‬ ‫وﻣﺤﻔﻮظﺔ‬ ‫ﻣﺨﺰﻧﺔ‬ ‫ﻣﻌﯿﻨﺔ‬ ‫ﻣﻌﻠﻮﻣﺎت‬ ‫اﺳﺘﺨﺪام‬‫أو‬‫ﻗﺪ‬ ‫ﯾﺤﺘﺎج‬‫إﻟﻰ‬‫اﻟﺮﺟﻮع‬ ‫ﻟﮫ‬ ‫ﯾﺘﺴﻨﻰ‬ ‫ﻟﻜﻲ‬ ‫اﺧﺮ‬ ‫ﻣﻠﻒ‬ ‫ﻓﻲ‬ ‫ﻣﻌﻠﻮﻣﺎت‬ ‫ﺗﺨﺰﯾﻦ‬‫إﻟﻰ‬‫ﺗﻠﻚ‬ ‫اﻟﻤﻌﻠﻮﻣﺎت‬.‫ﻧﺤﺘﺎج‬ ‫وﻗﺪ‬‫أو‬‫ﻣﺼﻨﻮع‬ ‫ﺑﺮﻧﺎﻣﺞ‬ ‫ﯾﺨﻠﻮ‬ ‫ﻻ‬ ‫ﻗﺪ‬‫ﺑﺄي‬‫اﺳﺘﺨﺪام‬ ‫ﻣﻦ‬ ‫ﻟﻐﺔ‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬‫أو‬‫ﻟﻌﻤﻞ‬ ‫دوال‬ ‫اﺳﺘﺨﺪام‬‫أ‬‫ﻣﻌ‬ ‫ﻣﺮ‬‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﯾﻨﺒﻐﻲ‬ ‫ﻟﺬﻟﻚ‬ ‫ﯿﻦ‬ ‫ﺑﺴﯿﻄﺔ‬ ‫ﻣﻌﺮﻓﺔ‬ ‫وﻟﻮ‬ ‫ﺑﮭﺎ‬ ‫اﻟﻤﻌﺮﻓﺔ‬. ‫ﻧﺴﺘﺨﺪم‬ ‫ﻓﺴﻮف‬ ‫اﻟﺴﺎﺑﻘﺔ‬ ‫اﻟﻮﺣﺪات‬ ‫ﻓﻲ‬ ‫ﺗﻌﻮدﻧﺎ‬ ‫وﻛﻤﺎ‬‫أ‬‫اﻷ‬ ‫ﺳﻠﻮب‬‫ﻣﺜﻠﺔ‬‫أو‬‫ﻛﻤﺎ‬ ‫ﯾﻘﺎل‬)‫اﻟﻤﻘﺎل‬ ‫ﯾﺘﻀﺢ‬ ‫ﺑﺎﻟﻤﺜﺎل‬. (
  • 8.
  • 9. ‫اﻟﺪرس‬‫اﻷول‬:‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬)١( ‫ﺑ‬ ‫وﻧﻘﻮم‬ ‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﺮﻧﺎﻣﺞ‬ ‫ﺑﺘﺸﻐﯿﻞ‬ ‫ﻧﻘﻮم‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬‫ﺈﻧﺸﺎء‬‫ﻓﻲ‬ ‫وﺣﻔﻈﮫ‬ ‫اﻟﻤﺸﺮوع‬ ‫ﻣﺴﺒﻖ‬ ‫ﻣﺠﻠﺪ‬. ‫ﻣﻼﺣﻈﺔ‬:‫ﻧﺒﺪ‬ ‫ﻋﻨﺪﻣﺎ‬‫أ‬‫ﺑﺸﻜﻞ‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬ ‫اﻟﻜﻮد‬ ‫ﺑﻜﺘﺎﺑﺔ‬‫أ‬‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫وﻟﻲ‬ Open FilePath for Action as #1 ……… Close #1 ‫اﻷ‬ ‫ﯾﻤﺜﻞ‬ ‫ﺣﯿﺚ‬‫ﻣﺮ‬open‫أ‬‫واﻷ‬ ‫اﻟﻤﻠﻒ‬ ‫ﻓﺘﺢ‬ ‫ﻣﺮ‬‫ﻣﺮ‬filepath‫اﻣﺘﺪاد‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬ ‫و‬ ‫ﻓﺘﺤﮫ‬ ‫اﻟﻤﺮاد‬ ‫اﻟﻤﻠﻒ‬action‫ﯾﻜﻮن‬ ‫وﺳﻮف‬ ‫ﯾﺘﻢ‬ ‫ﺳﻮف‬ ‫اﻟﺬي‬ ‫اﻟﻔﻌﻞ‬‫إ‬‫ﻟﻠﺒﯿﺎﻧﺎت‬ ‫دﺧﺎل‬‫أو‬ ‫إ‬‫واﻟﻔﻌﻞ‬ ‫ﻟﮭﺎ‬ ‫ﺧﺮاج‬close‫إ‬‫ﻟﻠﻤﻠﻒ‬ ‫ﻏﻼق‬. ‫أ‬‫ي‬‫أ‬‫ﻟﻮ‬ ‫ﻧﮫ‬‫أ‬‫اﻟﻤﻠﻒ‬ ‫ﻓﺘﺢ‬ ‫ردﻧﺎ‬ali.txt‫ﻗﺮص‬ ‫ﻋﻠﻰ‬ ‫اﻟﻤﻮﺟﻮد‬d:‫ﺑﺪاﺧﻠﮫ‬ ‫واﻟﻜﺘﺎﺑﺔ‬ ‫ﻓﺮﺿﺎ‬ ‫ﻛﻠﻤﺔ‬khald‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬ ‫ﻣﺜﻼ‬)‫اﻷ‬‫ﻣﺮ‬(‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬: Open "d:ali.txt" for output as #1 Print #1,"khald" Close #1 ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫أﻣﺮ‬open‫ورد‬ ‫ﻛﻤﺎ‬ ‫اﻟﻤﻠﻒ‬ ‫ﻟﻔﺘﺢ‬ ‫ھﻮ‬ً ‫ﺳﺎﺑﻘﺎ‬‫و‬d:ali.txt‫و‬ ‫اﻟﻜﺎﻣﻞ‬ ‫اﻟﻤﻠﻒ‬ ‫اﻣﺘﺪاد‬‫أﻣﺮ‬ output‫ھﻮ‬‫أﻣﺮ‬‫اﻟﻤﻠﻒ‬ ‫ﻋﻠﻰ‬ ‫اﻟﻜﺘﺎﺑﺔ‬‫و‬‫أﻣﺮ‬print#1‫ھﻮ‬‫أﻣﺮ‬‫و‬ ‫اﻟﻄﺒﺎﻋﺔ‬dekhal ‫و‬ ‫اﻟﻤﻠﻒ‬ ‫ﻋﻠﻰ‬ ‫طﺒﺎﻋﺘﮭﺎ‬ ‫اﻟﻤﺮاد‬ ‫اﻟﻜﻠﻤﺔ‬close#1‫ﻹ‬‫اﻟﻤﻠﻒ‬ ‫ﻏﻼق‬ ‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬:‫ﻓﻲ‬‫أﻣﺮ‬‫اﻟﻜﺘﺎﺑﺔ‬output‫ﺳﻮف‬ ‫ﻣﻮﺟﻮد‬ ‫ﻏﯿﺮ‬ ‫اﻟﻤﻠﻒ‬ ‫اﻣﺘﺪاد‬ ‫ﻛﺎن‬ ‫ﻟﻮ‬ ‫ﺑ‬ ‫اﻟﺤﺎﺳﻮب‬ ‫ﺟﮭﺎز‬ ‫ﯾﻘﻮم‬‫ﺈﻧﺸﺎء‬‫اﻻﻣﺘﺪاد‬.
  • 10. ‫اﻟﻤﺜﺎل‬)١( ‫ﺑ‬ ‫اﻟﻤﺜﺎل‬ ‫ﺑﮭﺬا‬ ‫ﺳﻨﻘﻮم‬‫ﺈﻧﺸﺎء‬‫ﺑﺪاﺧﻠﮫ‬ ‫واﻟﻜﺘﺎﺑﺔ‬ ‫ﻣﻠﻒ‬)‫اﻟﻤﻠﻒ‬ ‫ﻟﯿﻜﻦ‬‫داﺧﻞ‬‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻣﺠﻠﺪ‬( ً‫أوﻻ‬:‫اﻟﻨﻤﻮذج‬ ‫ﺷﻜﻞ‬ ‫ﺑﺠﻌﻞ‬ ‫ﻗﻢ‬)from(‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬‫أو‬‫ﺗﺮﯾﺪ‬ ‫ﻛﻤﺎ‬ ‫ﻣﺘﻐﯿﺮﯾﻦ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫ﻧﻘﻮم‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬‫اﻷول‬‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬text1‫اﺳﻢ‬ ‫ﺗﻤﺜﻞ‬ ‫اﻟﺘﻲ‬ ‫اﻟﻌﻠﻢ‬ ‫ﻣﻊ‬ ‫اﻟﻤﻠﻒ‬‫أ‬‫ﻓﺮﺿﺎ‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬ ‫اﻟﻤﻠﻒ‬ ‫اﻣﺘﺪاد‬ ‫ن‬).txt(‫إ‬‫ﻻ‬‫إذا‬‫ﺗﻐ‬ ‫اﺣﺒﺒﺖ‬‫ﯿﯿﺮه‬ ‫ﺑ‬‫ﻤﺘﻐﯿﺮ‬‫آ‬‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬ ‫ﺧﺮ‬text2‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬: Dim filename as string, filetext as string ‫ﺗﻌﻠﻤﻨﺎ‬ ‫ﻛﻤﺎ‬ً ‫ﺳﺎﺑﻘﺎ‬... ‫ﺑ‬ ‫ﻧﻘﻮم‬‫ﻗ‬ ‫ﺘﻌﺮﯾﻒ‬‫ﺣﯿ‬ ‫اﻟﺰر‬ ‫ﻓﻲ‬ ‫اﻟﻤﺘﻐﯿﺮﯾﻦ‬ ‫ﯿﻤﺔ‬‫ﺚ‬‫أ‬‫اﻟﻘﯿﻤﺔ‬ ‫ﯾﺎﺧﺬ‬ ‫اﻟﻨﻘﺮ‬ ‫ﻋﻨﺪ‬ ‫ﻧﮫ‬ Filename = text1.text Filetext = text2.text ‫اﻟﻜﻮد‬ ‫ھﺬا‬ ‫ﻧﻀﻊ‬ً ‫أﯾﻀﺎ‬‫اﻟﺰر‬ ‫ﻓﻲ‬ If filename <> "" then Open app.path + "" + ilename + ".txt" for output as #1
  • 11. Print #1, iletext Close #1 Else: msgbox ("err in name") , vbexclamation End if ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬‫ﺷﺮط‬ ‫وھﻮ‬‫أ‬‫ي‬‫أ‬‫ﻗﯿﻤﺔ‬ ‫ﺗﺴﺎوي‬ ‫ﻟﻢ‬ ‫ﻟﻮ‬ ‫ﻧﮫ‬filename‫ﻗﯿﻤﺔ‬)‫اﻟﻔﺮاغ‬(‫ﯾﺒﺪ‬‫أ‬ ‫اﻟﺸﺮط‬ ‫ﺗﻨﻔﯿﺬ‬،‫ﻣﻦ‬ ‫اﻟﻜﻮد‬ ‫وھﺬا‬‫أ‬‫اﻷ‬ ‫ﺗﻨﻔﯿﺬ‬ ‫ﺟﻞ‬‫ﻣﺮ‬‫ﯾﺤﻮي‬ ‫اﻟﻤﻠﻒ‬ ‫اﺳﻢ‬ ‫ﺻﻨﺪوق‬ ‫ﻛﺎن‬ ‫ﺣﺎل‬ ‫ﻓﻲ‬ ‫اﺳﻢ‬ ‫ﻋﻠﻰ‬. ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬‫أﻣﺮ‬‫اﻟﻤﻠﻒ‬ ‫ﻟﻔﺘﺢ‬،‫اﻧﺘﺒﮫ‬ ‫ﻟﻜﻦ‬: ‫اﻷ‬‫ﻣﺮ‬app.path‫ﯾﺸﯿﺮ‬‫إﻟﻰ‬‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫اﻣﺘﺪاد‬،‫وﻷن‬‫ﺑﺎﺳﻢ‬ ‫ﯾﻨﺘﮭﻲ‬ ‫ﺳﻮف‬ ‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫اﻣﺘﺪاد‬ ‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫اﻟﺤﺎوي‬ ‫اﻟﻤﺠﻠﺪ‬،‫ﻋﻠﻰ‬ ‫ﯾﺤﺘﻮي‬ ‫وﻟﻦ‬‫إ‬‫ﺷﺎرة‬""‫وﯾﻤﻜﻦ‬‫إ‬‫اﻟﻨﻘﻄﺔ‬ ‫ﯾﻀﺎح‬ ‫اﻟﺘﺎﻟﻲ‬ ‫ﺑﺎﻟﻤﺜﺎل‬c:ahmed‫ﻧﻼﺣﻆ‬ ‫ﺳﻮف‬‫أ‬‫اﺳﻤﮫ‬ ‫ﻟﻤﺠﻠﺪ‬ ‫اﻣﺘﺪاد‬ ‫ھﺬا‬ ‫ن‬‫أ‬‫ﻧﺤﻦ‬ ‫ﻟﻜﻦ‬ ‫ﺣﻤﺪ‬ ‫ﻧﺮﯾﺪ‬‫إﻧﺸﺎء‬‫اﻟﻤﺠﻠﺪ‬ ‫داﺧﻞ‬ ‫اﻟﻤﻠﻒ‬،‫ﺻﺤﯿﺤ‬ ‫اﻟﻤﺴﺎر‬ ‫ﯾﻜﻮن‬ ‫وﺣﺘﻰ‬ً ‫ﺎ‬‫ﯾﺠﺐ‬‫أ‬‫ﻋﻠﻰ‬ ‫ﯾﻜﻮن‬ ‫ن‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﺸﻜﻞ‬ahmedc:‫ﺑ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻓﻲ‬ ‫ﻗﻤﻨﺎ‬ ‫وﻟﺬﻟﻚ‬‫ﺈﺿﺎﻓﺔ‬"" ‫أ‬‫ﻣﺎ‬filename‫ﻗﯿﻤﺔ‬ ‫ﻓﮭﻲ‬text1.text‫ﻻﺣﻆ‬ ‫و‬‫أ‬‫ن‬".txt"‫اﻟﻤﻠﻒ‬ ‫اﻣﺘﺪاد‬ ‫ھﻲ‬ ‫اﻻﻣﺘﺪاد‬ ‫ﺣﺴﺐ‬ ‫ﺗﻐﯿﺮه‬ ‫وﯾﻤﻜﻨﻚ‬‫اﻟﺬي‬‫و‬ ‫ﺗﺮﯾﺪه‬output‫ھﻲ‬‫أﻣﺮ‬‫اﻟﻜﺘﺎﺑﺔ‬. ‫أ‬‫ﻓﮭﻮ‬ ‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬‫أﻣﺮ‬‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﻓﻲ‬ ‫ﻣﻮﺟﻮد‬ ‫ھﻮ‬ ‫ﻣﺎ‬ ‫ﻟﻜﺘﺎﺑﺔ‬filetext‫اﻟﻤﻠﻒ‬ ‫ﻋﻠﻰ‬ ‫أ‬‫ﻓﮭﻮ‬ ‫اﻟﺮاﺑﻊ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬‫إ‬‫اﻟﻤﻠﻒ‬ ‫ﻟﻘﺮاءة‬ ‫ﻏﻼق‬. ‫أ‬‫ﺗﺤﺬﯾﺮ‬ ‫رﺳﺎﻟﺔ‬ ‫ﺗﻈﮭﺮ‬ ‫ﺳﻮف‬ ‫اﻟﺸﺮط‬ ‫ﺗﺤﻘﻖ‬ ‫ﻋﺪم‬ ‫ﺣﺎﻟﺔ‬ ‫ﻓﻲ‬ ‫ﻓﮭﻮ‬ ‫اﻟﺨﺎﻣﺲ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬ )exclamation(‫اﻟﻤﻠﻒ‬ ‫اﺳﻢ‬ ‫ﻓﻲ‬ ‫ﺧﻄﺄ‬ ‫ﺑﻮﺟﻮد‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﺗﺨﺒﺮ‬. ‫اﻟﺴﺎدس‬ ‫اﻟﺴﻄﺮ‬‫ﻷﻧﮭﺎ‬‫اﻟﺸﺮط‬. ‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬:
  • 12. ‫ﺗﺬﻛﯿﺮ‬:‫ﻻﺣﻆ‬‫أ‬‫ﻋﻨﺪ‬ ‫ﻧﮫ‬‫إﺿﺎﻓﺔ‬‫ﻻ‬ ‫اﻟﻨﺺ‬ ‫ﺻﻨﺪوق‬‫ﻓﻲ‬ ‫اﻟﻜﺘﺎﺑﺔ‬ ‫ﻣﻦ‬ ‫ﯾﻤﻜﻨﻚ‬‫أ‬‫ﺳﻄﺮ‬ ‫ﻣﻦ‬ ‫ﻛﺜﺮ‬ ‫اﻟﻤﺘﻌﺪد‬ ‫اﻟﺴﻄﺮ‬ ‫ﺧﺎﺻﯿﺔ‬ ‫ﺑﺘﻌﺪﯾﻞ‬ ‫ﻓﻘﻂ‬ ‫ﻗﻢ‬ ‫ﻟﺬﻟﻚ‬)MultiLine(‫واﺟﻌﻠﮭﺎ‬true ‫ﺗﺬﻛﯿ‬‫ﺮ‬‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻖ‬ ‫اﻟﻤﺜﺎل‬
  • 13. ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺪرس‬:‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫اﻟﺘﻌﺎﻣﻞ‬)٢(: ‫طﺮﯾﻘﺔ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻌﺮﻓﻨﺎ‬ ‫اﻟﺴﺎﺑﻖ‬ ‫اﻟﺪرس‬ ‫ﻓﻲ‬‫اﻟﻤﻠﻔﺎت‬ ‫ﻋﻠﻰ‬ ‫اﻟﻜﺘﺎﺑﺔ‬،‫اﻟﺪرس‬ ‫ھﺬا‬ ‫ﻓﻲ‬ ‫وﺳﻨﺘﻌﺮف‬ -‫إ‬‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺷﺎء‬ ‫ن‬-‫ﻣﻮﺟﻮدة‬ ‫ﻣﻠﻔﺎت‬ ‫ﻋﻠﻰ‬ ‫ﻣﺨﺰﻧﺔ‬ ‫ﻣﻌﻠﻮﻣﺎت‬ ‫اﺳﺘﻌﺮاض‬ ‫ﻛﯿﻔﯿﺔ‬ ‫ﻋﻠﻰ‬ ً ‫ﻣﺴﺒﻘﺎ‬. ‫ﻣﺜﺎل‬)٢( ‫و‬ ‫اﻟﺴﺎﺑﻖ‬ ‫اﻟﻤﺜﺎل‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺘﻌﺪﯾﻞ‬ ‫اﻟﻤﺜﺎل‬ ‫ﺑﮭﺬا‬ ‫ﺳﻨﻘﻮم‬‫إﺿﺎﻓﺔ‬‫اﻟﺸﻜﻞ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬ ‫ﻟﮫ‬ ‫ﺣﻔﻆ‬ ‫زر‬ ‫ھﺬا‬ ‫ﯾﺤﺘﻮي‬ ‫ﺳﻮف‬ ‫ﻧﺼﻲ‬ ‫ﻣﺘﻐﯿﺮ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫ﻧﻘﻮم‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬‫اﻟﻤﻠﻒ‬ ‫ﻧﺺ‬ ‫ﻋﻠﻰ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫ﻗﺮاءﺗﮫ‬ ‫اﻟﻤﺮاد‬: Dim DataText as string ‫اﻟﻤﺴﻤﻰ‬ ‫اﻟﺰر‬ ‫داﺧﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻜﺘﺎﺑﺔ‬ ‫ﻧﻘﻮم‬OpenFile FileName = Text1.Text Open app.path + "" + ilename + "txt" for input as #1 Input #1,datatext Close #1 Text2.text = datatext
  • 14. ‫ﻧﻼﺣﻆ‬‫أ‬‫اﻟﻜﺘﺎﺑﺔ‬ ‫ﻛﻮد‬ ‫ﯾﺸﺒﮫ‬ ‫اﻟﻜﻮد‬ ‫ن‬‫إﻟﻰ‬‫أ‬‫ﻓﻲ‬ ‫ﻛﺎن‬ ‫اﻟﻔﺮق‬ ‫ن‬‫أﻣﺮ‬Input. ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﻟﺠﻌﻞ‬filename‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬text1.text‫اﺳﻢ‬ ‫ھﻲ‬ ‫اﻟﺘﻲ‬ ‫اﻟﻤﻠﻒ‬. ‫أ‬‫ﻟﻠﻘﺮاءة‬ ‫اﻟﻤﻠﻒ‬ ‫ﻟﻔﺘﺢ‬ ‫اﻟﻜﻮد‬ ،‫واﺿﺢ‬ ‫ﻓﮭﻮ‬ ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬. ‫ﻓﻲ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻟﻘﺮاءة‬ ‫اﻟﺜﺎﻟﺚ‬ ‫واﻟﺴﻄﺮ‬‫اﻟﺴﻄﺮ‬‫اﻷول‬‫ﻻﺣﻆ‬‫أﻧﮫ‬‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﯾﻘﺮأ‬ ‫ﺳﻮف‬ ‫اﻟﺴﻄﺮ‬ ‫ﻓﻲ‬ ‫اﻟﻤﻮﺟﻮدة‬‫اﻷول‬‫اﻟﻤﻠﻒ‬ ‫ﻣﻦ‬ ‫ﻓﻘﻂ‬‫أ‬‫ﻣﺎ‬‫إ‬‫ذا‬‫أ‬‫اﻟﺴﻄﺮ‬ ‫ﻗﺮاءة‬ ‫ردﻧﺎ‬‫اﻷول‬‫واﻟﺜﺎﻧﻲ‬ ‫ﺑ‬ ‫ﻧﻘﻮم‬ ‫ﻣﺜﻼ‬‫ﺈﻧﺸﺎء‬‫ﻣﺘﻐﯿﺮ‬‫أو‬‫ﻣﺼﻔﻮﻓﺔ‬–‫ﻻﺣﻘﺎ‬ ‫ﻧﺘﻌﻠﻢ‬ ‫ﺳﻮف‬ ‫ﻛﻤﺎ‬–‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺤﻤﻞ‬ ‫ﺑﺎﻟﺘﺎﻟﻲ‬ ‫وﻧﻘﻮم‬ Input #1,datatext(0) - ‫ﻟﻠﺴﻄﺮ‬‫اﻷول‬ Input #1,datatext(1) -‫اﻟﺜﺎﻧﻲ‬ ‫ﻟﻠﺴﻄﺮ‬ ‫وھﻜﺬا‬..... ‫أ‬‫ﻓﮭﻮ‬ ‫اﻟﺮاﺑﻊ‬ ‫اﻟﺴﻄﺮ‬ ‫ﻣﺎ‬‫ﻹ‬‫اﻟﻘﺮاءة‬ ‫ﻣﻦ‬ ‫اﻟﻤﻠﻒ‬ ‫ﻏﻼق‬. ‫اﻟﻨﺺ‬ ‫ﺻﻨﺪوق‬ ‫ﻓﻲ‬ ‫اﻟﻤﺤﺘﻮى‬ ‫ﻟﻌﺮض‬ ‫ﻓﮭﻮ‬ ‫اﻟﺨﺎﻣﺲ‬ ‫اﻟﺴﻄﺮ‬)TextBox(٢ ‫ﻣﻼﺣﻈﺔ‬:‫ﺣﯿﻦ‬ ‫ﻣﻦ‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﺤﺘﺎج‬ ‫ﻓﻘﺪ‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﻣﻊ‬ ‫ﻟﻠﺘﻌﺎﻣﻞ‬ ‫ﺑﺴﯿﻄﺔ‬ ‫ﻣﻘﺪﻣﺔ‬ ‫ھﺬه‬ ‫ﻛﺎﻧﺖ‬ ‫إﻟﻰ‬‫آ‬‫ﺧﺮ‬‫إﻟﻰ‬‫ﻟﻠﻌﻮدة‬ ‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻋﻦ‬ ‫ﺧﺎرﺟﻲ‬ ‫ﻣﻠﻒ‬ ‫ﻋﻠﻰ‬ ‫اﻟﻤﻠﻔﺎت‬ ‫ﺗﺨﺰﯾﻦ‬‫إ‬‫وﻗﺖ‬ ‫ﻓﻲ‬ ‫ﻟﯿﮭﺎ‬ ‫آ‬‫ﺧﺮ‬.‫واﻟﻤﻌﻠﻮﻣﺎت‬ ‫اﻟﺪروس‬ ‫ﻣﻦ‬ ‫اﻟﻤﺰﯾﺪ‬ ‫ﻋﻠﻰ‬ ‫اﻟﺤﺼﻮل‬ ‫ﯾﻤﻜﻨﻚ‬‫اﻹﺿﺎﻓﯿﺔ‬‫ﻓﻲ‬ ‫ﺑﺎﻟﺒﺤﺚ‬ ‫ﺷﺒﻜﺔ‬‫اﻹﻧﺘﺮﻧﺖ‬.... ‫و‬‫أﺧﯿﺮ‬‫ا‬‫ﺗﺬﻛﺮ‬‫أ‬‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻖ‬ ‫اﻟﻤﺜﺎل‬ ‫ن‬...
  • 15. ‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﺪرس‬:‫ﺟﯿﺪة‬ ‫وﺑﺪاﯾﺔ‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﺤﺘﺎج‬ ‫ﻓﻘﺪ‬ ‫اﻟﺒﺮﻣﺠﺔ‬ ‫ﻓﻲ‬ ‫ﻋﺎم‬ ‫ﺑﺸﻜﻞ‬ ‫ﻣﮭﻤﺔ‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬‫إﻟﻰ‬‫ﻛﻤﯿﺎت‬ ‫ﺗﺨﺰﯾﻦ‬ ‫ﺗﺨﺰﯾﻨﮭﺎ‬ ‫ھﻲ‬ ‫ﻋﻠﯿﮭﺎ‬ ‫اﻟﺮﺟﻮع‬ ‫ﻟﺘﺴﮭﯿﻞ‬ ‫ﺗﺨﺰﯾﻨﮭﺎ‬ ‫ﻓﻲ‬ ‫اﻟﺴﻠﯿﻤﺔ‬ ‫واﻟﻄﺮﯾﻖ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻣﻦ‬ ‫ﻛﺒﯿﺮة‬ ‫أو‬،‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﻓﻲ‬ ‫ﺣﻔﻈﮭﺎ‬‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺗﺤﺘﻮي‬ ‫ﺳﻠﺴﻠﺔ‬ ‫ھﻲ‬ ‫واﻟﻤﺼﻔﻮﻓﺔ‬‫أو‬ ،‫ﻣﻨﺘﻈﻢ‬ ‫ﺑﺸﻜﻞ‬ ‫ﻓﯿﮭﺎ‬ ‫ﻣﺮﺗﺒﺔ‬ ‫اﻟﻌﻨﺎﺻﺮ‬‫ﻓﻲ‬ ‫واﻟﻤﺼﻔﻮﻓﺔ‬‫ﺗﺸﺒﮫ‬ ‫اﻟﺒﺮﻣﺠﺔ‬ ‫ﻟﻐﺎت‬‫إﻟﻰ‬‫ﻣﺎ‬ ‫ﺣﺪ‬ ‫اﻟﺮﯾﺎﺿﯿﺎت‬ ‫ﻓﻲ‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬. ‫ﻟﻦ‬‫ﻧ‬‫ﺘﻄﺮق‬‫إﻟﻰ‬‫أ‬‫اﻷ‬ ‫ﻧﺎﺧﺬ‬ ‫ﺳﻮف‬ ‫ﺑﻞ‬ ‫ﻣﻨﮭﺎ‬ ‫ﻛﺜﯿﺮة‬ ‫ﻣﻮر‬‫ﻣﻮر‬‫ﻟﻜﻲ‬ ‫ﻣﻌﺎ‬ ‫وﺟﺪﯾﺔ‬ ‫ﺑﺒﺴﺎطﺔ‬ ‫اﻷ‬ ‫ﺗﻌﻘﯿﺪ‬ ‫ﻻﻧﺰﯾﺪ‬‫ﻣﻮر‬. ‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫ﯾﻜﻮن‬ ‫اﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﺷﻜﻞ‬: A11=9 || A12=8 || A13 = 6 A21 =1|| A22=2 || A23 = 7 A31 =4|| A32=9 || A33 = 2 ‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫اﻟﺘﺮﺗﯿﺐ‬ ‫ﯾﻜﻮن‬ ‫ﺣﯿﺚ‬ ‫وھﻜﺬا‬: ‫اﻵن‬‫و‬ ‫ﺗﺼﻨﯿﻒ‬ ‫ﻓﻲ‬ ‫ﻧﺪﺧﻞ‬ ‫ﻟﻦ‬‫أ‬‫ﻓﻘﻂ‬ ‫ﺷﻜﻠﯿﻦ‬ ‫ﻧﺪرس‬ ‫ﺳﻮف‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬ ‫ﻧﻮاع‬. ‫اﻟﺸﻜﻞ‬‫اﻷول‬Data(0 to N) ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺸﻜﻞ‬Data = array("n1","n2",…..)
  • 16. ‫اﻟﻤﺜﺎل‬)٣( ‫اﻟﻤﺼ‬ ‫اﺳﺘﺨﺪام‬ ‫ﻧﻮﺿﺢ‬ ‫ﺳﻮف‬ ‫اﻟﻤﺜﺎل‬ ‫ھﺬا‬ ‫ﻓﻲ‬‫ﻔ‬‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﺮﻧﺎﻣﺞ‬ ‫ﺑﺸﺘﻐﯿﻞ‬ ‫ﻧﺒﺪأ‬ ،‫ﻮﻓﺎت‬ ‫ﺑﯿﺴﻚ‬٦. ‫اﻟﻨﻤﻮذج‬ ‫ﺷﻜﻞ‬ ‫ﺑﻌﻤﻞ‬ ‫ﻧﻘﻮم‬)Form(‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬‫أو‬‫رﻏﺒﺘﻚ‬ ‫ﺣﺴﺐ‬ ‫ﺗﻌﺪﯾﻠﮫ‬ ‫ﯾﻤﻜﻨﻚ‬: ‫ﻣﺘﻐﯿﺮ‬ ‫ﻓﻲ‬ ‫اﻟﺜﻼث‬ ‫اﻟﺼﻨﺎدﯾﻖ‬ ‫ﻗﯿﻢ‬ ‫ﺗﺨﺰﯾﻦ‬ ‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻣﻦ‬ ‫اﻟﮭﺪف‬)‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬( ‫اﻟﻘﯿﻢ‬ ‫ﺳﯿﺤﻤﻞ‬ ‫اﻟﺬي‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫ﻧﻘﻮم‬ ‫وﻋﻠﯿﮫ‬ ،‫ﺟﻤﻌﮭﺎ‬ ‫وطﺒﺎﻋﺔ‬ Dim Data(0 to 2) as string ‫ﻻﺣﻆ‬‫أ‬‫ﯾﺤﻤﻞ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ن‬٣‫أ‬‫ﺗﺨﺰﯾﻦ‬ ‫ﻣﺎﻛﻦ‬‫أ‬‫ي‬‫أ‬‫ﺣﯿﺚ‬ ‫ﻣﺤﺴﻮب‬ ‫اﻟﺼﻔﺮ‬ ‫ن‬data(0)‫ﯾﻌﺪ‬ ‫و‬ ‫ﻣﺘﻐﯿﺮ‬data(1)‫و‬ ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ھﻮ‬data(2)‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ھﻮ‬،‫أ‬‫ي‬‫أ‬‫ﻟﻮ‬ ‫ﻧﮫ‬ ‫أ‬‫ﺗﺨﺰﯾﻦ‬ ‫ردﻧﺎ‬٨‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﺷﻜﻞ‬ ‫ﯾﻜﻮن‬ ‫ﺳﻮف‬ ‫ﻣﺜﻼ‬ ‫ﻗﯿﻢ‬data(0to8). ‫اﻟﺰر‬ ‫داﺧﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬‫اﻷول‬: data(0) = text1.text data(1) = text2.text data(2) = text3.text msgbox data(0) + data(1) + data ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬‫ﻋﻠﻰ‬ ‫اﻟﺜﻼﺛﺔ‬ ‫اﻟﺼﻨﺎدﯾﻖ‬ ‫ﻗﯿﻢ‬ ‫ﺗﺤﻤﻞ‬ ‫اﻟﻤﺘﻐﯿﺮات‬ ‫ﯾﺠﻌﻞ‬ ‫واﻟﺜﺎﻟﺚ‬ ‫واﻟﺜﺎﻧﻲ‬ ‫اﻟﺘﺮﺗﯿﺐ‬)‫ﻧﻼﺣﻆ‬‫أ‬‫ا‬ ‫ﻛﺎﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﻧﮭﺎ‬‫ﻷ‬‫ﺣﺎدﯾﺔ‬.(
  • 17. ‫ﻹ‬ ‫وھﻮ‬ ‫اﻟﺮاﺑﻊ‬ ‫اﻟﺴﻄﺮ‬‫ﺑﻤﺎ‬ ‫طﺒﻌﺎ‬ ،‫ﺟﻤﻌﮭﻢ‬ ‫ﺑﺤﺎﺻﻞ‬ ‫رﺳﺎﻟﺔ‬ ‫رﺳﺎل‬‫أ‬‫ﻧﺼﻲ‬ ‫ھﻮ‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ن‬ ‫ﻛﻤﺎ‬‫ﻋﺮﻓﻨﺎه‬ً ‫ﺳﺎﺑﻘﺎ‬as string‫ﻋﺪدﯾﺔ‬ ‫ﻋﻤﻠﯿﺔ‬ ‫اﻟﺠﻤﻊ‬ ‫ﻋﻤﻠﯿﺔ‬ ‫ﺗﻜﻮن‬ ‫ﻟﻦ‬،‫و‬‫إ‬‫ﺗﻜﻮن‬ ‫ﻧﻤﺎ‬ ‫ﻛﺎﻟﺘﺎﻟﻲ‬: "anas" + "anis" = "anasanis" "a" + "b" + "c" = "abc" "102" + "a" + "5*%" = "102a5*%" ‫ﻣﺘﻐﯿﺮ‬ ‫ﻛﺎن‬ ‫ﻟﻮ‬ ‫ﻟﻜﻦ‬ً ‫ا‬‫ﻋﺪدﯾ‬ً ‫ﺎ‬‫ﻣﺜﻼ‬as single‫ﯾﻘﺒﻞ‬ ‫ﻟﻦ‬‫إ‬‫ﻻ‬‫أ‬‫رﻗﺎﻣ‬ً ‫ﺎ‬‫ﻋﺪدﯾ‬ ‫اﻟﺠﻤﻊ‬ ‫وﺳﯿﻜﻮن‬ً ‫ﺎ‬ ‫ﻛﺎﻟﺘﺎﻟﻲ‬: 120 – 5 = 115 ‫اﻵن‬‫ﺑ‬ ‫ﺳﻨﻘﻮم‬‫ﺈﺿﺎﻓﺔ‬‫داﻟﺔ‬array‫ﺑﮭﺎ‬ ‫ﺧﺎﺻﺔ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫واﺳﺘﺨﺪام‬،‫ﻓﻲ‬ ‫اﻟﻜﻮد‬ ‫ھﺬا‬ ‫ﺿﻊ‬ ‫اﻟﺰر‬٢)Command2. ( Data2 = array("a","b","c","d") Msgbox data2(3) + data2(1) + data2(2) + data2(0) ‫أن‬ ‫ﻧﻼﺣﻆ‬‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬ً ‫أﯾﻀﺎ‬ً‫ء‬‫اﺑﺘﺪا‬ ‫اﻟﻘﯿﻢ‬ ‫ﺗﺨﺰن‬‫اﻟﺮﻗﻢ‬ ‫ﻣﻦ‬0. ‫ﺗﻔﺴﯿﺮ‬‫اﻟﻜﻮد‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬‫ﺣﯿﺚ‬ ‫اﻟﻤﺼﻔﻮﻓﺔ‬ ‫داﺧﻞ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﯾﺨﺰن‬‫أ‬‫ن‬: Data2(0) = "a" Data2(1) = "b" ‫وھﻜﺬا‬. ‫اﻟﺠﻤﻊ‬ ‫ﻣﺎھﯿﺔ‬ ‫ﺑﯿﻨﺎ‬ ‫ﻛﻤﺎ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﺑﺠﻤﻊ‬ ‫ﯾﻘﻮم‬ ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬ً ‫ﺳﺎﺑﻘﺎ‬: ‫ﺑﺠﻤﻊ‬ ‫ﯾﺒﺪأ‬d‫ﺛﻢ‬b‫ﺛﻢ‬c‫ﺛﻢ‬a‫اﻟﻜﻮد‬ ‫ﺗﻌﺪﯾﻞ‬ ‫ﺑﺎﻟﻄﺒﻊ‬ ‫ﯾﻤﻜﻦ‬ ‫ﻛﻤﺎ‬.
  • 18. ‫ﻟﻠﻜﻮد‬ ‫اﻟﻨﮭﺎﺋﻲ‬ ‫اﻟﺸﻜﻞ‬: ‫ﻣﻘﺪﻣﺔ‬ ‫ھﺬه‬ ‫ﻛﺎﻧﺖ‬‫اﻟﻤﺼﻔﻮﻓﺎت‬ ‫ﻓﻲ‬ ‫ﺟﯿﺪة‬،‫ﺳ‬ ‫ﻣﻮﺿﻮﻋﺎت‬ ‫وﺗﺘﻨﺎول‬‫اﻟﺘﻘﺪم‬ ‫ﺑﻌﺪ‬ ‫ﺗﮭﻤﻨﺎ‬ ‫ﻮف‬ ‫اﻟﻤﺎدة‬ ‫ھﺬه‬ ‫ﻓﻲ‬. ‫اﻻطﻼع‬ ‫ﯾﻤﻜﻨﻚ‬‫أ‬‫ا‬ ‫ﻣﻮاﻗﻊ‬ ‫زﯾﺎرة‬ ‫ﺧﻼل‬ ‫ﻣﻦ‬ ‫ﻛﺜﺮ‬‫ﻹ‬‫اﻟﻤﺨﺘﻠﻔﺔ‬ ‫ﻧﺘﺮﻧﺖ‬. ‫ﺗﺬﻛﺮ‬‫أ‬‫اﻟﻤﺜﺎل‬ ‫ﺑﺎﺳﻢ‬ ‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮﻓﻖ‬ ‫اﻟﻤﺜﺎل‬ ‫ن‬)٣(
  • 19. ‫اﻟﺮاﺑﻊ‬ ‫اﻟﺪرس‬:‫وﻣﮭﻤﺔ‬ ‫ﻣﺘﻨﻮﻋﺔ‬ ‫دوال‬)١( ‫ﻣﮭﻤ‬ ‫دورا‬ ‫وﺗﻠﻌﺐ‬ ‫ﺗﺆدي‬ ‫اﻟﺮﯾﺎﺿﯿﺔ‬ ‫اﻟﻌﻤﻠﯿﺎت‬ً ‫ﺎ‬‫ﻻ‬ ‫ﻟﺬﻟﻚ‬ ‫اﻟﺒﺮﻣﺠﺔ‬ ‫ﻓﻲ‬ّ‫ﺪ‬‫ﺑ‬‫ﻋﻠﻰ‬ ‫اﻟﺘﻌﺮف‬ ‫ﻣﻦ‬ ‫ھﺬه‬ ‫ﻋﻦ‬ ‫ﻟﻠﺤﺪﯾﺚ‬ ‫ﻣﺨﺼﺼﺎ‬ ‫ﺳﯿﻜﻮن‬ ‫اﻟﺪرس‬ ‫ھﺬا‬ ‫ﻟﺬﻟﻚ‬ ،‫اﻟﻌﻤﻠﯿﺎت‬ ‫ﺑﮭﺬه‬ ‫اﻟﻤﺘﻌﻠﻘﺔ‬ ‫اﻟﺪوال‬ ‫اﻟﺪوال‬.‫ﻋﻤﻞ‬ ‫وﺑﻌﺪھﺎ‬‫آ‬‫اﻟﺪرس‬ ‫ھﺬا‬ ‫ﻋﻠﻰ‬ ‫ﻛﺘﻄﺒﯿﻖ‬ ‫اﻟﺪوال‬ ‫ھﺬه‬ ‫ﺗﺸﻤﻞ‬ ‫ﺣﺴﺎﺑﺔ‬ ‫ﻟﺔ‬. ‫اﻟﺠﯿﺐ‬ ‫داﻟﺔ‬Sin ‫ﺑﻞ‬ ‫واﺳﺘﺨﺪاﻣﮭﺎ‬ ‫ﻣﺎ‬ ‫زاﯾﺔ‬ ‫ﺟﯿﺐ‬ ‫ﻋﻠﻰ‬ ‫اﻟﺤﺼﻮل‬ ‫ﻓﻲ‬ ‫ﺗﺴﺘﺨﺪم‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬ّ‫إن‬‫ﺟﻤﯿﻊ‬ ‫اﺳﺘﺨﺪام‬ ‫ﻧﻮﻋﺎ‬ ‫ﺳﮭﻞ‬ ‫اﻟﺤﺴﺎﺑﯿﺔ‬ ‫اﻟﺪوال‬‫ﻣﺎ‬،‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻨﺤﻮ‬ ‫ﻋﻠﻰ‬ ‫وﯾﻜﻮن‬: X = sin(angle ‫)اﻟﺰاوﯾﺔ‬ ‫اﻟﺘﻤﺎم‬ ‫ﺟﯿﺐ‬ ‫داﻟﺔ‬Cos ‫ﻓﻲ‬ ‫ﺗﺴﺘﺨﺪم‬ ‫ﻟﻜﻦ‬ ‫ﺳﺎﺑﻘﺘﮭﺎ‬ ‫ﻣﺜﻞ‬‫إ‬‫واﻻﺳﺘﺨﺪام‬ ‫اﻟﺰاوﯾﺔ‬ ‫ﺗﻤﺎم‬ ‫ﺟﯿﺐ‬ ‫ﯾﺠﺎد‬: X = Cos(angle) ‫اﻟﺰاوﯾﺔ‬ ‫ظﻞ‬ ‫داﻟﺔ‬Tan ‫أﻣﺎ‬‫ﺑ‬ ‫ﻓﺘﻘﻮم‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬‫ﺈ‬‫ﯾﻤﻜﻦ‬ ‫ﻛﻤﺎ‬ ‫اﻟﺰاوﯾﺔ‬ ‫ظﻞ‬ ‫ﯾﺠﺎد‬ً ‫أﯾﻀﺎ‬‫اﻟﺪاﻟﺘﯿﻦ‬ ‫ﺧﻼل‬ ‫ﻣﻦ‬ ‫ﺣﺴﺎﺑﮫ‬ ‫اﻟﻈﻞ‬ ‫اﻟﺮﯾﺎﺿﯿﺔ‬ ‫اﻟﻌﻼﻗﺔ‬ ‫ﺑﺎﺳﺘﺨﺪام‬ ‫اﻟﺴﺎﺑﻘﺘﯿﻦ‬=‫اﻟﺠﯿﺐ‬/‫اﻟﺘﻤﺎم‬ ‫ﺟﯿﺐ‬،‫ھﺬه‬ ‫اﺳﺘﺨﺪام‬ ‫وﯾﻜﻮن‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻨﺤﻮ‬ ‫ﻋﻠﻰ‬ ‫اﻟﺪاﻟﺔ‬: X = tan(angle) ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫داﻟﺔ‬Abs ‫ﺑ‬ ‫ﺗﻘﻮم‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬‫ﺈ‬‫ﻟ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﻋﻄﺎء‬‫ﻠ‬‫داﺧﻠﮭﺎ‬ ‫ﯾﻮﺟﺪ‬ ‫اﻟﺬي‬ ‫ﻌﺪد‬،‫داﺧﻠﮭﺎ‬ ‫ﻛﺎن‬ ‫ﻟﻮ‬ ‫ﻣﺜﻼ‬ ‫اﻟﻌﺪد‬–٢٥‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﻧﺎﺗﺞ‬ ‫ﺳﯿﻜﻮن‬٢٥،‫وھﻜﺬا‬‫أﻣﺎ‬‫اﻟﺪوال‬ ‫ﻛﺒﺎﻗﻲ‬ ‫ﻓﮭﻮ‬ ‫اﺳﺘﺨﺪاﻣﮭﺎ‬: X = abs(number) ‫اﻟﺘﺪوﯾﺮ‬ ‫داﻟﺔ‬‫إﻟﻰ‬‫أ‬‫ﻋﺸﺮﯾﺔ‬ ‫ﻣﻨﺰﻟﺔ‬ ‫ﻗﺮب‬Round
  • 20. ‫اﻟﺮﻗﻢ‬ ‫ﺑﺘﺪوﯾﺮ‬ ‫ﺳﺘﻘﻮم‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬‫إﻟﻰ‬‫أ‬‫ﻛﺎن‬ ‫ﻟﻮ‬ ‫ﻣﺜﻼ‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﺤﺪدھﺎ‬ ‫ﻋﺸﺮﯾﺔ‬ ‫ﻣﻨﺰﻟﺔ‬ ‫ﻗﺮب‬ ‫اﻟﺮﻗﻢ‬12.276‫و‬‫أ‬‫ﺗﺪوﯾﺮه‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫راد‬‫إﻟﻰ‬‫أ‬‫ﻧﺎﺗﺞ‬ ‫ﺳﯿﻜﻮن‬ ‫ﻋﺸﺮﯾﺘﯿﻦ‬ ‫ﻣﻨﺰﻟﺘﯿﻦ‬ ‫ﻗﺮب‬ ‫اﻟﺘﺪوﯾﺮ‬12.28.‫اﻟﻨﺤﻮ‬ ‫ﻋﻠﻰ‬ ‫ﻓﯿﻜﻮن‬ ‫اﻟﺪوال‬ ‫ﺑﺎﻗﻲ‬ ‫ﻋﻦ‬ ‫ﻗﻠﯿﻼ‬ ‫ﯾﺨﺘﻠﻒ‬ ‫اﻟﺪاﻟﺔ‬ ‫اﺳﺘﺨﺪام‬ ‫اﻟﺘﺎﻟﻲ‬: X = round( ‫ﺗﺪوﯾﺮه‬ ‫اﻟﻤﺮاد‬ ‫,اﻟﺮﻗﻢ‬ ‫اﻟﺘﺪوﯾ‬ ‫اﻟﻤﺮاد‬ ‫اﻟﻤﻨﺎزل‬ ‫ﻋﺪد‬‫ﺮ‬‫إ‬‫ﻟﯿﮭﺎ‬ ) ‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬ً ‫ﺟﺪا‬:‫اﻟﺴﺎﺑﻘﺔ‬ ‫اﻟﺪوال‬ ‫ﻓﻲ‬ ‫اﻟﺰواﯾﺎ‬ ‫ﻗﯿﺎس‬ ‫ﻓﻲ‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫اﻟﻨﻈﺎم‬ )tan,sin,cos(‫اﻟﺪاﺋﺮي‬ ‫اﻟﻨﻈﺎم‬ ‫ھﻮ‬Radian)(‫ﯾﺠﺐ‬ ‫وﻋﻠﯿﮫ‬‫أ‬‫ﺗﺴ‬ ‫ن‬‫ﺘ‬‫ﻗﯿﻢ‬ ‫ﺨﺪم‬Pi ‫اﻟﺰاوﯾﺔ‬ ‫ﻟﺘﺤﺪﯾﺪ‬،‫اﻟﺘﺤﻮﯾﻞ‬ ‫وﯾﻤﻜﻨﻚ‬‫إﻟﻰ‬‫اﻟﺘﺎﻟﯿﺔ‬ ‫اﻟﻌﻼﻗﺔ‬ ‫طﺮﯾﻖ‬ ‫ﻋﻦ‬ ‫اﻟﺴﺘﯿﻨﻲ‬ ‫اﻟﻨﻈﺎم‬: X= ang * pi / 180 ‫اﻟﻔﻜﺮة‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻤﺜﺎل‬ ‫ﯾﻮﺿﺢ‬ ‫ﺳﻮف‬ ‫ﻛﻤﺎ‬ ‫اﻟﻤﺜﺎل‬)٣( ‫ﺑ‬ ‫ﺗﻘﻮم‬ ‫ﺣﺎﺳﺒﺔ‬ ‫اﻻﻟﺔ‬ ‫ﺳﻨﺼﻨﻊ‬ ‫اﻟﻤﺜﺎل‬ ‫ھﺬا‬ ‫ﻓﻲ‬‫ﺈﯾﺠﺎد‬‫اﻟﺰاوﯾﺔ‬ ‫وظﻞ‬ ‫اﻟﺘﻤﺎم‬ ‫وﺟﯿﺐ‬ ‫اﻟﺠﯿﺐ‬ ‫ﻗﯿﻢ‬، ‫ﻛﻤﺎ‬‫ﻧ‬‫ﺑ‬ ‫ﻘﻮم‬‫ﺈﯾﺠﺎد‬‫ﻟﻸ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬‫ﺑﺎﻹ‬ ‫ﻋﺪاد‬‫ﺿﺎﻓﺔ‬‫إﻟﻰ‬‫ﻣﺎ‬ ‫ﻋﺪد‬ ‫ﺗﻘﺮﯾﺐ‬‫إﻟﻰ‬‫ﻋﺸﺮﯾﺔ‬ ‫ﻣﻨﺰﻟﺔ‬ ‫واﺣﺪة‬. ‫ﺑﺘﺸﻐﯿﻞ‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬ ‫ﻧﻘﻮم‬‫ﺑﺮﻧﺎﻣﺞ‬‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬٦‫و‬‫إﻧﺸﺎء‬‫ﻋﻠﯿﮫ‬ ‫ﺟﺪﯾﺪ‬ ‫ﻣﺸﺮوع‬. ‫اﻟﻨﻤﻮذ‬ ‫ﺷﻜﻞ‬ ‫ﻧﺠﻌﻞ‬‫ج‬)Form(‫ﻛﺎﻟﺘﺎﻟﻲ‬:
  • 21. ‫اﻟﺰاوﯾﺔ‬ ‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬ ‫اﻟﺬي‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻓﻲ‬ ‫ﻧﻘﻮم‬،‫واﻷﻋﺪاد‬‫وﻟﯿﻜﻦ‬: Dim Xnumber(0 to 4) ‫ﻧﻼﺣﻆ‬‫أ‬‫ﺗﺤﻤﻞ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻧﮫ‬٥‫ﻣﺘﻐﯿﺮ‬ ‫اﺳﺘﺨﺪام‬ ‫ﯾﻤﻜﻨﻨﺎ‬ ‫طﺒﻌﺎ‬ ‫ﻟﺘﺨﺰﯾﻦ‬ ‫وﺣﺪات‬ ‫ﻟﻜﻦ‬ ‫واﺣﺪ‬‫أ‬‫اﻷ‬ ‫ھﺬه‬ ‫ﻣﺜﻞ‬ ‫ﻓﻲ‬ ‫اﻟﺘﺮﺗﯿﺐ‬ ‫ﻓﻀﻞ‬‫ﻣﻮر‬‫ﻋﻤﻠﯿﺔ‬ ‫ﻟﻜﻞ‬ ‫واﺣﺪ‬ ‫ﻣﺘﻐﯿﺮ‬ ‫ﺑﺎﺳﺘﺨﺪام‬ ‫ﻣﻨﻔﺮدة‬‫ﻷﻧﮫ‬‫ﻻﺣﻘﺎ‬ ‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫وﺗﻄﻮﯾﺮ‬ ‫اﻟﺮﺟﻮع‬ ‫ﻓﻲ‬ ‫ﯾﺴﺎﻋﺪ‬ ‫ﺳﻮف‬،‫ﻛﻤﺎ‬‫أ‬‫ﻟﻤﺎ‬ ‫ﺗﻄﺒﯿﻖ‬ ‫ﻧﮫ‬ ‫اﻟﺴﺎﺑﻖ‬ ‫اﻟﺪرس‬ ‫ﻓﻲ‬ ‫ﺗﻌﻠﻤﻨﺎه‬. ‫وﺑﻌﺪ‬‫ذﻟﻚ‬‫ﯾﺠﺐ‬‫أ‬‫ﺑﺎي‬ ‫ﻗﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬ ‫اﻟﺬي‬ ‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﺑﺘﻌﺮﯾﻒ‬ ‫ﻧﻘﻮم‬ ‫ن‬)pi( Dim Pi as single ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﻧﻀﻊ‬Form_Load‫ﻗﯿ‬ ‫ﻟﺘﺤﺪﯾﺪ‬ ‫وذﻟﻚ‬‫ﺑﺎي‬ ‫ﻤﺔ‬ Pi = 22 / 7 ‫اﻟﺰر‬ ‫داﺧﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬sin)Command1( Xnumber(0) = Sin(Val(Text1.Text) * Pi / 180) MsgBox Xnumber(0) ‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬ ‫اﻟﺪوال‬ ‫ھﺬه‬ ‫داﺧﻞ‬)Sin,Cos,Tan,Abs,Round(‫ﯾﺠﺐ‬‫أ‬‫ﻋﺪد‬ ‫ﯾﻜﻮن‬ ‫ن‬،‫ﻟﺬﻟﻚ‬ ‫داﻟﺔ‬ ‫ﻧﺴﺘﺨﺪم‬Val‫ﻧﺼﯿﺔ‬ ‫ﺳﻠﺴﻠﺔ‬ ‫ﻣﻦ‬ ‫ﺑﺪاﺧﻠﮭﺎ‬ ‫ﻣﺎ‬ ‫ﻟﺘﺤﻮﯾﻞ‬‫إﻟﻰ‬‫أ‬‫ﻋﺪاد‬. ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﯾﺤﻤﻞ‬Xnumber(0)‫اﻟﺰاوﯾﺔ‬ ‫ﺟﯿﺐ‬ ‫ﻗﯿﻤﺔ‬،‫ﻻﺣﻆ‬‫أ‬‫ﻗﻤﻨﺎ‬ ‫ﻧﮫ‬ ‫اﻟﺪاﺋﺮي‬ ‫اﻟﻨﻈﺎم‬ ‫ﻣﻦ‬ ‫اﻟﺰاوﯾﺔ‬ ‫ﺑﺘﺤﻮﯾﻞ‬‫إﻟﻰ‬‫اﻟﻮاردة‬ ‫اﻟﻌﻼﻗﺔ‬ ‫طﺮﯾﻖ‬ ‫ﻋﻦ‬ ‫اﻟﺴﺘﯿﻨﻲ‬ ‫اﻟﻨﻈﺎم‬ ً ‫ﺳﺎﺑﻘﺎ‬،‫إ‬‫ذ‬‫أ‬‫ﻣﻔﮭﻮﻣ‬ ‫ﯾﻌﺘﺒﺮ‬ ‫اﻟﺴﺘﯿﻨﻲ‬ ‫اﻟﻨﻈﺎم‬ ‫ن‬ً ‫ﺎ‬‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﻟﺪى‬‫أ‬‫اﻟﺪاﺋﺮي‬ ‫ﻗﺮﯾﻨﮫ‬ ‫ﻣﻦ‬ ‫ﻛﺜﺮ‬. ‫اﻟﺴﻄﺮ‬‫اﻟﺜﺎﻧﻲ‬:‫إ‬‫ﻟﻠﺰاوﯾﺔ‬ ‫اﻟﺠﯿﺐ‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺤﻤﻞ‬ ‫ﻟﻠﻤﺴﺘﺨﺪم‬ ‫رﺳﺎﻟﺔ‬ ‫رﺳﺎل‬.
  • 22. ‫اﻟﻤﻼﺣﻈﺔ‬ ‫ﯾﻤﻜﻨﻚ‬ ‫ﻛﻤﺎ‬‫أ‬‫دﻗﯿﻘﺔ‬ ‫ﺗﻜﻮن‬ ‫اﻟﺰاوﯾﺔ‬ ‫ﺟﯿﺐ‬ ‫ﻗﯿﻢ‬ ‫ن‬ً ‫ﺟﺪا‬‫اﻟﺰاوﯾﺔ‬ ‫ﺗﻘﺮﯾﺐ‬ ‫ﯾﻤﻜﻨﻚ‬ ‫ﻟﻜﻦ‬ ‫اﻟﺪاﻟﺔ‬ ‫ﺑﺎﺳﺘﺨﺪام‬Round‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬ ‫ﯾﻜﻮن‬ ‫وﺳﻮف‬: Xnumber(0) = Round(Sin(Val(Text1.Text) * Pi / 180), 2) ‫ﻧﻼﺣﻆ‬‫أ‬‫اﻟﺘﻘ‬ ‫ﺗﻢ‬ ‫ﻧﮫ‬‫ﺮﯾﺐ‬‫إﻟﻰ‬‫أ‬‫ﻋﺸﺮﯾﺘﯿﻦ‬ ‫ﻣﻨﺰﻟﺘﯿﻦ‬ ‫ﻗﺮب‬. ‫اﻟﺘﻤﺎم‬ ‫ﺟﯿﺐ‬ ‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬)Cos( Xnumber(1) = Round(Cos(Val(Text1.Text) * Pi / 180), 2) MsgBox Xnumber(1) ‫ﻻﺣﻆ‬ ‫ﻟﻜﻦ‬ ‫ﺳﺎﺑﻘﮫ‬ ‫ﻣﺜﻞ‬ ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬‫أ‬‫اﻟﻤﺘﻐﯿﺮ‬ ‫ن‬xnumber(1). ‫ﻣﺮة‬ ‫اﻟﻌﻤﻠﯿﺔ‬ ‫ﺑﺘﻜﺮار‬ ‫ﻧﻘﻮم‬‫أ‬‫ﻓﻲ‬ ‫ﺧﺮى‬‫إﯾﺠﺎد‬‫اﻟﻈﻞ‬. Xnumber(2) = Round(Tan(Val(Text1.Text) * Pi / 180), 2) MsgBox Xnumber(2) ‫ﻧﻘﻮم‬ً ‫أﯾﻀﺎ‬‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬Abs‫ﻹ‬‫ﯾﺠﺎد‬‫ا‬‫اﻟﻤﺪﺧﻞ‬ ‫ﻟﻠﻌﺪد‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫ﻟﻘﯿﻤﺔ‬. Xnumber(3) = Abs(Val(InputBox("Number::", "Abs"))) MsgBox Xnumber(3) ً‫أوﻻ‬‫ﻧﻼﺣﻆ‬‫أ‬‫ﺳﺎﺑﻘ‬ ‫ﻋﻦ‬ ‫ﯾﺨﺘﻠﻒ‬ ‫اﻟﻜﻮد‬ ‫ھﺬا‬ ‫ن‬‫ﮫ‬‫إ‬‫ﺻﻨﺪوق‬ ‫ﻋﺮض‬ ‫ﯾﺘﻢ‬ ‫ھﻨﺎ‬ ‫ذ‬‫اﻹدﺧﺎل‬ InputBox‫وﺗﺘﻢ‬‫إ‬‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻟﮫ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﻋﺮض‬ ‫ﺛﻢ‬ ‫وﻣﻦ‬ ‫داﺧﻠﮫ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫دﺧﺎل‬ ‫ﻧﺼﯿﺔ‬ ‫رﺳﺎﻟﺔ‬. ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﻤﺘﻐﯿﺮ‬Xnumber(3)‫داﺧﻞ‬ ‫ﯾﻮﺟﺪ‬ ‫ﻟﻤﺎ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﯾﺤﻤﻞ‬ ‫ﺳﻮف‬ ‫أ‬‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫ﻗﻮاس‬abs‫وﻧﻼﺣﻆ‬ ،‫أ‬‫داﺧﻞ‬ ‫ن‬absّ‫ﺪ‬‫ﺑ‬ ‫ﻻ‬‫أ‬‫ن‬‫ﯾﻜﻮن‬‫ھﻨﺎك‬‫ﻟﺬﻟﻚ‬ ‫ﻋﺪد‬ ‫داﻟﺔ‬ ‫اﺳﺘﺨﺪﻣﻨﺎ‬Val‫ﻟﺘﺤﻮﯾ‬ ‫وھﻲ‬‫ﻞ‬‫اﻟﻨﺺ‬‫إﻟﻰ‬،‫ﻋﺪد‬‫أﻣﺎ‬‫داﻟﺔ‬InputBox‫ﻓﮭﻲ‬‫ﻹ‬‫ظﮭﺎر‬ ‫ﺻﻨﺪوق‬‫إ‬‫ﺑ‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﯾﻘﻮم‬ ‫ﻟﻠﻤﺴﺘﺨﺪم‬ ‫دﺧﺎل‬‫ﺈ‬‫اﻟﻤﺮاد‬ ‫اﻟﻌﺪد‬ ‫دﺧﺎل‬‫إﯾﺠﺎد‬‫ﻟﮫ‬ ‫اﻟﻤﻄﻠﻘﺔ‬ ‫اﻟﻘﯿﻤﺔ‬.
  • 23. ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫وھﻮ‬ ‫ﺑﺴﯿﻂ‬‫ﻹ‬‫اﻟﻤﺘﻐﯿﺮ‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺤﻤﻞ‬ ‫ﻟﻠﻤﺴﺘﺨﺪم‬ ‫رﺳﺎﻟﺔ‬ ‫ظﮭﺎر‬ Xnumber(3). ‫زر‬ ‫داﺧﻞ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻜﺘﺎﺑﺔ‬ ‫ﻧﻘﻮم‬Round Xnumber(4) = Round(Val(InputBox("Number::", "Round")),2) MsgBox Xnumber(4) ‫ﺳﺎﺑﻘﮫ‬ ‫ﯾﺸﺒﮫ‬ ‫اﻟﻜﻮد‬ ‫ھﺬا‬‫إ‬‫ﻻ‬‫أ‬‫اﻟﺘﻘﺮﯾﺐ‬ ‫داﻟﺔ‬ ‫اﺳﺘﺨﺪام‬ ‫ﺗﻢ‬ ‫ﻧﮫ‬‫إﻟﻰ‬‫ﻋﺸﺮﯾﺘﯿﻦ‬ ‫ﻣﻨﺰﻟﺘﯿﻦ‬ ‫اﻟﻨﮭﺎﺋﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬: ‫ﺗﺬﻛﺮ‬‫أ‬‫اﻟﻜﺘﺎب‬ ‫ﻣﻊ‬ ‫ﻣﺮاﻓﻖ‬ ‫اﻟﻤﺜﺎل‬ ‫ن‬. ‫اﻟﺪرس‬‫اﻟﺜﺎﻧﻲ‬:‫ﻣﺘﻨﻮﻋﺔ‬ ‫دوال‬)٢( ‫اﻟﺮﯾﺎﺿﯿﺔ‬ ‫اﻟﺪوال‬ ‫ﺑﺎﺳﺘﺨﺪام‬ ‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﯾﻜﺘﻔﻲ‬ ‫ﻟﻦ‬،‫و‬‫إ‬‫ﯾﺘﻌﺪاه‬ ‫ﻗﺪ‬ ‫ﻧﻤﺎ‬‫إﻟﻰ‬‫دوال‬ ‫اﺳﺘﺨﺪام‬ ‫أ‬‫وﻏﯿﺮھﺎ‬ ‫واﻟﺒﺤﺚ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻣﻘﺎرﻧﺔ‬ ‫دوال‬ ‫ﻣﺜﻞ‬ ‫ﺧﺮى‬،‫اﻟﺪرس‬ ‫ھﺬا‬ ‫ﻓﻲ‬ ‫ﺳﻨﺸﺮﺣﮫ‬ ‫ﻣﺎ‬ ‫وھﺬا‬. ‫ﺗﺤﻮﯾﻞ‬ ‫داﻟﺔ‬‫اﻷﻋﺪاد‬‫واﻷرﻗﺎم‬‫إﻟﻰ‬‫ﻧﺼﯿﺔ‬ ‫ﺳﻼﺳﻞ‬Str ‫ﻣﮭﻤﺔ‬ ‫داﻟﺔ‬ ‫ھﺬه‬ً ‫ﺟﺪا‬،‫ﺑﻌﺾ‬ ‫ﻓﻲ‬‫اﻷﺣﯿﺎن‬‫رﻗﻤﯿﺔ‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺤﻮﯾﻞ‬ ‫ﯾﺠﺐ‬‫إﻟﻰ‬‫ﻧﺼﯿﺔ‬ ‫ﻗﯿﻤﺔ‬ ‫ﻹﺟﺮاء‬‫ﻻ‬ ‫ﻋﻠﯿﮭﺎ‬ ‫ﻣﺨﺘﻔﻠﺔ‬ ‫ﻋﻤﻠﯿﺎت‬‫ﯾﺼﺢ‬‫إﺟﺮاء‬‫ﻋﻠﻰ‬ ‫اﻟﻌﻤﻠﯿﺎت‬ ‫ھﺬه‬‫اﻷﻋﺪاد‬.‫ﺳﻮف‬
  • 24. ‫ﻋﺎم‬ ‫ﺑﺸﻜﻞ‬ ‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﻓﻲ‬ ‫اﻟﺘﻘﺪم‬ ‫ﻋﻦ‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬ ‫ﻗﯿﻤﺔ‬ ‫ﺗﺘﻌﺮف‬.‫أﻣﺎ‬‫ﻓﯿﻜﻮن‬ ‫ﺷﻜﻠﮭﺎ‬ ‫ﻛﺎﻟﺘﺎﻟﻲ‬: A = str(number) ‫ﻧﺼﯿﺔ‬ ‫ﺳﻠﺴﺔ‬ ‫ﻣﻦ‬ ‫ﺟﺰءا‬ ‫ﺗﺄﺧﺬ‬ ‫داﻟﺔ‬Mid ‫أ‬ّ‫ﺒ‬‫ﺷ‬‫اﻟﻘﺺ‬ ‫ﺑﻌﻤﻠﯿﺔ‬ ‫اﻟﺪاﻟﺔ‬ ‫ھﺬه‬ ‫ﻋﻤﻞ‬ ‫ﮫ‬‫إ‬‫ﻋﻠﯿﻚ‬ ‫ﯾﺠﺐ‬ ‫ذ‬‫أ‬‫اﻟﻤﺮاد‬ ‫اﻟﺴﻠﺴﻠﺔ‬ ‫ﺑﺪء‬ ‫ﻣﻜﺎن‬ ‫ﺗﺤﺪد‬ ‫ن‬ ‫أ‬‫اﻟﺤﺮوف‬ ‫وﻋﺪد‬ ‫ﻗﯿﻤﺘﮭﺎ‬ ‫ﺧﺬ‬،‫ﯾ‬ ‫ﺳﻮف‬ ‫وﺑﻌﺪھﺎ‬‫ﺄ‬‫ﻣﺘﻐﯿﺮ‬ ‫ﺧﺬ‬‫آ‬‫اﻟﻘﯿﻤﺔ‬ ‫ﺧﺮ‬،‫ﺷﻜﻠﮭﺎ‬ ‫وﯾﻜﻮن‬ ‫ﻛﺎﻟﺘﺎﻟﻲ‬: A =mid(Text,start‫اﻟﺒﺪاﯾﺔ‬ ‫,ﻣﻮﻗﻊ‬Length )‫اﻟﻄﻮل‬ ‫ﻻﺣﻆ‬‫أ‬‫ﻣﺜ‬ ‫ﻋﻨﺪه‬ ‫ﻣﻦ‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫اﻟﻤﺮاد‬ ‫اﻟﺤﺮف‬ ‫رﻗﻢ‬ ‫ﯾﺸﻤﻞ‬ ‫اﻟﺒﺪاﯾﺔ‬ ‫ﻣﻮﻗﻊ‬ ‫ن‬‫ﻟﻮ‬ ‫ﻼ‬‫أ‬‫ردﻧﺎ‬‫أ‬‫ﻧﺎﺧﺬ‬ ‫ن‬ ‫اﻷ‬ ‫اﻟﺤﺮﻓﯿﻦ‬‫ﻛﻠﻤﺔ‬ ‫ﻣﻦ‬ ‫ﺧﯿﺮﯾﻦ‬Ahmed‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫اﻟﺸﻜﻞ‬ ‫ﺳﯿﻜﻮن‬: A = mid("ahmed",3,2) ‫داﻟﺔ‬‫إﯾﺠﺎد‬‫اﻟﻨﺼﯿﺔ‬ ‫اﻟﺴﻠﺴﻠﺔ‬ ‫ﻓﻲ‬ ‫اﻟﺤﺮوف‬ ‫ﻋﺪد‬Len ‫ﺑﯿﺎﻧﺎت‬ ‫ﻧﻘﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻌﻤﻞ‬ ‫ﺑﺮاﻣﺞ‬ ‫ﺑﺮﻣﺠﺔ‬ ‫ﻋﻨﺪ‬ ‫ﺧﺎﺻﺔ‬ ‫ﻛﺒﯿﺮة‬ ‫ﻓﺎﺋﺪة‬ ‫ﻟﮭﺎ‬ ‫وﺳﯿﻜﻮن‬ ‫ﺑﺴﯿﻄﺔ‬ ‫داﻟﺔ‬ ‫أو‬‫ﺗﺤﻮﯾﻠﮭﺎ‬،‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫وﺷﻜﻠﮭﺎ‬: A = len(string) ‫اﻟﻔﺮاﻏﺎت‬ ‫ﺣﺬف‬ ‫داﻟﺔ‬Trim ‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫ﯾﻜﻮن‬ ‫ﺷﻜﻠﮭﺎ‬: A = trim(string) ‫داﻟﺘ‬‫ﺎ‬‫اﻟﺤﺮوف‬ ‫ﺷﻜﻞ‬ ‫ﺗﺤﻮﯾﻞ‬Ucase & Lcase ‫داﻟﺘ‬،‫اﻟﻤﺒﺮﻣﺞ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﻣﻌﺮﻓﺘﮭﺎ‬ ‫ﯾﻔﺘﺮض‬ ‫ﺎن‬‫ﺣﯿﺚ‬: ‫اﻟﺪاﻟﺔ‬Ucase‫ا‬ ‫اﻟﺤﺮوف‬ ‫ﺗﺤﻮل‬‫ﻹ‬‫ﺻﻐﯿﺮة‬ ‫ﻣﻦ‬ ‫ﻧﺠﻠﯿﺰﯾﺔ‬‫إﻟﻰ‬‫ﻛﺒﯿﺮة‬،‫وﺷﻜﻠﮭﺎ‬:
  • 25. A = ucase(string) ‫اﻟﺪاﻟﺔ‬Lcase‫ا‬ ‫اﻟﺤﺮوف‬ ‫ﺗﺤﻮل‬‫ﻹ‬‫ﻛﺒﯿﺮة‬ ‫ﻣﻦ‬ ‫ﻧﺠﻠﯿﺰﯾﺔ‬‫إﻟﻰ‬‫ﺻﻐﯿﺮة‬،‫وﺷﻜﻠﮭﺎ‬: a = lcase(string) ‫اﻟﻨﺼﯿﺔ‬ ‫اﻟﺴﻼﺳﻞ‬ ‫ﺑﯿﻦ‬ ‫اﻟﻤﻘﺎرﻧﺔ‬ ‫داﻟﺔ‬StrComp ‫ﻣﮭﻤﺔ‬ ‫داﻟﺔ‬ً ‫ﺟﺪا‬‫اﻷ‬ ‫ﻣﺨﺘﻠﻒ‬ ‫ﻓﻲ‬ ‫ﺗﺴﺘﺨﺪم‬‫ﻣﻮر‬،،‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﻣﻘﺎرﻧﺔ‬ ‫ﻣﺜﻼ‬‫و‬‫اﻟﻤﺮور‬ ‫ﻛﻠﻤﺎت‬ ‫وﻏﯿﺮھﺎ‬ ‫اﻟﺒﯿﺎﻧﺎت‬ ‫ﺟﺪاول‬ ‫ﻓﻲ‬ ‫اﻟﻤﻘﺎرﻧﺔ‬،‫و‬‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫ﯾﻜﻮن‬ ‫ﺷﻜﻠﮭﺎ‬: A = strComp(string1,string2, [Comparison Type ]) ‫ﻻﺣﻆ‬‫أ‬‫اﻟﻨﺼﯿﺔ‬ ‫اﻟﺴﻠﺴﻠﺔ‬ ‫ﺑﯿﻦ‬ ‫ﺑﺎﻟﻤﻘﺎرﻧﺔ‬ ‫ﺗﻘﻮم‬ ‫ﻧﮭﺎ‬string1‫و‬string2‫أﻣﺎ‬‫اﻟﺨﯿﺎر‬ ‫ﻋﻠﻰ‬ ‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﻟﻐﺔ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﻣﺤﺪد‬ ‫وھﻮ‬ ‫اﻟﻤﻘﺎرﻧﺔ‬ ‫ﻧﻮع‬ ‫ﻓﮭﻮ‬ ‫اﻟﺜﺎﻟﺚ‬ binarycompare‫ﻣﺎ‬‫ﺑﺘﻌﺪﯾﻠﮫ‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﯾﻘﻮم‬ ‫ﻟﻢ‬،‫ﺧﻄﺎ‬ ‫ﯾﻮﺟﺪ‬ ‫وﻻ‬‫إ‬،‫ﺑﺘﻌﺪﯾﻠﮫ‬ ‫ﺗﻘﻢ‬ ‫ﻟﻢ‬ ‫ن‬ ‫ﻧﺘﻄﺮق‬ ‫ﻟﻦ‬‫إﻟﻰ‬‫أ‬‫اﻟﻤ‬ ‫ﻧﻮع‬‫ﻘﺎرﻧﺔ‬،‫ﻋﻦ‬ ‫اﻟﺤﺪﯾﺚ‬ ‫ﯾﻜﻔﯿﻨﺎ‬binarycompare‫ﻗﯿﺎم‬ ‫ﺑﻌﺪ‬ ‫ﺣﯿﺚ‬ ‫اﻟﻠﻐﺔ‬ ‫ﻣﺘﺮﺟﻢ‬)compiler(‫ﺑﯿﻦ‬ ‫ﺑﺎﻟﻤﻘﺎرﻧﺔ‬string1‫و‬string2‫ھﻨﺎﻟﻚ‬ ‫وﺟﺪ‬ ‫ﻟﻮ‬ ‫ﯾﻌﻄﻲ‬ ‫ﺳﻮف‬ ‫ﺑﯿﻨﮭﻤﺎ‬ ‫ﺗﻄﺎﺑﻖ‬A‫ﻗﯿﻤﺔ‬0‫ﯾﻌﻄﻲ‬ ‫ﺳﻮف‬ ‫ﺗﻄﺎﺑﻖ‬ ‫ھﻨﺎﻟﻚ‬ ‫ﯾﻜﻦ‬ ‫ﻟﻢ‬ ‫ﻟﻮ‬ ‫وﻟﻜﻦ‬ ‫ﻗﯿﻤﺔ‬ ‫اﻟﻤﺴﺘﺨﺪم‬1‫وھﻜﺬا‬. ‫ﻻﺣﻆ‬‫أ‬‫ﯾﻜﻮن‬ ‫ﻋﻠﯿﮭﺎ‬ ‫ﺷﺮط‬ ‫ﺗﻜﻮﯾﻦ‬ ‫ﯾﻤﻜﻨﻚ‬ ‫ﻧﮫ‬‫ﻛﺎﻟﺘﺎﻟﻲ‬: If a = 0 then action ….. ‫ﺗﻄﺎﺑﻖ‬ ‫ﺣﺪوث‬ ‫ﻋﻨﺪ‬ If a = 1 then action ….. ‫ﺗﻄﺎﺑﻖ‬ ‫اي‬ ‫وﺟﻮد‬ ‫ﻋﺪم‬ ‫ﻋﻨﺪ‬ ‫اﻟﻤﺜﺎل‬)٣( ‫ﻧﻘﻮم‬ ‫ﺳﻮف‬‫ﻓﻲ‬‫ﺑﺘﺸﻐﯿﻞ‬ ‫ﻧﺒﺪأ‬ ،‫ﺗﺠﺮﯾﺒﮭﺎ‬ ‫طﺮﯾﻖ‬ ‫ﻋﻦ‬ ‫اﻟﺪوال‬ ‫ﺑﻌﺾ‬ ‫ﺑﺘﻮﺿﯿﺢ‬ ‫اﻟﻤﺜﺎل‬ ‫ھﺬا‬ ‫ﺑﯿﺴﻚ‬ ‫اﻟﻔﯿﺠﻮال‬ ‫ﺑﺮﻧﺎﻣﺞ‬٦‫ﯾﻠﻲ‬ ‫ﻛﻤﺎ‬ ‫اﻟﻨﻤﻮذج‬ ‫ﺷﻜﻞ‬ ‫وﻧﺠﻌﻞ‬:
  • 26. ‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬len)Command1( lennumber = Len(Text1.Text) MsgBox lennumber ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﯾﻘﻮم‬lennumber‫ﺑ‬‫ﺄ‬‫ﻣﻦ‬ ‫اﻟﺤﺮوف‬ ‫ﻋﺪد‬ ‫ﺧﺬ‬text1‫ﺑﺎﺳﺘﻌﻤﺎل‬ ‫اﻟﺪاﻟﺔ‬len‫اﻟﻤﻼﺣﻈﺔ‬ ‫ﻣﻊ‬‫أ‬‫ﺣﺮﻓﺎ‬ ‫ﺗﺤﺴﺐ‬ ‫اﻟﻔﺮاﻏﺎت‬ ‫ن‬. ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫اﻟﺜﺎﺑﺖ‬ ‫طﺒﺎﻋﺔ‬lennumber‫ﻟﻠﻤﺴﺘﺨﺪم‬ ‫رﺳﺎﻟﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬. ‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬Mid l1 = Val(InputBox("StartPosition")) l2 = Val(InputBox("Length")) MidString = Mid(Text1.Text, l1, l2) MsgBox MidString ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﯾﺤﻤﻞ‬l1‫ﺑﺪاﯾﺔ‬ ‫ﻣﻮﻗﻊ‬ ‫ﺗﻤﺜﻞ‬ ‫اﻟﺘﻲ‬ ‫اﻟﻤﺴﺘﺨﺪم‬ ‫ﯾﺪﺧﻠﮭﺎ‬ ‫اﻟﺘﻲ‬ ‫اﻟﻘﯿﻤﺔ‬ ‫اﻻﻗﺘﻄﺎع‬. ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫اﻟﺜﺎﺑ‬ ‫ﻧﻔﺲ‬‫اﻻﻗﺘﻄﺎع‬ ‫طﻮل‬ ‫ﯾﻤﺜﻞ‬ ‫ﻟﻜﻨﮫ‬ ‫اﻟﺴﺎﺑﻖ‬ ‫ﺖ‬. ‫داﻟﺔ‬Val‫ﯾﻤﻜﻨﻚ‬‫إ‬‫ز‬‫ا‬‫ﻟﺘﮭﺎ‬‫أﻧﺎ‬ ‫ﻟﻜﻦ‬ ،‫أﻧﺼﺢ‬‫اﻟﺪاﻟﺔ‬ ‫ﺑﻮﺿﻊ‬،‫ﻷ‬‫ﻧﮫ‬‫ﻓﻲ‬ ‫اﻟﺘﻘﺪم‬ ‫ﻣﻊ‬ ‫ﺗﻮاﺟﮭﻚ‬ ‫ﻗﺪ‬ ‫ﻻ‬ ‫ﻣﺘﻐﯿﺮات‬ ‫اﻟﺒﺮﻣﺠﺔ‬‫ﻟﻠﺤﯿ‬ ‫داﺋﻤﺎ‬ ‫ﻓﻀﻌﮭﺎ‬ ‫ﻣﺜﻼ‬ ‫ﻧﺼﯿﺔ‬ ‫ﺑﺴﻠﺴﻠﺔ‬ ‫ﺳﻮى‬ ‫ﺗﻌﻮد‬‫ﻄﺔ‬. ‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﺴﻄﺮ‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﻓﻲ‬ ‫اﻻﻗﺘﻄﺎع‬ ‫ﻗﯿﻤﺔ‬ ‫ﯾﺨﺰن‬midstring.
  • 27. ‫اﻟﺮاﺑﻊ‬ ‫اﻟﺴﻄﺮ‬:‫اﻟﺜﺎﺑﺖ‬ ‫طﺒﺎﻋﺔ‬midstring. ‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬ucase utext = UCase(Text1.Text) MsgBox utext ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﯾﺤﻤﻞ‬utext‫اﻷ‬‫ﺗﺤﻮﯾﻠﮭﺎ‬ ‫ﺑﻌﺪ‬ ‫ﺣﺮف‬‫إﻟﻰ‬‫ﻓﻲ‬ ‫ﻛﺒﯿﺮة‬text1 ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫ﻗﯿﻤﺔ‬ ‫طﺒﺎﻋﺔ‬utext ‫زر‬ ‫ﻓﻲ‬ ‫اﻟﺘﺎﻟﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺑﻮﺿﻊ‬ ‫ﻧﻘﻮم‬strcomp a = StrComp(LCase(Text1.Text), "end") If a = 0 Then End ‫اﻟﻜﻮد‬ ‫ﺗﻔﺴﯿﺮ‬: ‫اﻟﺴﻄﺮ‬‫اﻷول‬:‫اﻟﺜﺎﺑﺖ‬ ‫ﯾﺤﻤﻞ‬a‫ﻗﯿﻤﺔ‬text1‫ﻗﯿﻤﺔ‬ ‫ﻣﻊ‬ ‫وﯾﻘﺎرﻧﮭﺎ‬"end"‫ﻻﺣﻆ‬‫أ‬‫ﻗﺪ‬ ‫ﻧﮫ‬ ‫ﺑﻮﺿﻊ‬ ‫ﻗﻤﻨﺎ‬text1‫داﻟﺔ‬ ‫ﻓﻲ‬Lcase‫اﻟﺤﺮوف‬ ‫ﻟﺘﺤﻮﯾﻞ‬ ‫وذﻟﻚ‬‫إﻟﻰ‬‫ﻣﻊ‬ ‫ﻟﺘﻄﺎﺑﻖ‬ ‫ﺻﻐﯿﺮة‬ end ‫اﻟﺜﺎﻧﻲ‬ ‫اﻟﺴﻄﺮ‬:‫إ‬‫اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﯾﻐﻠﻖ‬ ‫ﺳﻮف‬ ‫ﺻﺤﯿﺤﺔ‬ ‫اﻟﻤﻘﺎرﻧﺔ‬ ‫ﻧﺘﯿﺠﺔ‬ ‫ﻛﺎﻧﺖ‬ ‫ذا‬. ‫ﻛﺎﻟﺘﺎﻟﻲ‬ ‫ﯾﻜﻮن‬ ‫اﻟﻨﮭﺎﺋﻲ‬ ‫اﻟﻜﻮد‬ ‫ﺷﻜﻞ‬:
  • 29. ‫اﻟﻌﺎﺷﺮة‬ ‫اﻟﻮﺣﺪة‬ ‫اﻷ‬ ‫ﺑﺮﻣﺠﺔ‬‫ﻟﻌﺎب‬‫وﻣﺴﺘﻤﺮ‬ ‫داﺋﻢ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺗﺘﻘﺪم‬،‫ﯾﻨﻜﺮ‬ ‫وﻻ‬‫أ‬‫ﺣﺪ‬‫أ‬‫ﻧﮭﺎ‬‫أ‬‫ﺻﺒﺤﺖ‬‫ﻓﺮﻋ‬ً ‫ﺎ‬ ‫ﻣﮭﻤ‬ً ‫ﺎ‬‫اﻷ‬ ‫ﺑﺪأت‬ ‫ﻓﻘﺪ‬ ،‫اﻟﺒﺮﻣﺠﺔ‬ ‫ﻣﻦ‬ ‫ﺑﮫ‬ ‫ﯾﺴﺘﮭﺎن‬ ‫وﻻ‬ ‫ﺑﻞ‬‫ﻟﻌﺎب‬‫واﻟﺘﻄﺒﯿﻘﺎت‬ ‫ﺗﻐﺰو‬ ‫اﻟﻤﺨﺘﻠﻔﺔ‬ ‫اﻟﺮﺳﻮﻣﯿﺔ‬‫أ‬‫اﻟﺤﺎﺳﺐ‬ ‫ﺟﮭﺰة‬،‫وﺗﻌﺪﺗﮭﺎ‬‫إﻟﻰ‬‫اﻟﺬﻛﯿﺔ‬ ‫اﻟﮭﻮاﺗﻒ‬ ‫وﻏﯿﺮھﺎ‬. ‫اﻷ‬ ‫وﺑﺮﻣﺠﺔ‬ ‫ﺗﺼﻤﯿﻢ‬ ‫طﺮق‬ ‫ﺗﺨﺘﻠﻒ‬‫ﻟﻌﺎب‬‫ﺗﻄﻮر‬ ‫ﻣﻊ‬ ‫ﻣﺨﺘﻠﻔﺔ‬ ‫ﻣﺪاﺧﻞ‬ ‫ﺳﻠﻜﺖ‬ ‫ﻓﻘﺪ‬ ‫اﻟﻌﻠﻢ‬،‫أﻣﺎ‬‫اﻷ‬ ‫ﺑﺮﻣﺠﺔ‬ ‫ﺑﺘﻌﻠﻢ‬ ‫ﻧﺒﺪأ‬ ‫ﺳﻮف‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬه‬ ‫ﻓﻲ‬‫ﻟﻌﺎب‬‫ﻣﺤﺮك‬ ‫ﻋﻠﻰ‬‫أﻟﻌﺎب‬ )‫ﺑﺮﻣﺠﯿﺔ‬ ‫دوال‬ ‫ﻣﻜﺘﺒﺔ‬(Truevision3D‫ﻣﺤﺮك‬ ‫وھﻮ‬‫أ‬‫ﻣﺤﺮﻛ‬ ‫ﻋﺘﺒﺮه‬ً ‫ﺎ‬‫ﺟﯿﺪ‬ً ‫ا‬ ‫وﻗﻮﯾ‬،ً ‫ﺎ‬‫ﻣﺜﻞ‬ ‫وﻛﺜﯿﺮة‬ ‫ﻣﺨﺘﻠﻔﺔ‬ ‫ﻟﻐﺎت‬ ‫وﯾﺪﻋﻢ‬C#،C++،Delphi،visualbasic.net ‫واﻷھﻢ‬‫أ‬‫ﻟﻐﺔ‬ ‫ﯾﺪﻋﻢ‬ ‫ﻧﮫ‬visualbasic. ‫ﻣﻜﺘﺒﺔ‬ ‫ﻋﻠﻰ‬ ‫اﻟﻌﺮﺑﯿﺔ‬ ‫اﻟﺪروس‬Truevision3d‫ﻣﺎ‬ ‫ﻧﻮﻋﺎ‬ ‫ﻗﻠﯿﻠﺔ‬،‫دروس‬ ‫ﺗﻮﺟﺪ‬ ‫ﻟﻜﻦ‬ ‫ﺑﺎﻟﻠﻐﺎت‬ ‫اﻟﻤﻜﺘﺒﺔ‬ ‫ﻟﮭﺬه‬ ‫ﺟﯿﺪة‬،‫اﻷﺟﻨﺒﯿﺔ‬‫ﻛﻤﺎ‬‫أ‬‫ﻣﺘﻤﻜﻨ‬ ‫ﺗﺠﻌﻞ‬ ‫ﺳﻮف‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬا‬ ‫ن‬ً ‫ﺎ‬‫ﻣﻨﮭﺎ‬ ‫واﻷھﻢ‬‫ذﻟﻚ‬ ‫ﻣﻦ‬‫أﻧﮭ‬‫ﻓﻤﻦ‬ ‫ﺳﺎﺑﻘﺘﮭﺎ‬ ‫ﻋﻦ‬ ‫وﺗﺨﺘﻠﻒ‬ ‫ﻣﻤﺘﻌﺔ‬ ‫وﺣﺪة‬ ‫ﺎ‬‫أ‬‫ﻓﯿﮫ‬ ‫ﻧﺠﺢ‬ ‫اﻟﺸﺊ‬ ‫ﺣﺐ‬. ‫ﻣﻘﺴﻤﺔ‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬه‬‫إﻟﻰ‬‫ﺑ‬ ‫ﺗﻨﻘﻠﻚ‬ ‫ﺳﻮف‬ ‫دروس‬‫ﺈذ‬‫ﺗﻌ‬ ‫ﷲ‬ ‫ن‬‫ﺎﻟﻰ‬‫إﻟﻰ‬‫ﻟﺒﺮﻣﺠﺔ‬ ‫ﺟﯿﺪ‬ ‫ﻓﮭﻢ‬ ‫اﻷ‬‫ﻟﻌﺎب‬،‫و‬‫إﻧﺸﺎء‬‫أﻟﻌﺎب‬‫ﺗﻘﺮﯾﺒﺎ‬ ‫ﻛﺎﻣﻠﺔ‬ ‫اﻟﺒﻌﺪ‬ ‫ﺛﻼﺛﯿﺔ‬،‫ﻋﻦ‬ ‫اﻟﻮﺣﺪة‬ ‫ھﺬه‬ ‫ﻓﻲ‬ ‫ﻧﺘﺤﺪث‬ ‫ﺳﻮف‬ ‫اﻷ‬ ‫ﺑﺮﻣﺠﺔ‬‫ﻟﻌﺎب‬‫اﻟﺒﻌﺪ‬ ‫ﺛﻼﺛﯿﺔ‬3D‫ﻧﺘﻄﺮق‬ ‫وﻟﻦ‬‫إﻟﻰ‬2D‫اﻟﻌﻠﻢ‬ ‫ﻣﻊ‬‫أ‬‫ﻣﺤﺮك‬ ‫ن‬ TrueVision‫ﻋﺪد‬ ‫ﯾﻤﻠﻚ‬ً ‫ا‬‫ﻛﺒﯿﺮ‬ً ‫ا‬‫اﻟﺪوال‬ ‫ﻣﻦ‬)Functions(‫ﻣﺠﺎل‬ ‫ﻓﻲ‬2d. ‫ﷲ‬ ‫ﺑﺘﻮﻓﯿﻖ‬ ‫ﻧﺒﺪأ‬
  • 30. ‫اﻟﺪرس‬‫اﻷول‬:‫اﻷ‬ ‫ﺑﺮﻣﺠﺔ‬ ‫ﻋﻦ‬ ‫ﻧﺒﺬة‬‫ﻟﻌﺎب‬‫وﻣﺤﺮﻛﺎﺗﮭﺎ‬ ‫اﻟﻛﺛﯾرون‬‫ﯾﺑدأون‬‫ﺑﺑرﻣﺟﺔ‬‫اﻷ‬‫ﻟﻌﺎب‬‫ﺑﺎﺳﺗﻌﻣﺎل‬‫ﻣﻛﺗﺑﺗﻲ‬DirectX‫أو‬OpenGl‫ﻟﻛن‬ ‫أ‬‫ﻧﺎ‬‫أﻧﺻﺢ‬‫ﻣن‬‫ﯾرﯾد‬‫اﻟﺑد‬‫ء‬‫أ‬‫ن‬‫ﯾﺑدأ‬‫ﺑﻣﺣرك‬‫أﻟﻌﺎب‬‫ﻣﺷﮭور‬ّ‫ﻷن‬DirectX‫وﻗرﯾﻧﮫ‬ OpenGl‫ھﻣﺎ‬‫ﻓﻲ‬‫ﻏﺎﯾﺔ‬‫اﻟﺻﻌوﺑﺔ‬‫ﺧﺻﯾﺻﺎ‬‫ﻟﻠﻣﺑرﻣﺞ‬‫اﻟﻣﺑﺗد‬‫ئ‬.‫ﻣﺣرﻛﺎت‬ ‫ﺟﻣﯾﻊ‬ ‫اﻷ‬‫ﻟﻌﺎب‬‫ھﻲ‬‫ﺑﺎﻷﺳﺎس‬‫ﺑﺎﺳﺗﺧدام‬ ‫ﺑرﻣﺟﺗﮭﺎ‬ ‫ﺗم‬DirectX & OpenGl‫اﻷ‬ ‫ﻓﻣﻛﺗﺑﺔ‬‫ﻟﻌﺎب‬ ‫ﻣﺎھﻲ‬‫إﻻ‬‫آ‬‫اﻟﻠﻌﺑﺔ‬ ‫ﺻﻧﻊ‬ ‫اﻟﻣﺑرﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﺗﺳﮭل‬ ‫اﻟﺗﻲ‬ ‫اﻟدوال‬ ‫ﻻف‬‫أو‬‫اﻟرﺳوﻣﻲ‬ ‫اﻟﺗطﺑﯾق‬. ‫أ‬‫اﻷ‬ ‫وﺑرﻣﺟﺔ‬ ‫ﺻﻧﺎﻋﺔ‬ ‫ﺷرﻛﺎت‬ ‫ﻏﻠب‬‫ﻟﻌﺎب‬‫ﺧﺎص‬ ‫ﻣﺣرك‬ ‫ﺑﺻﻧﻊ‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬ ‫ﺗﻘوم‬‫ﺑ‬‫ﮭﺎ‬ ‫ﻟﺗطوﯾر‬‫أﻟﻌﺎﺑ‬‫ﮭﺎ‬،‫وﻣن‬‫أ‬‫اﻟﺷرﻛﺎت‬ ‫ھذه‬ ‫ﻣﺛﺎل‬RockStar‫اﻟﻣﺣرك‬ ‫ﺻﺎﺣﺑﺔ‬Rage. ‫اﻟﻣﺑرﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺿروري‬ ‫ﻟﯾس‬‫اﻟﺻﻔر‬ ‫ﻣن‬ ‫اﻟﺑداﯾﺔ‬،‫ﻟﮫ‬ ‫ﻣﺣرك‬ ‫وﺻﻧﻊ‬،‫ﺑل‬‫ﻋﻠﯾﮫ‬‫اﻟﻌﻣ‬‫ل‬ ‫ﺷرﻛﺎت‬ ‫ﺑﺑرﻣﺟﺗﮭﺎ‬ ‫ﻗﺎﻣت‬ ‫ﻣﺣرﻛﺎت‬ ‫ﻋﻠﻰ‬‫أ‬‫ﻛﻣﺎ‬ ‫ﺧرى‬‫أ‬‫ﻟن‬ ‫ﯾﻧﺗﺟﮫ‬ ‫ﺳوف‬ ‫اﻟذي‬ ‫اﻟﻣﺣرك‬ ‫ن‬ ‫اﻟﻣﺣرﻛﺎت‬ ‫ﺑﺎﻗﻲ‬ ‫ﺑﻛﻔﺎءة‬ ‫ﯾﻛون‬‫إ‬‫واﻟﻣﺎﻟﻲ‬ ‫اﻟﻔﻛري‬ ‫اﻟدﻋم‬ ‫ﯾﻣﻠك‬ ‫ﯾﻛن‬ ‫ﻟم‬ ‫ن‬. ‫ﻣﺣرﻛﺎت‬ ‫ﺗطوﯾر‬ ‫اﻟﻣﺗﻘدم‬ ‫اﻟﻣﺑرﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﯾﻣﻛن‬‫أﻟﻌﺎب‬‫ﻣوﺟودة‬ً ‫ﺳﺎﺑﻘﺎ‬‫و‬‫وﻣﻔﺗوﺣﺔ‬ ‫ﻣﺧﺗﻠﻔﺔ‬ ‫اﻟﻣﺻدر‬)OpenSource(‫ﯾرﯾد‬ ‫اﻟﺗﻲ‬ ‫اﻟدوال‬ ‫ووﺿﻊ‬. ‫ﻣﺣرﻛﺎت‬ ‫ھﻧﺎﻟك‬‫أﻟﻌﺎب‬‫اﻟﺗﺻﻣﯾم‬ ‫ﺗﺳﺗﺧدم‬ ‫ﻣﺧﺗﻠﻔﺔ‬+‫ﻣﺛل‬ ‫اﻟﻠﻌﺑﺔ‬ ‫ﺻﻧﺎﻋﺔ‬ ‫ﻓﻲ‬ ‫اﻟﺑرﻣﺟﺔ‬ unity‫و‬unreal‫ﻣﺣرﻛﺎت‬ ‫ﺗوﺟد‬ ‫ﻛﻣﺎ‬‫أﻟﻌﺎب‬‫أ‬‫ﻟﻠوﺻول‬ ‫اﻟﺑرﻣﺟﺔ‬ ‫ﺗﺳﺗﺧدم‬ ‫ﺧرى‬‫إﻟﻰ‬ ‫ﻣﺛل‬ ‫اﻟﻠﻌﺑﺔ‬Xna‫و‬OgreSdk. ‫أﻣﺎ‬‫ﻧﺳﺗﺧدﻣﮫ‬ ‫ﺳوف‬ ‫اﻟذي‬ ‫اﻟﻣﺣرك‬)TrueVision3d6.2(‫اﻟﺛﺎﻧﻲ‬ ‫اﻟﺻﻧف‬ ‫ﻣن‬ ‫ھو‬ ‫اﻻﺳﺗﻌﻣﺎل‬ ‫ﺳﻠس‬ ‫اﻟﺗﻌﻠم‬ ‫ﺳﮭل‬ ‫ﻣﺣرك‬ ‫وھو‬. ‫ﻣﺣرك‬ ‫ﯾﺣوي‬TrueVision‫ﻋدد‬ً‫ا‬‫ﻛﺑﯾر‬ً ‫ا‬‫ﻓﻲ‬ ‫اﻟﻣﺗﺧﺻﺻﺔ‬ ‫اﻟدوال‬ ‫ﻣن‬3d‫و‬ ‫اﻟﺗﺻﺎدم‬‫واﻹدﺧﺎل‬‫واﻟﺗ‬‫ﺄ‬‫ﺛﯾرات‬)Effects(‫واﻟﻣﺷﺎھد‬)Scenes(‫ﻟﻠﺑرﻣﺟﺔ‬ ‫ودوال‬ ‫اﻷ‬ ‫ﺻﻧﻊ‬ ‫ﻋﻠﯾﻧﺎ‬ ‫ﯾﺳﮭل‬ ‫ﺳوف‬ ‫ﻟذﻟك‬ ‫وﻏﯾرھﺎ‬ ‫اﻟﺑﻌد‬ ‫ﺛﻧﺎﺋﯾﺔ‬‫ﻟﻌﺎب‬. ‫ﻓﻲ‬ ‫اﻟﺗﻘدم‬ ‫ﺑﻌد‬‫ﯾﻣﻛﻧك‬ ‫اﻟﻣﺎدة‬ ‫ھذه‬‫إﻧﺷﺎء‬‫ﻣﺛل‬ ‫ﺧﺎرﺟﯾﺔ‬ ‫ﺑراﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫واﻟﺧراﺋط‬ ‫اﻟﻣﺟﺳﻣﺎت‬ ‫ﺑرﻧﺎﻣﺞ‬3dmax‫ﺗﺻدﯾرھﺎ‬ ‫ﺛم‬ ‫وﻣن‬‫إﻟﻰ‬TrueVision. ‫ﺗذﻛر‬:‫ﺟﻣﯾﻊ‬‫اﻷﻣﺛﻠﺔ‬‫واﻟﻣﺟﺳﻣﺎت‬)Models(‫واﻟﺧﺎﻣﺎت‬)Texture(‫اﻟﺗﻲ‬ ‫واﻟﻣﻠﻔﺎت‬ ‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓﻘﺔ‬ ‫ﺳﺗﻛون‬ ‫ﺗﺣﺗﺎﺟﮭﺎ‬ ‫ﺳوف‬‫إ‬‫ﷲ‬ ‫ﺷﺎء‬ ‫ن‬. ‫اﻟﺪرس‬‫اﻟﺜﺎﻧﻲ‬:‫إﻋﺪاد‬‫ﻣﺤﺮك‬TrueVision3D‫ﻟﻠﻌﻤﻞ‬
  • 31. ‫ﻣﺣرك‬ ‫ﺳﻧﺳﺗﻌﻣل‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬true vision 3d‫اﻹﺻدار‬6.2‫اﻟﻣﻛﺗﺑﺔ‬ ،‫ﻣﻠﻔﺎت‬ ‫ﻗﺑل‬ ‫ﻣﺳﺎﻋدة‬ ‫ﺑراﻣﺞ‬ ‫ﻣﺟﻠد‬ ‫ﻓﻲ‬ ‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓﻘﺔ‬‫أ‬‫ﻧﺷرح‬ ‫ن‬‫إﺿﺎﻓﺔ‬‫اﻟﻣﻛﺗﺑﺔ‬‫إﻟﻰ‬‫اﻟﻔﯾﺟوال‬ ‫ﻋدة‬ ‫ﻣﻼﺣظﺔ‬ ‫ﯾﺟب‬ ‫ﺑﯾﺳك‬‫أﻣور‬: ‫ﻟﮫ‬ ‫اﻟﻛﺎﻣﻠﺔ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﻟﯾﺳت‬ ‫اﻟﺟﮭﺎز‬ ‫ﻣﻊ‬ ‫اﻟﻣﻠﺣﻘﺔ‬ ‫اﻟﻣﻛﺗﺑﺔ‬،‫و‬‫ﺳوف‬ ‫اﻟﺗﻲ‬ ‫اﻟﻣﻠﻔﺎت‬ ‫إﻧﻣﺎ‬ ‫ﻧﺣﺗﺎﺟﮭﺎ‬‫اﻟﺗﻲ‬‫اﻟﻛﺎﻣﻠﺔ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﺗﺿﻣﻧﮭﺎ‬. ‫واﻷ‬ ‫اﻟﺑراﻣﺞ‬ ‫ﻣن‬ ‫ﻣﺟﻣوﻋﺔ‬ ‫ﺗﺣوي‬ ‫اﻟﻛﺎﻣﻠﺔ‬ ‫اﻟﻣﻛﺗﺑﺔ‬‫ﻣور‬‫ﻣن‬ ‫ﺗﺣﻣﯾﻠﮭﺎ‬ ‫ﯾﻣﻛﻧك‬ ‫اﻟﻣﺳﺎﻋدة‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻣوﻗﻊ‬: ‫اﻹ‬ ‫ﻋﻠﻰ‬ ‫واﻟﺗطﺑﯾق‬ ‫واﻟﻌﻣل‬ ‫ﺑﺎﻟﺷرح‬ ‫ﻧﻘوم‬ ‫ﺳوف‬ ‫ﻧﺣن‬‫ﺻدار‬٦.٢ ‫و‬ ‫وﺧﺎﻣﺎت‬ ‫ﻣﺟﺳﻣﺎت‬ ‫ﺗﺣﻣﯾل‬ ‫ﯾﻣﻛﻧك‬‫ﺗﺄﺛﯾر‬‫اﻟﻣوﻗﻊ‬ ‫ﻣن‬ ‫اﻟﯾﮭﺎ‬ ‫ﺗﺣﺗﺎج‬ ‫ﻗد‬ ‫ات‬‫أ‬‫دﻧﺎه‬: ‫ﺗذﻛر‬:‫أ‬‫اﻷ‬ ‫ﺟﻣﯾﻊ‬ ‫ن‬‫ﻣﺛﻠﺔ‬‫ﻣﺎ‬ ‫وﻛل‬ ‫واﻟﻣﺳﺎﻋدة‬ ‫اﻟﻣﺧﺗﻠﻔﺔ‬ ‫واﻟﺑراﻣﺞ‬ ‫واﻟﻣﺟﺳﻣﺎت‬ ‫واﻟﺧﺎﻣﺎت‬ ‫ﻣرﻓﻘ‬ ‫ﯾﻛون‬ ‫اﻟﻛﺗﺎب‬ ‫ھذا‬ ‫ﻓﻲ‬ ‫ﻟﮫ‬ ‫ﻧﺗطرق‬ ‫ﺳوف‬ً ‫ﺎ‬‫ﻣﻌﮫ‬. ‫اﻵن‬‫ﻹ‬‫ﺿﺎﻓﺔ‬‫اﻟﻣﺳﺎﻋدة‬ ‫اﻟﻣﻠﻔﺎت‬ ‫ﺑﻔﺗﺢ‬ ‫ﻗم‬ ‫ﺑك‬ ‫اﻟﺧﺎص‬ ‫اﻟﺟﮭﺎز‬ ‫ﻋﻠﻰ‬ ‫وﺗﻌرﯾﻔﮭﺎ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﻣﻠف‬ ‫واﺧﺗر‬TrueVision3D‫اﻻﻣﺗداد‬ ‫ذات‬ ‫اﻟﻣﻠﻔﺎت‬ ‫ﺑﻧﺳﺦ‬ ‫وﻗم‬DLL‫إﻟﻰ‬‫اﻻﻣﺗداد‬ ‫اﻟﺗﺎﻟﻲ‬c:windowssystem32 ‫ﻣﻠف‬ ‫ﺑﺗﺷﻐﯾل‬ ‫ﻗم‬ ‫ذﻟك‬ ‫وﺑﻌد‬setup.bat‫ﻣﺳﺟل‬ ‫ﻓﻲ‬ ‫ﺑﺗﻌرﯾﻔﮭﺎ‬ ‫ﯾﻘوم‬ ‫ﺳوف‬ ‫اﻟذي‬ ‫اﻟﻧظﺎم‬. ‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫ﻧوع‬ ‫ﻣن‬ ‫ﺑك‬ ‫اﻟﺧﺎص‬ ‫اﻟﺗﺷﻐﯾل‬ ‫ﻧظﺎم‬ ‫ﻛﺎن‬ ‫اذا‬windows 7‫اﻋﻠﻰ‬ ‫او‬ ‫ﻋﻠﻰ‬ ‫اﻻﯾﻣن‬ ‫اﻟﻔﺄرة‬ ‫ﺑزر‬ ‫ﺑﺎﻟﻧﻘر‬ ‫ﻗم‬‫ﻣﻠف‬setup.bat‫اﻟﺧﯾﺎر‬ ‫واﺧﺗر‬Run as administrator. ‫ﻣﺟﻠد‬ ‫ﻓﻲ‬ ‫اﻟﻣوﺟودة‬ ‫اﻟﻣﻠﻔﺎت‬ ‫وﺿﻊ‬ ‫ﯾﻔﺿل‬TrueVision3d‫اﻷ‬ ‫ﻣﻊ‬‫ﻟﻌﺎب‬‫ﺳوف‬ ‫اﻟﺗﻲ‬ ‫ﻟو‬ ‫ﻻﻧك‬ ‫وذﻟك‬ ‫ﺑﺑرﻣﺟﺗﮭﺎ‬ ‫ﺗﻘوم‬‫أ‬‫اﻷ‬ ‫ﻧﻘل‬ ‫ردت‬‫ﻟﻌﺎب‬‫إﻟﻰ‬‫أ‬‫ﺣﺎﺳوب‬ ‫ﺟﮭزة‬‫أﺧرى‬‫ﯾﺗﺳﻧﻰ‬ ‫اﻟﻣطﻠوب‬ ‫ﺑﺎﻟﺷﻛل‬ ‫اﻟﻌﻣل‬ ‫ﻟﮭﺎ‬.
  • 32. ‫ﻛﯾﻔﯾﺔ‬‫إﺿﺎﻓﺔ‬‫اﻟﻣﻛﺗﺑﺔ‬‫إﻟﻰ‬‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬: ١-‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬ ‫ﺑرﻧﺎﻣﺞ‬ ‫ﺑﺗﺷﻐﯾل‬ ‫ﻧﻘوم‬٢. ٢-‫ﻻﺋﺣﺔ‬ ‫ﺑﺎﺧﺗﯾﺎر‬ ‫ﻧﻘوم‬ ‫ذﻟك‬ ‫ﺑﻌد‬Projects‫ﻋﻠﻰ‬ ‫ﻧﻧﻘر‬ ‫ﺛم‬ ‫وﻣن‬References ٣-‫ﻋﻠﻰ‬ ‫ﻧﻧﻘر‬ ‫ﺛم‬ ‫وﻣن‬Browse‫ﻣﺟﻠد‬ ‫وﻧﻔﺗﺢ‬TrueVision3D‫اﻟﻣﻠف‬ ‫وﻧﺧﺗﺎر‬ Truevision3D.dll‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬: ٤-‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﺿﺎﻓﺔ‬‫اﻟﻣﻠﻔﯾن‬dx8vb.dll‫و‬tvmedia.dll‫ﻧﻔﺳﮭﺎ‬ ‫ﺑﺎﻟطرﯾﻘﺔ‬. ٥-‫ﻧﻘوم‬‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫ﺗﺣدﯾدھﺎ‬ ‫طرﯾق‬ ‫ﻋن‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﺑﺎﺧﺗﯾﺎر‬: ‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫ﻋﻧ‬ ‫اﻟﻌﻣﻠﯾﺔ‬ ‫ﺑﺗﻛرﯾر‬ ‫ﻧﻘوم‬‫د‬‫ﺟدﯾد‬ ‫ﻣﺷروع‬ ‫ﻋﻣل‬‫أ‬‫ي‬‫أﻧﮫ‬‫ﯾﺗوﺟب‬ ‫ﻋﻠﯾك‬‫إﺿﺎﻓﺔ‬‫ﺑﺎﻟﺿروري‬ ‫ﻟﯾس‬ ‫ﻟﻛن‬ ‫ﻣﺷروع‬ ‫ﻛل‬ ‫ﻓﻲ‬ ‫اﻟﻣﻠﻔﺎت‬‫أن‬‫ﺑﺗﻛرار‬ ‫ﺗﻘوم‬ ‫ﻣن‬ ‫اﻟﺧطوات‬٢-٤ّ‫ﻷن‬‫ﻓﻲ‬ ‫ﯾﺣﻔظﮭﺎ‬ ‫ﺳوف‬ ‫اﻟﻔﯾﺟوال‬refrences.
  • 33. ‫اﻟﺜﺎﻟﺚ‬ ‫اﻟﺪرس‬:‫رﺳﺎﻟﺔ‬ ‫ﺑﺮﻣﺠﺔ‬)HelloWorld( ‫اﻟوﺻول‬ ‫ﻟﯾس‬ ‫اﻟدرس‬ ‫ھذا‬ ‫ﻣن‬ ‫اﻟﻣﻐزى‬‫إﻟﻰ‬‫ﺟﻣﻠﺔ‬helloworld‫و‬ ‫ﻓﻘط‬‫إﻧﻣﺎ‬‫ﻣﻌرﻓﺔ‬ ‫و‬ ‫اﻟﺑرﻣﺟﺔ‬ ‫ﻛﯾﻔﯾﺔ‬‫إ‬‫اﻟﻣﺣرك‬ ‫ھذا‬ ‫ﻋداد‬.‫ﻓ‬ ‫ﻣﺑﺎﺷرة‬ ‫ﺑﺎﻟﻣﺛﺎل‬ ‫ﻧﺑدأ‬ ‫ﺳوف‬‫ﻔ‬‫ﯾﺗﺿﺢ‬ ‫اﻟﻣﺛﺎل‬ ‫ﻲ‬ ‫اﻟﻣﻘﺎل‬. ‫اﻟﻤﺜﺎل‬)١( ‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬ ‫ﺑرﻧﺎﻣﺞ‬ ‫ﺑﺗﺷﻐﯾل‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬ ‫ﻧﻘوم‬ ‫دﻋﻧﺎ‬٦‫و‬‫إﺿﺎﻓﺔ‬‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﻣﻠﻔﺎت‬ )sdk(‫ﻛﻣﺎ‬‫اﻟﺳﺎﺑق‬ ‫اﻟدرس‬ ‫ﻓﻲ‬ ‫ﺗﻌﻠﻣﻧﺎ‬. ‫ﻓﻲ‬ ‫ﺑﺎﻟﻣﻛﺗﺑﺔ‬ ‫اﻟﺧﺎﺻﺔ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﺑﺗﻌرﯾف‬ ‫ﻧﻘوم‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬General‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬: Public V8 As TVEngine Public Scene As TVScene Public Inp As TVInputEngine ‫اﻟﻣﺗﻐﯾرات‬ ‫ﺑﺷرح‬ ‫ﻧﺑدأ‬: V8 as tvengine:‫ﺑ‬ ‫ﯾﻘوم‬ ‫اﻟذي‬ ‫ﻓﮭو‬ ‫اﻟﻣﺣرك‬ ‫ھذا‬ ‫ﻓﻲ‬ ‫اﻻﺳﺎﺳﻲ‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ھذا‬‫ﺈﻧﺷﺎء‬ ‫اﻟﺧ‬ ‫ﻣن‬ ‫اﻟﻌدﯾد‬ ‫وﯾﺣوي‬ ‫اﻻﻓﺗراﺿﻲ‬ ‫اﻟﻌﺎﻟم‬ ‫وﺗﻛوﯾن‬ ‫اﻟﺷﺎﺷﺔ‬‫ﺑ‬‫رات‬‫اﻟﺗﻲ‬‫ﻧﺗﻧﺎوﻟﮭﺎ‬ ‫ﺳوف‬ ‫اﻟﻣﺎدة‬ ‫ﻓﻲ‬ ‫اﻟﺗﻘدم‬ ‫ﻣﻊ‬. Scene as tvscene:‫اﻟﺷﺎﺷﺔ‬ ‫ﻋﻠﻰ‬ ‫واﻟﻌرض‬ ‫ﺑﺎﻟﻣﺷﺎھد‬ ‫اﻟﺧﺎص‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ھذا‬ ‫ﻋﻠﯾﮭﺎ‬ ‫اﻟﻛﺎﺋﻧﺎت‬ ‫وﻋرض‬. Inp as tvinputengine:‫اﻹ‬ ‫ﻣﺗﻐﯾر‬ ‫ھو‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ھذا‬‫اﻷ‬ ‫ﺑﺗﻧﻔﯾذ‬ ‫اﻟﺧﺎص‬ ‫دﺧﺎل‬‫واﻣر‬ ‫ﻣﺎ‬ ‫زر‬ ‫ﻋﻠﻰ‬ ‫اﻟﺿﻐط‬ ‫ﻋﻧد‬. ‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫ﺗذﻛر‬‫أﻧﮫ‬‫ﺗﻐﯾر‬ ‫ﯾﻣﻛﻧك‬‫أ‬‫ھواك‬ ‫ﻋﻠﻰ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﺳﻣﺎء‬.
  • 34. ‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫ﺳ‬‫ﺷرح‬ ‫ﯾﺗم‬‫اﻹدﺧﺎل‬‫اﻟدروس‬ ‫ﻣﻊ‬‫ﻷن‬‫اﻹدﺧﺎل‬‫ﺑ‬‫ﻣﺣرك‬truevision ‫ﺳﮭل‬‫ﺑ‬‫ﻌﻛس‬OpenGl‫و‬DirectX‫اﻟﻠذ‬‫ﯾ‬‫ﺑﮭﻣﺎ‬ ‫ﺧﺎص‬ ‫ﻟدرس‬ ‫ﯾﺣﺗﺎﺟﺎن‬ ‫ن‬. ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬Load_Form Set V8 = New TVEngine Set Scene = New TVScene Set Inp = New TVInputEngine V8.Init3DWindowedMode Me.hWnd Scene.SetSceneBackGround 0, 0, 0 Me.Show Do DoEvents If Inp.IsKeyPressed(TV_KEY_ESCAPE) = True Then End V8.Clear Scene.DrawText "HelloWorld", 0, 20 Scene.RenderAllMeshes V8.RenderToScreen
  • 35. Loop ‫اﻟﻛود‬ ‫ﺗﻔﺳﯾر‬: ‫اﻟﺳطر‬‫اﻷول‬+‫اﻟﺛﺎﻧﻲ‬+‫اﻟﺛﺎﻟث‬:‫ﺑﻣﺎ‬‫أ‬‫ﻛﺎﺋﻧﯾﺔ‬ ‫ھﻲ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ھذه‬ ‫ﺟﻣﯾﻊ‬ ‫ن‬،‫ﻓﯾﺟب‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﺗﻌرﯾف‬ ‫ﻋﻠﯾﻧﺎ‬. ‫اﻟﺳطراﻟراﺑﻊ‬:‫اﻟﺳواﻗﺔ‬ ‫ﯾﺣدد‬ ‫اﻟﻛود‬ ‫ھذا‬)‫أ‬‫اﻟﻌرض‬ ‫ﻣﻛﺎن‬ ‫ﯾﺣدد‬ ‫ي‬(‫ﻟﯾﻛون‬ ‫اﺧﺗرﻧﺎ‬ ‫وھﻧﺎ‬ ‫اﻟﻧﻣوذج‬)form(‫ﻟﻠﻌرض‬ ‫ﻣﻛﺎﻧﺎ‬. ‫ﻣﮭﻣﺔ‬ ‫ﻣﻼﺣظﺔ‬:‫إ‬‫ذا‬‫أ‬‫ردت‬‫أ‬‫ﻛﺎﻣﻠﺔ‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﺗﺟﻌل‬ ‫ن‬)FullScreen(‫ﺷﻛل‬ ‫ﯾﻛون‬ ‫ﺳوف‬ ‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬: V8.Init3DFullscreen 1024, 768, 32 ‫ھذه‬‫اﻷرﻗﺎم‬‫ھﻲ‬‫أ‬‫اﻟﺷﺎﺷﺔ‬ ‫ﺑﻌﺎد‬‫ﻓ‬َ‫ﺗﻧس‬ ‫ﻼ‬‫ﺗﻐ‬‫ﯾ‬‫ﺣﺳب‬ ‫ﯾرھﺎ‬‫أ‬‫ﺑك‬ ‫اﻟﺧﺎﺻﺔ‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﺑﻌﺎد‬. ‫اﻟﺧﺎﻣس‬ ‫اﻟﺳطر‬:‫ﺑﻧظﺎم‬ ‫ﻟﻛن‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﺧﻠﻔﯾﺔ‬ ‫ﻟون‬ ‫ﺑﺗﺣدﯾد‬ ‫اﻟﻛود‬ ‫ھذا‬ ‫ﯾﻘوم‬‫أ‬‫ﻟوان‬RGB ‫اﻹ‬ ‫ﻓﻲ‬ ‫ﻋﻧﮫ‬ ‫ﺗﺣدﺛﻧﺎ‬ ‫اﻟذي‬‫ﺻدار‬‫اﻷول‬‫اﻟﻛﺗﺎب‬ ‫ھذا‬ ‫ﻣن‬. ‫اﻟﺳﺎدس‬ ‫اﻟﺳطر‬:‫ﻻﺣظ‬ ‫اﻟﻔورم‬ ‫ﻟﻌرض‬ ‫وھو‬‫أﻧﮫ‬‫اﻷ‬ ‫ھذا‬ ‫ﺗﺿﻊ‬ ‫ﻟم‬ ‫ﻟو‬‫ﻣر‬‫ﻋرض‬ ‫ﯾﺗم‬ ‫ﻟن‬ ‫وﻟذﻟك‬ ‫اﻟﻧﻣوذج‬‫ﻷﻧﻧﺎ‬‫ﻟﻠﻌرض‬ ‫ﻣﻛﺎﻧﺎ‬ ‫اﻟﻧﻣوذج‬ ‫ﺣددﻧﺎ‬‫أﻣﺎ‬ٍ‫داع‬ ‫ﯾوﺟد‬ ‫ﻓﻼ‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﺣددﻧﺎ‬ ‫ﻟو‬ ‫اﻷ‬ ‫ھذا‬ ‫ﻟﻛﺗﺎﺑﺔ‬‫ﻣر‬. ‫اﻟﺳﺎﺑﻊ‬ ‫اﻟﺳطر‬+‫اﻟﺛﺎﻣن‬:‫اﻟﺗﻛرار‬ ‫ﻟﻌﻣل‬ ‫ھو‬ ‫اﻟﺳﺎﺑﻊ‬ ‫اﻟﺳطر‬Do‫ھذا‬‫أھم‬‫أﻣر‬‫ﻛل‬ ‫ﻓﻲ‬ ‫ﻷ‬ ‫ﻣﺎﺳﺑق‬‫ﻧﮫ‬‫ﯾﺟب‬‫أن‬‫ﻣﺳ‬ ‫ﺗﻛرار‬ ‫داﺧل‬ ‫اﻟﻌﺎﻟم‬ ‫ﻓﻲ‬ ‫اﻟرﺳم‬ ‫ﻣﺗﻐﯾرات‬ ‫ﺗوﺿﻊ‬‫ﺗﻣ‬‫وذﻟك‬ ‫ر‬‫ﻷن‬ ‫ﺷﻛل‬ ‫ﻋﻠﻰ‬ ‫ﯾﻛون‬ ‫اﻟﻠﻌﺑﺔ‬ ‫ﻋرض‬Frame‫ﯾﺗم‬ ‫وھﻛذا‬ ‫ﺑﺎﺳﺗﻣرار‬ ‫ﻣﺳﺣﮫ‬ ‫ﯾﺗم‬ ‫ﻣﺗﻛرر‬ ‫اﻟﻌرض‬.‫أﻣﺎ‬‫ﻟو‬ ‫ﺿﯾر‬ ‫ﻓﻼ‬ ‫اﻟﺛﺎﻣن‬ ‫اﻟﺳطر‬‫أ‬‫ﻟﻛن‬ ‫زﻟﺗﮫ‬‫أ‬‫ﺣﺑذ‬‫أن‬‫ﻣوﺟود‬ ‫ﯾﻛون‬ً‫ا‬‫ﻛل‬ ‫ﻓﻲ‬ ‫ﻣﺷروع‬. ‫اﻟﺳطراﻟﺗﺎﺳﻊ‬:‫ﺑ‬ ‫ﺗﻘوم‬ ‫اﻟداﻟﺔ‬ ‫ھذه‬‫ﻣﺳ‬‫ﻣﮭﻣ‬ ‫وھﻲ‬ ‫اﻟﺷﺎﺷﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻣوﺟود‬ ‫ھو‬ ‫ﻣﺎ‬ ‫ﺢ‬،‫ﺔ‬‫وﻟن‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘم‬ ‫وﻟم‬ ‫ﯾﺗﺣرك‬ ‫ﺻﻧدوق‬ ‫ﺑﻌﻣل‬ ‫ﻗﻣﻧﺎ‬ ‫ﻟو‬ ‫ﻣﺛﻼ‬ ‫اﻟداﻟﺔ‬ ‫ھذه‬ ‫دون‬ ‫ﻟﻌﺑﺔ‬ ‫اﻟﻠﻌﺑﺔ‬ ‫ﺗﻛون‬ ‫اﻷ‬ ‫ھذا‬‫ﻣر‬،‫ﺣرﻛﺗﮫ‬ ‫ﻓﺗرة‬ ‫طول‬ ‫ﻋﻠﻰ‬ ‫اﻟﺻﻧدوق‬ ‫ﺑرﺳم‬ ‫اﻟﻣﺣرك‬ ‫ﻓﺳﯾﻘوم‬‫ﻣﺣرك‬ ‫ﻓﻲ‬ ‫ﻟﻛن‬ TrueVision‫ا‬ ‫ﻋﻣﻠﯾﺔ‬ ‫ﺗﺗم‬ ‫ﻟن‬‫اﻷ‬ ‫ھذا‬ ‫ﻛﺗﺎﺑﺔ‬ ‫دون‬ ‫ﻟﻌرض‬‫ﻣر‬. ‫اﻟﻌﺎﺷر‬ ‫اﻟﺳطر‬:‫اﻟداﻟﺔ‬ ‫ھذه‬‫اﻟﺗﻲ‬‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﺗﻘوم‬ ‫ﺳوف‬HelloWorld‫اﻟﺷﺎﺷﺔ‬ ‫ﻋﻠﻰ‬ ‫اﻟﺧﯾﺎر‬ ‫ﺣﯾث‬‫اﻷول‬‫اﻹ‬ ‫ھو‬ ‫واﻟﺛﺎﻧﻲ‬ ‫اﻟﻛﻠﻣﺔ‬ ‫اﺳم‬‫ﺣداﺛ‬‫ﻟﮭﺎ‬ ‫اﻟﺳﯾﻧﻲ‬ ‫ﻲ‬‫أﻣﺎ‬‫ﻓﮭو‬ ‫اﻟﺛﺎﻟث‬ ‫اﻹ‬‫ﺣداﺛ‬‫اﻟﺻﺎدي‬ ‫ﻲ‬)‫ﺷﻛل‬ ‫ﻋﻠﻰ‬ ‫اﻟرﺳم‬ ‫ﯾﺗم‬‫إﺣداﺛ‬‫ﻟﻧﻘﺎط‬ ‫ﻲ‬X,Y.(
  • 36. ‫ﻋﺷر‬ ‫اﻟﺣﺎدي‬ ‫اﻟﺳطر‬:‫اﻟﺳطر‬ ‫ھذا‬‫ﻟﯾس‬ً ‫ﺿرورﯾﺎ‬‫ﺧﺎص‬ ‫ﻓﮭو‬ ‫اﻟﺣﺎﺿر‬ ‫اﻟوﻗت‬ ‫ﻓﻲ‬ ‫اﻟﻧوع‬ ‫ﻣن‬ ‫اﻟﻣﺟﺳﻣﺎت‬ ‫ﺑﻌرض‬Mesh‫اﻻﻣﺗدادات‬ ‫ذات‬).X/.3DS(‫ﻟﻛن‬‫أ‬‫ﻓﺿل‬‫أ‬‫ن‬ ‫ﻛﺗﺎﺑﺗﮫ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻌﺗﺎد‬. ‫ﻋﺷر‬ ‫اﻟﺛﺎﻧﻲ‬ ‫اﻟﺳطر‬:‫وھو‬‫أﻣر‬‫اﻟﻣﺣرك‬ ‫ﺳواﻗﺔ‬ ‫ﻓﻲ‬ ‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﻟﻌﻣل‬ ‫ﻣﮭم‬ ‫ﻻﺗﻧس‬،‫ﻓﮭو‬ ‫ﻛﺗﺎﺑﺗﮫ‬‫أﻣر‬‫دوﻧﮫ‬ ‫ﻣن‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﯾﻌﻣل‬ ‫وﻟن‬ ‫رﺋﯾﺳﻲ‬. ‫اﻷ‬ ‫اﻟﺳطر‬‫ﺧﯾر‬:‫ﻟﺗﻛرار‬ ‫وھو‬do + events + loop ‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻛود‬ ‫ﺷﻛل‬ ‫ﯾﻛون‬: ‫أﻣﺎ‬‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﻟﻌﻣل‬ ‫ﺑﻌد‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﺷﻛل‬:
  • 37. ‫اﻟﺪرس‬‫اﻟﺮاﺑﻊ‬::‫إ‬‫ﻋﺪاد‬ClassModule‫اﻟﻌﻤﻞ‬ ‫ﻟﺘﺴﮭﯿﻞ‬ ‫ﻣﮭم‬ ‫اﻟدرس‬ ‫ھذا‬ً ‫ﺟدا‬‫اﻷ‬ ‫وﺗطوﯾر‬ ‫ﺑرﻣﺟﺔ‬ ‫ﻓﻲ‬ ‫اﻟﺗطور‬ ‫ﻋﻧد‬ ‫ﺧﺻوﺻﺎ‬‫ﻟﻌﺎب‬،‫ﺳﺑﯾل‬ ‫ﻓﻌﻠﻰ‬ ‫ﻣن‬ ‫ﺑدل‬ ‫اﻟﻣﺛﺎل‬‫أن‬‫ﻣن‬ ‫ﻛﺑﯾر‬ ‫ﻋدد‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫اﻷﺳطر‬‫واﻷ‬‫واﻣر‬‫ﻹ‬‫ﻧﺷﺎء‬‫ﺳﯾﺎرة‬ ‫ﻣﺟﺳم‬ ‫ﻣﺛﻼ‬،‫ﺑﻌد‬ ‫اﻟﻣﺟﺳم‬ ‫ﺑﻌﻣل‬ ‫ﺑدورھﺎ‬ ‫ﺗﻘوم‬ ‫داﻟﺔ‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫إ‬‫اﻟﻛﺎﻓﯾﺔ‬ ‫اﻟﺑﯾﺎﻧﺎت‬ ‫دﺧﺎل‬،‫ھذا‬ ‫ﻓﻲ‬ ‫ﺑ‬ ‫ﺗﻘوم‬ ‫ﺑداﺧﻠﮫ‬ ‫داﻟﺔ‬ ‫ووﺿﻊ‬ ‫ﻛﺎﺋن‬ ‫ﺑﻌﻣل‬ ‫ﻧﻘوم‬ ‫ﺳوف‬ ‫اﻟدرس‬‫ﺈ‬‫ﻋداد‬truevision ‫ال‬ ‫اﺳﺗﻐﻼل‬ ‫وﯾﻣﻛﻧك‬ ‫ﺑﺳرﻋﺔ‬)ClassModule(‫ﺑراﻣﺞ‬ ‫ﻓﻲ‬‫أ‬‫ﺧرى‬. ‫اﻟﻤﺜﺎل‬)٢( ‫ﺑﺗﺷﻐﯾل‬ ‫ﻧﻘوم‬‫ﺑرﻧﺎﻣﺞ‬‫و‬ ‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬‫إﺿﺎﻓﺔ‬‫ﻓﻲ‬ ‫ﺗﻌﻠﻣﻧﺎ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ً ‫ﺳﺎﺑﻘﺎ‬. ‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﻧﺷﺎء‬ClassModule‫ﺗرﯾد‬ ‫ﻛﻣﺎ‬ ‫ﺑﺗﺳﻣﯾﺗﮫ‬ ‫وﻗم‬ ‫اﻟﺷﻛل‬ ‫ﻓﻲ‬ ‫ﻛﻣﺎ‬‫أﻧ‬‫ﺳوف‬ ‫ﺎ‬‫أ‬‫ﺳﻣﯾﮫ‬ World3D‫ﻣﺛﻼ‬:
  • 38. ‫ﺑ‬ ‫ﻧﻘوم‬ ‫ﺛم‬ ‫وﻣن‬‫ﺈﻧﺷﺎء‬Module‫ﻓﯾﮫ‬ ‫اﻟﻣﺣرك‬ ‫ﻣﺗﻐﯾرات‬ ‫ووﺿﻊ‬ ‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫ﺑﺗﻌرﯾف‬ ‫ﻧﻘوم‬‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫ﻣﺗﻐﯾرات‬ Public V8 As TVEngine Public Scene As TVScene Public Inp As TVInputEngine ‫ﺷرﺣﮭﺎ‬ ‫ﺗم‬ً ‫ﻣﺳﺑﻘﺎ‬.
  • 39. ‫اﻟﻣﺗﻐﯾرات‬ ‫ﻟﺗﻌرﯾف‬ ‫داﻟﺔ‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬ ‫ﻧﻘوم‬. Public Sub Set_Dims() Set V8 = New TVEngine Set Scene = New TVScene Set Inp = New TVInputEngine End Sub ‫ﺷرﺣﮫ‬ ‫ﺗم‬ً ‫ﻣﺳﺑﻘﺎ‬. ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﯾﺔ‬ ‫اﻟداﻟﺔ‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫وﻧﻘوم‬ClassModule Public Sub Create_Handl(FullScreen As Boolean, Handle As Long, Width As Long, Height As Long, Bpp As Long) If FullScreen = True Then V8.Init3DFullscreen Width, Height, Bpp Else V8.Init3DWindowedMode Handle End If End Sub ‫اﻟﺳطر‬‫اﻷول‬)١+٢:(‫وھو‬‫أﻣر‬‫إﻧﺷﺎء‬‫ﺑﺎراﻣﺗرات‬ ‫ﻋدت‬ ‫ﻋﻠﻰ‬ ‫وﯾﺣوي‬ ‫اﻟﺳواﻗﺔ‬ )parameters(‫أو‬‫اﻷ‬ ‫ﻣن‬ ‫ﻋدد‬ ‫ﻣﺎ‬‫ﻣور‬‫ﯾﺗوﺟب‬ ‫اﻟﺗﻲ‬‫إدﺧﺎﻟ‬‫اﻟداﻟﺔ‬ ‫ﻟﺗﻌﻣل‬ ‫ﮭﺎ‬،‫وھﻲ‬: Fullscreen as boolean:‫ﺧﯾﺎر‬ ‫وھﻲ‬،‫ﻣﻧطﻘﻲ‬‫أﻣﺎ‬true‫أو‬false‫ﻟﺗﺣدﯾد‬ ‫وھﻲ‬ ‫إذ‬‫ﻣﺎ‬ ‫ا‬‫ﻛﺎﻣﻠﺔ‬ ‫ﺷﺎﺷﺔ‬ ‫اﻟﻌرض‬ ‫ﻛﺎن‬‫أو‬‫ﻧﺎﻓذة‬.
  • 40. Handle as long:‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫ﻟﯾس‬‫إذ‬‫ﻗﯾﻣﺔ‬ ‫ﻛﺎﻧت‬ ‫ا‬fullscreen=true‫إذ‬‫أﻧﮫ‬ ‫اﻟﻌرض‬ ‫ﻧوع‬ ‫ﻟﺗﺣدﯾد‬ ‫ﯾﺧﺗص‬‫أﻣﺎ‬‫ﻧﻣوذج‬ ‫ﻓﻲ‬from‫أو‬‫ﺻﻧدوق‬ ‫ﻓﻲ‬picture‫ﻣﺛﻼ‬. width:‫اﻟﺷﺎﺷﺔ‬ ‫ﻋرض‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬.‫ﻧﺎﻓذة‬ ‫ﻋﻠﻰ‬ ‫اﻟﻌرض‬ ‫ﯾﻛون‬ ‫ﻋﻧدﻣﺎ‬ ‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫وﻟﯾس‬ Height:‫اﻟﺷﺎﺷﺔ‬ ‫طول‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬.‫اﻟﻧﺎﻓذة‬ ‫ﻋﻠﻰ‬ ‫اﻟﻌرض‬ ‫ﯾﻛون‬ ‫ﻋﻧدﻣﺎ‬ ‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫وﻟﯾس‬ ‫ﻋﻠﯾﻧﺎ‬ ‫ﯾﺟب‬ ‫ﻧﺎﻓذة‬ ‫ﻓﻲ‬ ‫اﻟﻌرض‬ ‫وﻛﺎن‬ ‫اﻟداﻟﺔ‬ ‫اﺳﺗﺧدام‬ ‫ﻋﻧد‬ ‫ﻻﺣظ‬ ‫ﻟﻛن‬‫إ‬‫وھﻣﯾﺔ‬ ‫ﻗﯾﻣﺔ‬ ‫ﻋطﺎء‬ ‫ﻻ‬ ‫اﻟﺧطﺄ‬ ‫ﻟﺗﻔﺎدي‬ ‫وذﻟك‬‫أﻛﺛر‬. Bpp:‫اﻷ‬ ‫ﺧﯾﺎرات‬‫ﻟوان‬‫وﻋرﺿﮭﺎ‬.‫ﻧﺎﻓذة‬ ‫ﻋﻠﻰ‬ ‫اﻟﻌرض‬ ‫ﯾﻛون‬ ‫ﻋﻧدﻣﺎ‬ ‫ﻋﻼﻗﺔ‬ ‫ﻟﮫ‬ ‫وﻟﯾس‬. ‫اﻟﺛﺎﻟث‬ ‫اﻟﺳطر‬:‫ﻓ‬ ‫اﻟﻌرض‬ ‫ﻧوع‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬‫ﺈذ‬‫ﻛﺎﻧت‬ ‫ا‬fullscreen = true‫ﺗﺣﻘق‬ ‫ﻓﻘد‬ ‫ﻛﺎﻣﻠﺔ‬ ‫ﺷﺎﺷﺔ‬ ‫ﻓﻲ‬ ‫اﻟﻌرض‬ ‫ﺷرط‬. ‫اﻟراﺑﻊ‬ ‫اﻟﺳطر‬:‫ﺷرﺣﮫ‬ ‫ﺗم‬ً‫ﻣﺳﺑﻘﺎ‬‫ﻻﺣظ‬ ‫ﻟﻛن‬‫أن‬‫اﻷ‬‫ﺑﻌﺎد‬‫ھﻲ‬‫اﻟﺗﻲ‬‫اﻟﺑﺎراﻣﺗرات‬ ‫ﻓﻲ‬ ‫ﻧدﺧﻠﮭﺎ‬. ‫اﻟﺧﺎﻣس‬ ‫اﻟﺳطر‬‫إﻟﻰ‬‫اﻷ‬‫ﺧﯾر‬:‫ﺷرﺣﮫ‬ ‫ﺗم‬ً‫ﻣﺳﺑﻘﺎ‬. ‫وﯾﻣﻛﻧك‬‫إﺿﺎﻓﺔ‬‫داﻟﺔ‬‫ﻹﻏﻼق‬‫ﻋﻠﻰ‬ ‫اﻟﺿﻐط‬ ‫ﻋﻧد‬ ‫اﻟﺑرﻧﺎﻣﺞ‬escape‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫وﯾﻛون‬ ‫ﻣﺛﻼ‬: Public Sub EndWhenPressEscape() If Inp.IsKeyPressed(TV_KEY_ESCAPE) = True Then End End Sub ‫ﺷرﺣﮫ‬ ‫ﺗم‬ً‫ﻣﺳﺑﻘﺎ‬. ‫اﻵن‬‫ل‬ ‫ﺧﺎص‬ ‫ﻣﺗﻐﯾر‬ ‫ﺑﺗﻌرﯾف‬ ‫ﻧﻘوم‬class module‫ﻓﻲ‬ ‫اﻟﻛود‬ ‫وﻧﺿﻊ‬ ‫ﺑﻌﻣﻠﮫ‬ ‫ﻗﻣﻧﺎ‬ ‫اﻟذي‬ module‫أو‬‫ﻓﻲ‬general‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻔورم‬ ‫ﻓﻲ‬: Public Vworld As New World3D ‫ﻻﺣظ‬‫أﻧﮫ‬)‫اﺳم‬Class module(as new ‫اﻵن‬‫اﻟﻔور‬ ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬ With Vworld .Set_Dims
  • 41. .Create_Handl True, Me.hWnd, 1024, 768, 32 End With Me.Show Do DoEvents Vworld.EndWhenPressEscape V8.Clear V8.RenderToScreen Loop ‫ﻧﻼﺣظ‬‫أﻧﮫ‬‫ﻋرﻓﻧﺎه‬ ‫اﻟذي‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ﺑﺎﺳﺗﺧدام‬ ‫ﻗﻣﻧﺎ‬+‫ﻟو‬ ‫ﻛﺎﻣﻠﺔ‬ ‫ﺷﺎﺷﺔ‬ ‫ﻓﻲ‬ ‫اﻟﻌرض‬ ‫اﻟﻘﯾﻣﺔ‬ ‫ﺟﻌﻠﻧﺎ‬false‫ﻧﺎﻓذة‬ ‫ﻓﻲ‬ ‫ﯾﺻﺑﺢ‬ ‫اﻟﻌرض‬. ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﺷﻛل‬
  • 42. ‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺎت‬:‫ﻓﻲ‬ ‫اﻟﻛﺎﺋﻧﯾﺔ‬ ‫اﻟﺑرﻣﺟﺔ‬ ‫اﺳﺗﺧدام‬ ‫ﯾﻣﻛﻧك‬‫إﻧﺷﺎء‬‫واﻻﺿﺎءة‬ ‫اﻟﻣﺟﺳﻣﺎت‬ ‫واﻷ‬‫ﺻوات‬‫واﻟ‬‫ﺗﺄﺛﯾر‬‫ﻋﻠﯾك‬ ‫اﻟﻌﻣل‬ ‫ﻟﺗﺳﮭﯾل‬ ‫ات‬.‫أﻣﺎ‬‫أﻧ‬‫ﻓﻠن‬ ‫اﻟﻘﺎدﻣﺔ‬ ‫اﻟدروس‬ ‫ﻓﻲ‬ ‫ﺎ‬ ‫أ‬‫ﺳﺗﺧدﻣﮭﺎ‬ً‫ﻛﺛﯾرا‬،‫ﻷ‬ ‫وذﻟك‬‫ﻧﮭ‬‫ﺎ‬‫أﻣور‬‫وذﻟك‬ ‫ﻋﻣﻠﮭﺎ‬ ‫اﻟﻘﺎرئ‬ ‫ﻋﻠﻰ‬ ‫ﯾﻔﺿل‬‫ﻷن‬‫ﻣﺑرﻣﺞ‬ ‫ﻛل‬ ‫اﻟﺗﻘدم‬ ‫ﻣﻊ‬ ‫ﻟﻛن‬ ‫اﻟﻘدﯾﻣﺔ‬ ‫اﻟطرﯾﻘﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻧﺳﯾر‬ ‫ﺳوف‬ ‫ﻟذﻟك‬ ‫ﻏﯾره‬ ‫ﻋن‬ ‫ﺗﻔﻛﯾره‬ ‫ﻓﻲ‬ ‫ﯾﺧﺗﻠف‬ ‫ﺑراﻣﺟك‬ ‫ﻣﺧﺗﻠف‬ ‫ﻓﻲ‬ ‫اﻟﻛﺎﺋﻧﯾﺔ‬ ‫اﻟﺑرﻣﺟﺔ‬ ‫ﺗﺳﺧدم‬ ‫ﻧﻔﺳك‬ ‫ﺗﺟد‬ ‫ﺳوف‬ ‫واﻟﻣﻣﺎرﺳﺔ‬. **‫ﺗذﻛر‬‫أن‬‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓق‬ ‫اﻟﻣﺛﺎل‬
  • 43. ‫اﻟﺨﺎﻣﺲ‬ ‫اﻟﺪرس‬:‫إﺿﺎﻓﺔ‬‫ﻣﺠﺴﻤﺎت‬Mesh‫و‬‫إ‬‫وﺗﻌﺪﯾﻠﮭﺎ‬ ‫ﻛﺴﺎﺋﮭﺎ‬ ‫ﺑ‬ ‫اﻟدرس‬ ‫ھذا‬ ‫ﻓﻲ‬ ‫ﻧﻘوم‬ ‫ﺳوف‬‫ﺈﺿﺎﻓﺔ‬‫ﻧوع‬ ‫ﻣن‬ ‫ﻣﺟﺳﻣﺎت‬3DS‫و‬X‫ﺳوف‬ ‫ﺛم‬ ‫وﻣن‬ ‫ﻧﻘوم‬‫ﺑﺈﻛﺳﺎﺋﮭﺎ‬. ‫اﻟﻤﺜﺎل‬)٣( ‫ﺑﺗﺷﻐﯾ‬ ‫ﻧﻘوم‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬‫و‬ ‫ﺑﯾﺳك‬ ‫اﻟﻔﯾﺟوال‬ ‫ﺑرﻧﺎﻣﺞ‬ ‫ل‬‫إﺿﺎﻓﺔ‬‫ﯾﻣﻛﻧك‬ ‫ﻛﻣﺎ‬ ‫ﻋﻠﯾﮫ‬ ‫اﻟﻣﻛﺗﺑﺔ‬ ‫اﻟﺳﺎﺑق‬ ‫اﻟدرس‬ ‫ﻓﻲ‬ ‫ﺑﻌﻣﻠﮫ‬ ‫ﻗﻣﻧﺎ‬ ‫اﻟذي‬ ‫اﻟﻛﻼس‬ ‫اﺳﺗﺧدام‬. ‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﻧﺷﺎء‬Module‫ﯾﻠﻲ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﻟوﺿﻊ‬: Public V8 As TVEngine Public Scene As TVScene Public Inp As TVInputEngine Public Texture as TvTextureFactory Public Box As TVMesh Public Car As TVMesh ‫ﻧﻌرﻓﮭﺎ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﺟﻣﯾﻊ‬ً ‫ﺳﺎﺑﻘﺎ‬‫ﻣﺎ‬‫اﻷ‬ ‫اﻟﺛﻼث‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﻋدا‬‫ﺧﯾر‬‫ة‬. Texture as TvTextureFactory:‫ﻣﻊ‬ ‫ﺑﺎﻟﺗﻌﺎﻣل‬ ‫اﻟﺧﺎص‬ ‫اﻟﻣﺗﻐﯾر‬ ‫وھو‬ ‫اﻹ‬‫ﻛﺳﺎء‬‫ﻋﻠﯾﮭﺎ‬ ‫اﻟﻣﺧﺗﻠف‬ ‫واﻟﺗﻌدﯾل‬ ‫واﻟﺻور‬ ‫ات‬. As tvmesh:‫ﻧوع‬ ‫ﻣن‬ ‫اﻟﻣﺟﺳﻣﺎت‬ ‫ﻣﻊ‬ ‫ﺑﺎﻟﺗﻌﺎﻣل‬ ‫اﻟﻣﺧﺗص‬ ‫وھو‬3Ds‫و‬X. ‫ﺗﻌﻠﻣﻧﺎ‬ ‫ﻛﻣﺎ‬ ‫ﻟﻠﻌﻣل‬ ‫اﻟﻣﺣرك‬ ‫ﺑﺗﺟﮭﯾز‬ ‫ﻧﻘوم‬ً ‫ﺳﺎﺑﻘﺎ‬. ‫ﻗﺑل‬‫أن‬‫ﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫إﻧﺷﺎء‬‫ﻣن‬ ‫ﺑد‬ ‫ﻻ‬ ‫اﻟﻣﺟﺳم‬‫أن‬‫ﻧﻌرف‬‫ﺑﺄن‬‫اﻷ‬ ‫ﺛﻼﺛﻲ‬ ‫اﻟﻣﺟﺳم‬‫ﺑﻌﺎد‬ ‫ﯾﻌﻧﻲ‬ ‫وھذا‬‫أﻧﮫ‬‫ﻣﺣﺎور‬ ‫ﺛﻼث‬ ‫ﻋﻠﻰ‬ ‫ﯾوﺟد‬)Axises(‫وھ‬‫ﻲ‬‫اﻟﻣﺣور‬X‫واﻟﻣﺣور‬y ‫واﻟﻣﺣور‬z‫اﻟﺛﻼث‬ ‫اﻟﻣﺣﺎور‬ ‫ﻣن‬ ‫ﻧﻘطﺔ‬ ‫ﺗﺣدﯾد‬ ‫ﯾﺟب‬ ‫ﻣوﻗﻌﮫ‬ ‫ﺗﺣدﯾد‬ ‫ﻋﻧد‬ ‫وﻟذﻟك‬)X,y,z(. ‫اﻧظر‬ ‫ﯾﺟري‬ ‫ﻣﺎ‬ ‫ﺗﻔﮭم‬ ‫وﺣﺗﻰ‬‫إﻟﻰ‬‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﺷﻛل‬:
  • 44. ‫ﻧرﯾد‬ ‫وﻋﻧدﻣﺎ‬‫أن‬‫ﯾﺟب‬ ‫اﻟﺻﻧدوق‬ ‫ﺣﺟم‬ ‫ﺑﺗﺣدﯾد‬ ‫ﻧﻘوم‬‫أن‬‫ﻧﺣدد‬ً ‫أﯾﺿﺎ‬‫ﻣﺣﺎور‬ ‫ﺛﻼث‬ ‫ﻋﻠﻰ‬ ‫وھﻲ‬)‫اﻟطول،اﻟﻌرض،اﻻرﺗﻔﺎع‬(‫اﻟﺛﻼث‬ ‫اﻟﻣﺣﺎور‬ ‫ﻋﻠﻰ‬ ‫ﯾﻛون‬ ‫اﻟدوران‬ ‫وﻛذﻟك‬‫أو‬ ‫ﻣﺣورﯾن‬‫أو‬‫ﻣﺣور‬ ‫ﻋﻠﻰ‬. ‫ﻹ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫ﻧﺷﺎء‬‫ﻓﻲ‬ ‫اﻟﺻﻧدوق‬Load_Form Set Box = New TVMesh Set Box = Scene.CreateMeshBuilder Box.CreateBox 10, 10, 10 Box.SetPosition 20, 0, 50 Box.SetRotation 45, 20, 80 Box.SetColor RGBA(0.3, 0.8, 0.8, 0.1) ‫اﻟﻛود‬ ‫ﺗﻔﺳﯾر‬: ‫اﻟﺳطر‬‫اﻷول‬+‫اﻟﺛﺎﻧﻲ‬:‫اﻟﻣﺗﻐﯾر‬ ‫ﻟﺗﻌرﯾف‬ ‫وھو‬Box. ‫اﻟﺳ‬‫اﻟﺛﺎﻟث‬ ‫طر‬:‫ﻹ‬ ‫وھو‬‫ﻧﺷﺎء‬‫اﻟداﻟﺔ‬ ‫ﺑﺎﺳﺗﺧدام‬ ‫ﺻﻧدوق‬CreateBox‫ﺗﺣدﯾد‬ ‫ﺛم‬ ‫وﻣن‬ ‫اﻟطول‬ ‫ﺧﻼل‬ ‫ﻣن‬ ‫اﻟﺻﻧدوق‬ ‫ھذا‬ ‫ﺣﺟم‬)‫اﻟﻌﻣق‬Depth(‫اﻟﻌرض‬ ‫و‬)Width( ‫واﻻرﺗﻔﺎع‬)Height.( ‫اﻟراﺑﻊ‬ ‫اﻟﺳطر‬:‫ﺑﯾﻧﺎ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﻛﻌب‬ ‫ﻣوﻗﻊ‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬ً ‫ﺳﺎﺑﻘﺎ‬.
  • 45. ‫اﻟﺧﺎﻣس‬ ‫اﻟﺳطر‬:‫ﻟدوران‬ ‫وھو‬‫أو‬‫ﻧﻼﺣظ‬ ‫اﻟﺟﺳم‬ ‫دوران‬ ‫اﺗﺟﺎه‬‫أﻧﮫ‬‫ﻣﺣور‬ ‫ﻋﻠﻰ‬ ‫ﯾدور‬X ‫ﺑﻣﻘدار‬٤٥‫ﻣﺣور‬ ‫ﻋن‬ ‫و‬ ‫درﺟﺔ‬Y‫ﺑﻣﻘدار‬٢٠‫وﺑﻣﻘدار‬ ‫درﺟﺔ‬٨٠‫ﻣﺣور‬ ‫ﻋن‬ ‫درﺟﺔ‬ z. ‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬:‫ﺗذﻛر‬‫أن‬‫اﻟداﺋري‬ ‫اﻟﻧظﺎم‬ ‫ھو‬ ‫ﻟﻠﻣﺣرك‬ ‫اﻟﺗﻠﻘﺎﺋﻲ‬ ‫اﻟﻧظﺎم‬)Radian(‫ﻟذك‬ ‫اﻟﺗﺣوﯾل‬ ‫ﺗﻧﺳﻰ‬ ‫ﻻ‬‫إﻟﻰ‬‫اﻟﺳﺗﯾﻧﻲ‬ ‫اﻟﻧظﺎم‬.‫ذﻟك‬ ‫ﺷرﺣﻧﺎ‬ً ‫ﺳﺎﺑﻘﺎ‬‫ﺑ‬ ‫وﯾﻛون‬‫ﺈﺿﺎﻓﺔ‬‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ V8.SetAngleSystem TV_ANGLE_DEGREE ‫اﻟﺳﺎدس‬ ‫اﻟﺳطر‬:‫ﻻﺣظ‬ ‫اﻟﻣﻛﻌب‬ ‫ﻟون‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬‫أن‬‫اﻟداﻟﺔ‬rgba‫ﺑﺎﻟﺳﺎﺑق‬ ‫ﺗﻌرﻓﻧﺎ‬ ‫ﻋﻠﻰ‬‫إ‬‫اﻷ‬ ‫ن‬‫ﻟوان‬‫ﻓﻲ‬TrueVision‫ب‬ ‫ﺗﺣدد‬RGB‫أﻣﺎ‬‫رﻣز‬a‫ھ‬ ‫ﻓﻲ‬‫ﯾﻌﻧﻲ‬ ‫اﻟداﻟﺔ‬ ‫ذه‬ ‫وھو‬ ‫اﻟﻣﺟﺳم‬ ‫ﺷﻔﺎﻓﯾﺔ‬‫اﻟرﻗم‬ ‫ﻣن‬0)‫ﻣرﺋﻲ‬ ‫ﻏﯾر‬ ‫ﺷﻔﺎف‬(‫إﻟﻰ‬١)‫ﻋﻠﻰ‬ ‫ﺷﻔﺎف‬ ‫ﻏﯾر‬ ‫اﻹطﻼق‬(‫اﻟﺷﻔﺎﻓﯾﺔ‬ ‫ﻛﺎﻧت‬ ‫وھﻧﺎ‬0.2. ‫اﻵن‬‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﺿﺎﻓﺔ‬‫ﻣﺟﺳم‬Car‫ﺳﯾﺎرة‬ ‫ﻣﺟﺳم‬ ‫ﯾﺣﻣل‬ ‫ﺳوف‬ ‫واﻟذي‬.‫اﻟﻣﺟﺳم‬ ‫اﺧذ‬ ‫ﯾﻣﻛﻧك‬ ‫واﻹ‬‫ﻛﺳﺎء‬‫ﻣﺟﻠد‬ ‫ﻣن‬Car‫اﻟﻣرﻓق‬ ‫اﻟﻣﺛﺎل‬ ‫ﻣﺟﻠد‬ ‫ﻓﻲ‬. ‫ﻓﻲ‬ ‫اﻟﻛود‬ ‫ھذا‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬Load_Formً ‫أﯾﺿﺎ‬‫ﺳو‬ ‫ﺳﺎﺑﻘﮫ‬ ‫ﻋن‬ ‫ﯾﺧﺗﻠف‬ ‫ﻻ‬ ‫وھو‬‫ى‬‫أﻧ‬‫ﻧﺎ‬ ‫اﻟﻣﺟﺳم‬ ‫ﺑﺎﺳﺗﯾراد‬ ‫ﻧﻘوم‬ ‫ﺳوف‬. Set Car = New TVMesh Set Car = Scene.CreateMeshBuilder Set Texture = New TVTextureFactory Texture.LoadTexture App.Path + "car1.jpg", "CarTexture"
  • 46. Car.Load3DSMesh App.Path + "carcar.3ds" Car.ScaleMesh 0.1, 0.1, 0.1 Car.SetPosition -20, 0, 50 Car.SetRotation 0, 45, 0 Car.SetTexture GetTex("cartexture") ‫اﻟﺳطر‬‫اﻷول‬+‫اﻟﺛﺎﻧﻲ‬+‫اﻟﺛﺎﻟث‬:‫اﻟﻣﺗﻐﯾرات‬ ‫ﻟﺗﻌرﯾف‬texture‫و‬car ‫اﻟراﺑﻊ‬ ‫اﻟﺳطر‬:‫ﻹ‬ ‫اﻟﺳطر‬ ‫ھذا‬‫ﺿﺎﻓﺔ‬‫اﻹ‬ ‫ﺻورة‬‫ﻛﺳﺎء‬1.jpg‫ﺣﯾث‬app.path‫ﯾﻣﺛل‬ ‫اﻟﻣﺷروع‬ ‫ﻣﻠف‬ ‫اﻣﺗداد‬)‫اﻟﺗﻧﻔﯾذي‬ ‫اﻟﻣﻠف‬ ‫اﻣﺗداد‬exe‫ﺗﺣوﯾﻠﮫ‬ ‫ﺑﻌد‬(‫و‬+ "car1.jpg"‫اﻣﺗ‬ ‫وھو‬‫اﻟﻣﺷروع‬ ‫ﻣﺟﻠد‬ ‫ﻓﻲ‬ ‫اﻟﺻورة‬ ‫داد‬.‫أﻣﺎ‬‫اﻷ‬ ‫اﻟﺑﺎراﻣﺗر‬‫ﺧﯾر‬‫ﻓﮭو‬ ‫اﻹ‬ ‫ﻻﺳم‬‫ﻛﺳﺎء‬‫ﯾﻧﺎﺳﺑك‬ ‫اﻟذي‬ ‫اﻻﺳم‬ ‫ﺿﻊ‬ ‫اﻟﺻورة‬ ‫ﻻﺳﺗدﻋﺎء‬ ‫ﻧﺳﺗﺧدﻣﮫ‬ ‫ﺳوف‬ ‫اﻟذي‬. ‫اﻟﺧﺎﻣس‬ ‫اﻟﺳطر‬:‫ﻹ‬ ‫وھو‬‫ﺿﺎﻓﺔ‬‫ﻧوع‬ ‫ﻣن‬ ‫وھو‬ ‫اﻟﻣﺟﺳم‬)3DS.( ‫اﻟﺳﺎدس‬ ‫اﻟﺳطر‬+‫اﻟﺳﺎﺑﻊ‬+‫اﻟﺛﺎﻣن‬:‫ﺷرﺣﮭم‬ ‫ﺗم‬ً ‫ﻣﺳﺑﻘﺎ‬‫وھ‬‫ﻲ‬‫ﻟﺿﺑط‬)‫واﻟﻣوﻗﻊ‬ ‫اﻟﺣﺟم‬ ‫اﻟدوران‬ ‫و‬.( ‫اﻟﺗﺎﺳﻊ‬ ‫اﻟﺳطر‬:‫اﻹ‬ ‫ﻟﺗﺣدﯾد‬ ‫وھو‬‫ﻛﺳﺎء‬‫داﻟﺔ‬ ‫ﺑﺎﺳﺗﺧدام‬gettex ‫داﻟﺔ‬GetTex:‫ﻣﻛﺗﺑﺔ‬ ‫دوال‬ ‫ﻣن‬ ‫داﻟﺔ‬ ‫ھﻲ‬TrueVision‫ﺧﺎﺻﺔ‬ ‫وھﻲ‬ ‫اﻟﻣﮭﻣﺔ‬ ‫اﻹ‬ ‫ﺑﺎﺳﺗدﻋﺎء‬‫ﻛﺳﺎء‬.‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﺳﺗﺧداﻣﮭﺎ‬ ‫ﺷﻛل‬ ‫ﯾﻛون‬. GetTex("‫ﺑﺎﻟﺻورة‬ ‫اﻟﺧﺎص‬ ‫اﻻﺳﺗدﻋﺎء‬ ‫)"اﺳم‬ ‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬ً ‫ﺟﺪا‬:‫ﻧوع‬ ‫ﻣن‬ ‫ﻣﺟﺳﻣﺎت‬ ‫اﺳﺗﺧدام‬ ‫ﻋﻧد‬Mesh‫ﺷﺎﺷﺔ‬ ‫ﻓﻲ‬ ‫ﺗظﮭر‬ ‫ﻟن‬ ‫اﻷ‬ ‫ﻧﺿﻊ‬ ‫ﺣﺗﻰ‬ ‫اﻟﻌرض‬‫ﻣر‬‫اﻟﺗﻛرار‬ ‫داﺧل‬ ‫اﻟﺗﺎﻟﻲ‬Do: Scene.RenderAllMeshes ‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﻛود‬ ‫ﺷﻛل‬ ‫ﯾﻛون‬:
  • 47. ‫ﻛﺎﻟﺗﺎﻟﻲ‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫وﻛود‬: ‫اﻟﻧﮭﺎﺋﻲ‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﺷﻛل‬ ‫وﯾﻛون‬:
  • 48. ‫ﻋﻠﻰ‬ ‫ﺑذﻟك‬ ‫اﻟﻣﺧﺗﺻﺔ‬ ‫اﻟﻣواﻗﻊ‬ ‫ﻣن‬ ‫ﻣﺧﺗﻠﻔﺔ‬ ‫ﻣﺟﺳﻣﺎت‬ ‫ﺗﺣﻣﯾل‬ ‫ﯾﻣﻛﻧك‬‫اﻹﻧﺗرﻧت‬‫ﻣﻊ‬ ‫إﻛﺳﺎء‬‫اﺗﮭﺎ‬. ‫ﺗﺬﻛﺮ‬:‫اﻷ‬ ‫ﺟﻣﯾﻊ‬‫ﻣﺛﻠﺔ‬‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓﻘﺔ‬.
  • 49. ‫اﻟﺴﺎدس‬ ‫اﻟﺪرس‬:‫إﺿﺎﻓﺔ‬‫ﻣﺠﺴﻤﺎت‬MDl‫وﺗﻌﺪﯾﻠﮭﺎ‬ ‫و‬ ‫ﻋﻠﯾﮫ‬ ‫واﻟﺗﻌدﯾل‬ ‫اﻟﺳﺎﺑق‬ ‫اﻟﻣﺷروع‬ ‫ﺑﻔﺗﺢ‬ ‫ﻧﻘوم‬ ‫ﺳوف‬ ‫اﻟدرس‬ ‫ھذا‬ ‫ﻓﻲ‬‫إﺿﺎﻓﺔ‬‫ﻣن‬ ‫ﻣﺟﺳم‬ ‫ﻧوع‬mdl. ‫ﻣن‬‫أ‬‫ﻣﺟﺳﻣﺎت‬ ‫ﻣﯾزات‬ ‫ھم‬mdl‫ھﻲ‬animation‫أ‬ ‫اي‬‫ﻗﺑل‬ ‫ﻣن‬ ‫ﻣﺧﺗﻠﻔﺔ‬ ‫ﺣرﻛﺎت‬ ‫داء‬ ‫ﻋﻠﯾﮫ‬ ‫ﻣﺳﺟﻠﺔ‬ ‫ﺗﻛون‬ ‫اﻟﻣﺟﺳم‬ً ‫ﻣﺳﺑﻘﺎ‬. ‫اﻟﻤﺜﺎل‬)٤( ‫ﻋﻠﯾﮫ‬ ‫ﺑﺎﻟﺗﻌدﯾل‬ ‫وﻧﻘوم‬ ‫اﻟﺳﺎﺑق‬ ‫ﺑﺎﻟدرس‬ ‫اﻟﺧﺎص‬ ‫اﻟﻣﺷروع‬ ‫ﺑﻔﺗﺢ‬ ‫ﻧﻘوم‬ ‫دﻋﻧﺎ‬ ‫اﻟﺑداﯾﺔ‬ ‫ﻓﻲ‬ ‫ﺑ‬‫ﺈﺿﺎﻓﺔ‬‫ﻧوع‬ ‫ﻣن‬ ‫اﺧر‬ ‫ﻣﺟﺳم‬mdl. ‫ﺑ‬ ‫ﻧﻘوم‬‫ﺈﺿﺎﻓﺔ‬‫ﻓﻲ‬ ‫اﻟﻣﺟﺳم‬ ‫ﺳﯾﺣﻣل‬ ‫اﻟذي‬ ‫اﻟﻣﺗﻐﯾر‬module Public Animal As TVActor2 ‫ﺧﺻﺎﺋص‬ ‫ﺗﻌدﯾل‬ ‫اﺟل‬ ‫ﻣن‬ ‫اﻟﻔورم‬ ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫ﺑﻛﺗﺎﺑﺔ‬ ‫ﻧﻘوم‬‫ﻣﺳﺎره‬ ‫وﺗﺣدﯾد‬ ‫اﻟﻣﺟﺳم‬. Set Animal = New TVActor2 Animal.Load App.Path + "modelsanimal.mdl" Animal.SetPosition 0, 0, 50 Animal.SetScale 0.1, 0.1, 0.1 ‫اﻟﻛود‬ ‫ﺗﻔﺳﯾر‬: ‫اﻟﺳطر‬‫اﻷول‬+‫اﻟﺛﺎﻧﻲ‬:‫اﻟﺳطر‬‫اﻷول‬‫ﺗﻌﻠﻣﻧﺎ‬ ‫ﻛﻣﺎ‬ ‫اﻟﻣﺗﻐﯾر‬ ‫ﻟﺗﻌرﯾف‬ ‫وھو‬ً ‫ﺳﺎﺑﻘﺎ‬،‫أﻣﺎ‬ ‫ﻓﮭو‬ ‫اﻟﺛﺎﻧﻲ‬ ‫اﻟﺳطر‬‫اﻟﻣﺟﺳم‬ ‫ﻟﺗﺣدﯾد‬)‫اﻟﻣرﻓق‬ ‫اﻟﻣﺛﺎل‬ ‫ﻣﻊ‬ ‫ﻣوﺟود‬ ‫اﻟﻣﺟﺳم‬ ‫ﻻﺣظ‬‫أو‬‫ﯾﻣﻛﻧك‬ ‫اﻹ‬ ‫ﻣن‬ ‫اﻟﻣزﯾد‬ ‫ﺗﺣﻣﯾل‬‫ﻧﺗرﻧت‬(. ‫اﻟﺛﺎﻟث‬ ‫اﻟﺳطر‬+‫اﻟراﺑﻊ‬:‫ﺷرﺣﮭﻣﺎ‬ ‫ﺗم‬ً ‫ﻣﺳﺑﻘﺎ‬. ‫اﻵن‬‫ﻋﻣل‬ ‫ﻋﻠﯾﻧﺎ‬ ‫ﯾﺟب‬render‫و‬ ‫ﻟﻠﻣﺟﺳم‬‫إ‬‫طرﯾق‬ ‫ﻋن‬ ‫ذﻟك‬ ‫وﯾﻛون‬ ‫ﯾظﮭر‬ ‫ﻟن‬ ‫ﻻ‬ ‫اﻟﺗﻛرار‬ ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫وﺿﻊ‬Doanimal.render
  • 50. ‫ﻣﮭﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬:‫ﻧوع‬ ‫ﻣن‬ ‫اﻟﻣﺗﻐﯾرات‬as tvmesh‫اﻟﻛود‬ ‫وﺿﻊ‬ ‫ﺗظﮭر‬ ‫ﻛﻲ‬ ‫ﯾﺟب‬ ‫اﻟﺗﻛرار‬ ‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬Do Scene.RenderAllMeshes ‫ﻧوع‬ ‫ﻣن‬ ‫اﻟﻣﺗﻐﯾرات‬ ‫ﻟﻛن‬tvactor+tvactor2‫ﻓﻲ‬ ‫اﻟﺗﺎﻟﻲ‬ ‫اﻟﻛود‬ ‫وﺿﻊ‬ ‫ﯾﺟب‬ ‫ﻟظﮭورھﺎ‬ ‫اﻟﺗﻛرار‬. Object.render ‫اﻟﺗﻧﻔﯾذ‬ ‫ﺑﻌد‬ ‫اﻟﺑرﻧﺎﻣﺞ‬ ‫ﺷﻛل‬ ‫ﺗﺬﻛﺮ‬:‫اﻷ‬ ‫ﺟﻣﯾﻊ‬‫ﻣﺛﻠﺔ‬‫اﻟﻛﺗﺎب‬ ‫ﻣﻊ‬ ‫ﻣرﻓﻘﺔ‬.