3.3 من 5 (12 صوت)

أساسيات البرمجة بلغة البرمجة الباسكال Pascal
الكاتب: نضال خضير العبادي

نوع الملف :pdf
حجم الملف :2.18 MB
أساسيات البرمجة بلغة البرمجة الباسكال Pascal

كيفية قراءة الكتاب:

1- اضغط على أيقونة التحميل و حمّل الملف على جهازك
2- ستحتاج لقراءة الملف إلى برنامج PDF

اختر أحد البرامج و قم بتنصيبه على جهازك
1- برنامج Foxit Reader - حجم الملف 6.67 MB (شرح فيديو)
2- برنامج Acrobat Reader - حجم الملف 37 MB

‫ﺗﻢ ﺗﺤﻤﻴﻞ اﻟﻤﻠﻒ ﻣﻦ ﻣﻮﻗﻊ‬ ‫اﻟﺒﻮﺻﻠﺔ اﻟﺘﻘﻨﻴﺔ‬ ‫‪www.boosla.com‬‬ ‫ﺻﺪﻗﺔ ﺟﺎرﻳﻪ ‪..‬‬ ‫اﻟﻰ روح أﺑﻲ ‪..‬‬ ‫ﻓﻲ ﻋﻠﻴﻴﻦ‪...‬‬ ‫اﻟﻤﻘﺪﻣﻪ‬ ‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ واﻟﺼﻼة واﻟ ﺴﻼم ﻋﻠ ﻰ ﺳ ﻴﺪﻧﺎ ﻣﺤﻤ ﺪ أﺷ ﺮف اﻟﺨﻠ ﻖ وﺧ ﺎﺗﻢ اﻟﻨﺒ ﻴﻦ‬ ‫وﻋﻠﻰ أل ﺑﻴﺘﻪ وﺻﺤﺒﻪ اﻟﻄﻴﺒﻴﻦ اﻟﻄﺎهﺮﻳﻦ‪.‬‬ ‫أﻣﺎ ﺑﻌﺪ ‪ ,‬ﻓﻬﺎ أﻧﺬا أﺿﻊ ﺑﻴﻦ ﻳﺪي اﻟﻘﺎريء اﻟﻌﺮﺑﻲ ﻧﺘﺎج ﺟﻬﺪ ﺑ ﻀﻌﺔ أﺷ ﻬﺮ ﻣ ﻦ اﻟﻌﻤ ﻞ اﻟﺠ ﺎد‬ ‫واﻟﺪؤوب ﻟﻴﻜﻮن هﺬا اﻟﻜﺘﺎب ﺷﺒﻪ آﺎﻣﻞ ) ﻷن اﻟﻜﻤﺎل ﷲ وﺣﺪﻩ ( ﻟﻤﺒ ﺎديء وأﺳﺎﺳ ﻴﺎت اﻟﺒﺮﻣﺠ ﻪ ﺑﻠﻐ ﺔ‬ ‫اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪.‬‬ ‫ﻟﻘ ﺪ ﻃ ﻮرت ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ ﺑﺎﺳ ﻜﺎل ﻣ ﻦ ﻗﺒ ﻞ ) ‪ ( Niklaus Wirth‬ﻓ ﻲ‬ ‫) ‪ ( Eidgenossische Technische Hochschule in Zurich‬وه ﻲ ﻣ ﺸﺘﻘﻪ ﻣ ﻦ ﻟﻐ ﺔ‬ ‫اﻟﺒﺮﻣﺠﻪ ) ‪ ( Algol 60‬وﻟﻜﻦ ﺑﺄﻣﻜﺎﻧﻴﺎت أﻓﻀﻞ ﻣ ﻊ ﺳ ﻬﻮﻟﻪ ﺑﺎﻷﺳ ﺘﺨﺪام ‪ ..‬وﺗ ﺴﺘﺨﺪم ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ‬ ‫ﺑﺎﺳﻜﺎل اﻷن ﺑﺸﻜﻞ واﺳﻊ آﻠﻐﺔ ﺑﺮﻣﺠﻪ ﻣﻔﻴﺪﻩ ﻣﻤﻜﻦ ﺗﻨﻔﻴﺬهﺎ ﺑﻜﻔﺎءﻩ وهﻲ أداة ﺗﻌﻠﻴﻤﻴﻪ ﻣﻤﺘﺎزﻩ ‪.‬‬ ‫ﻣﻦ اﻟﻤﻬﻢ أن أذآ ﺮ ﺑﻘﻠ ﺔ اﻟﻤ ﺼﺎدر اﻟﻌﺮﺑﻴ ﻪ ﻓ ﻲ اﻟﻤﺠ ﺎﻻت اﻟﻌﻠﻤﻴ ﻪ ﺑ ﺸﻜﻞ ﻋ ﺎم واﻟﺘ ﻲ ﺗ ﺸﻜﻞ‬ ‫ﻋﺎﺋﻘﺎ أﻣﺎم اﻟﻤﻌﺮﻓﻪ ﻓﻲ اﻟﻮﻃﻦ اﻟﻌﺮﺑﻲ ‪ ,‬ﻟﺬا آﺎن هﺬا اﻟﻜﺘﺎب أﺳﻬﺎﻣﻪ ﻣﺘﻮاﺿﻌﻪ ﻋﺴﻰ أن ﻳﻜﻮن ﻣﻔﻴﺪا‬ ‫ﻟﻠﺮاﻏﺒﻴﻦ ﺑﺘﻌﻠﻢ اﻟﺒﺮﻣﺠﻪ وﺧﺼﻮﺻﺎ اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ ,‬وﺗﻮﺧﻴﺖ اﻷﺟﺘﻬﺎد ﻓ ﻲ ﺗﺮﺟﻤ ﺔ‬ ‫اﻟﻤ ﺼﻄﻠﺤﺎت اﻷﺟﻨﺒﻴ ﻪ اﻟ ﻰ اﻟﻠﻐ ﻪ اﻟﻌﺮﺑﻴ ﻪ ﻧﻈ ﺮا ﻟﻌ ﺪم وﺟ ﻮد ﺗﺮﺟﻤ ﻪ ﻋﺮﺑﻴ ﻪ ﻣﻌﺘﻤ ﺪﻩ ﻟﻤ ﺼﻄﻠﺤﺎت‬ ‫اﻟﺒﺮﻣﺠﻪ ‪ ,‬وﺑﻤ ﺎ ﻳﺘﻨﺎﺳ ﺐ وﺳ ﻬﻮﻟﺔ ﻓﻬﻤﻬ ﺎ ﻣ ﻦ ﻗﺒ ﻞ اﻟﻘ ﺎريء وﻗﺮﺑﻬ ﺎ ﻣ ﻦ اﻟﻤﻔﻬ ﻮم اﻟﺤﻘﻴﻘ ﻲ ﻟﻬ ﺎ أﺧ ﺬا‬ ‫ﺑﻨﻈﺮ اﻷﻋﺘﺒﺎر ذآﺮ اﻟﻤﺼﻄﻠﺢ اﻷﺟﻨﺒﻲ ﻣ ﻊ ﻣ ﺎ ﻳﻘﺎﺑﻠ ﻪ ﻣ ﻦ ﺗﺮﺟﻤ ﻪ ﻋﻨ ﺪ أول ورود ﻟ ﻪ ﻓ ﻲ اﻟﻜﺘ ﺎب ‪..‬‬ ‫وﺑﺎﻟﺘﺄآﻴﺪ ﻓﺄن هﺬا اﻟﻌﻤﻞ ﻻﻳﻌﺪ ﻣﺮﺟﻌ ﺎ ﺑﺎﻟﻠﻐ ﻪ اﻟﻌﺮﺑﻴ ﻪ ﻟﻤ ﺼﻄﻠﺤﺎت اﻟﺒﺮﻣﺠ ﻪ ﻷن هﻨ ﺎك ﻣ ﻦ ﻳﻜ ﺮس‬ ‫ﺟﻬﺪﻩ ووﻗﺘﻪ ﻟﻠﻌﻤﻞ ﻓﻲ هﺬا اﻟﻤﺠﺎل ‪.‬‬ ‫ﻳﺒ ﺪأ اﻟﻜﺘ ﺎب ﺑ ﺸﺮح اﻟﻤﻔ ﺎهﻴﻢ اﻷﺳﺎﺳ ﻴﻪ اﻟﻌﺎﻣ ﻪ ﻟﻠﺒﺮﻣﺠ ﻪ واﻟﺘ ﻲ ﺗ ﺴﺘﺨﺪم ﻣ ﻊ ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ‬ ‫ﺑﺎﺳ ﻜﺎل ‪ ,‬وه ﻲ ﺑ ﺸﻜﻞ ﻋ ﺎم ﻣ ﺸﺘﺮآﻪ ﺑ ﻴﻦ اﻟﻜﺜﻴ ﺮ ﻣ ﻦ ﻟﻐ ﺎت اﻟﺒﺮﻣﺠ ﻪ ‪ ,‬أﻣ ﺎ اﻟﻔ ﺼﻞ اﻟﺜ ﺎﻧﻲ ﻓﻴﺘ ﻀﻤﻦ‬ ‫ﺷﺮﺣﺎ واﻓﻴﺎ ﻷواﻣﺮ اﻷدﺧﺎل واﻷﺧﺮاج وآﻴﻔﻴﺔ أﺳﺘﺨﺪاﻣﻬﺎ ﺑﺸﻜﻞ آﻔﻮء ‪ ,‬ﺑﻴﻨﻤﺎ آ ﺮس اﻟﻔ ﺼﻞ اﻟﺜﺎﻟ ﺚ‬ ‫ﻟﻌﺒﺎرات اﻟﻘﺮار واﻟﺘﻜﺮار واﻟﺘ ﻲ ﺗﻌ ﺪ أﺣ ﺪى اﻟﺮآ ﺎﺋﺰ اﻟﻤﻬﻤ ﻪ ﻓ ﻲ اﻟﺒﺮﻣﺠ ﻪ ‪ ,‬وﺗﻨ ﺎول اﻟﻔ ﺼﻞ اﻟﺮاﺑ ﻊ‬ ‫اﻟﻤ ﺼﻔﻮﻓﺎت ﺑﻨﻮﻋﻴﻬ ﺎ اﻷﺣﺎدﻳ ﻪ واﻟﺜﻨﺎﺋﻴ ﻪ ‪ ,‬ﺑﻴﻨﻤ ﺎ ﺗﻄ ﺮق اﻟﻔ ﺼﻞ اﻟﺨ ﺎﻣﺲ اﻟ ﻰ اﻷﺟ ﺮاءات واﻟ ﺪوال‬ ‫وآﻴﻔﻴﺔ أﺳﺘﺨﺪاﻣﻬﺎ ‪ ,‬اﻟﻔﺼﻞ اﻟﺴﺎدس ﻳﺸﺮح ﺑﺘﻮﺳﻊ ﻧﺴﺒﻲ اﻟﺪوال اﻟﻤﺴﺘﺨﺪﻣﻪ ﻣﻊ اﻟ ﺴﻼﺳﻞ اﻟﺤﺮﻓﻴ ﻪ ‪,‬‬ ‫وأﺧﻴﺮا ﺗﻢ اﻟﺨﺘﺎم ﻣﻊ اﻷﻧﻮاع واﻟﻤﺠﻤﻮﻋﺎت ‪.‬‬ ‫ﻟﻘﺪ ﺣﺎوﻟﺖ ﺟﺎهﺪا أن أﺑﺴﻂ اﻟﻤﻮاﺿﻴﻊ اﻟﺘﻲ ﺗﻄﺮﻗﺖ ﻟﻬﺎ ﺑﺸﻜﻞ آﺒﻴﺮ وأﺳﻬﺒﺖ ﺑﻌﺾ اﻟ ﺸﻲء‬ ‫ﻓ ﻲ ﺷ ﺮﺣﻬﺎ ﻷﺳ ﻬﻞ ﻋﻠ ﻰ اﻟﻘ ﺎريء اﻟﺘﻮاﺻ ﻞ ﻣ ﻊ ﻣﻮاﺿ ﻴﻊ اﻟﻜﺘ ﺎب وه ﻲ ﺟﻤﻴﻌ ﺎ ﻧﺘ ﺎج ﺧﺒﺮﺗ ﻲ ﻓ ﻲ‬ ‫ﺗﺪرﻳﺲ هﺬﻩ اﻟﻤﺎدﻩ ﻟﻌﺪد ﻣﻦ اﻟﺴﻨﻮات ‪ ,‬وأرى أن هﺬا اﻟﻜﺘﺎب ﻣﻤﻜﻦ أن ﻳﻜﻮن ﻣﺮﺟﻌﺎ ﺟﻴﺪا ﻟﻠﻤﺒﺘ ﺪﺋﻴﻦ‬ ‫ﻓﻲ اﻟﺒﺮﻣﺠﻪ وآﺬﻟﻚ ﻷﺻﺤﺎب اﻟﺨﺒﺮﻩ ‪ ,‬وهﻮ ﻣﻤﻜﻦ أن ﻳﻮﻓﺮ اﻷﺳﺎس اﻟﺠﻴ ﺪ ﻟﻤ ﻦ ﻳﺮﻏ ﺐ ﺗﻌﻠ ﻢ ﻟﻐ ﺎت‬ ‫ﺑﺮﻣﺠﻪ أﺧﺮى ‪.‬‬ ‫وﻓﻲ آﻞ اﻟﻔﺼﻮل ﺗﻢ اﻷﺳﺘﻌﺎﻧﻪ ﺑﺄﻣﺜﻠﻪ ﺗﻮﺿﻴﺤﻴﻪ وآﺎﻧﺖ اﻟﻔﻘﺮﻩ اﻷﺧﻴﺮﻩ ﻟﻜﻞ ﻓ ﺼﻞ ﺗﺤﺘ ﻮي‬ ‫ﻋﻠ ﻰ ﻋ ﺪد ﻻﺑ ﺄس ﺑ ﻪ ﻣ ﻦ اﻷﻣﺜﻠ ﻪ اﻟﻤﺤﻠﻮﻟ ﻪ واﻟﺘ ﻲ ﺗ ﻢ أﻧﺘﻘﺎﺋﻬ ﺎ ﻟﺘﻮﺿ ﻴﺢ ﺣ ﺎﻻت ﻣﺨﺘﻠﻔ ﻪ ﻣ ﻦ ﺗﻘﻨﻴ ﺎت‬ ‫اﻟﺒﺮﻣﺠﻪ أﺿﺎﻓﻪ اﻟﻰ اﻟﺘﻨﻮع ﺑﻄﺮق اﻟﺤﻞ ﻟﻬﺬﻩ اﻷﻣﺜﻠﻪ واﻷﻣﺜﻠﻪ اﻷﺧﺮى ﺿﻤﻦ اﻟﻔﻘﺮات اﻷﺧ ﺮى ﻣﻤ ﺎ‬ ‫ﻳﺴﺎﻋﺪ اﻟﻘﺎريء ﻋﻠﻰ اﻷﻟﻤﺎم ﺑﻄﺮق ﺣﻞ ﻣﺨﺘﻠﻔﻪ ‪ ,‬وﺑﺎﻟﺮﻏﻢ ﻣﻦ ﻗ ﺼﺮ ه ﺬﻩ اﻟﺒ ﺮاﻣﺞ وﺑ ﺴﺎﻃﺘﻬﺎ ﻟﻜﻨﻬ ﺎ‬ ‫آﺎﻣﻠ ﻪ وﻟﻴ ﺴﺖ أﺟ ﺰاء ‪ ,‬وأود أن أاآ ﺪ أن اﻟﻜﺜﻴ ﺮ ﻣ ﻦ ﺣﻠ ﻮل اﻷﻣﺜﻠ ﻪ ﻻ ﺗﻤﺜ ﻞ اﻟﺤ ﻞ اﻟﻨﻤ ﻮذﺟﻲ وذﻟ ﻚ‬ ‫ﻷﻧﻲ رآﺰت ﻋﻠﻰ ﺗﻮﺿﻴﺢ ﺗﻘﻨﻴﺎت وﻃﺮق ﺣﻠﻮل ﻣﺨﺘﻠﻔﻪ ﻟﺰﻳ ﺎدة اﻟﻔﺎﺋ ﺪﻩ ‪ ,‬وﺑﺄﻣﻜ ﺎن اﻟﻘ ﺎريء أن ﻳﻔﻬ ﻢ‬ ‫ه ﺬﻩ اﻟﺒ ﺮاﻣﺞ ﺑ ﺸﻜﻞ ﺟﻴ ﺪ ﻣ ﻦ ﺧ ﻼل ﻗﺮاﺋﺘﻬ ﺎ ‪ ,‬وﻟﻜ ﻦ ﻧﻨ ﺼﺢ ﺑ ﺄن ﺗﻄﺒ ﻖ ه ﺬﻩ اﻟﺒ ﺮاﻣﺞ وﺗﻨﻔ ﺬ ﻋﻠ ﻰ‬ ‫اﻟﺤﺎﺳﺐ ﻟﺰﻳﺎدة أدراآﻬﺎ وﻓﻬﻤﻬﺎ ‪.‬‬ ‫أرﺟﻮ ﻣﻦ اﷲ أن ﻳﺘﻘﺒﻞ ﻣﻨﻲ هﺬا اﻟﻌﻤﻞ ﺧﺎﻟﺼﺎ ﻟﻮﺟﻬﻪ ‪.‬‬ ‫وأﻧﻲ ﻣﺴﺘﻌﺪ ﻟﺴﻤﺎع أراﺋﻜﻢ وﻣﻘﺘﺮﺣﺎﺗﻜﻢ واﻷﺟﺎﺑﻪ ﻋﻦ أﺳﺌﻠﺘﻜﻢ ﻣﻦ ﺧﻼل اﻟﺒﺮﻳﺪ اﻷﻟﻜﺘﺮوﻧﻲ أدﻧﺎﻩ ‪:‬‬ ‫‪Comp_dep_educ@yahoo.com‬‬ ‫د‪ .‬ﻧﻀﺎل اﻟﻌﺒﺎدي‬ ‫ﺑﻐﺪاد ‪2006 /‬‬ ‫اﻟﻤﺤﺘﻮﻳﺎت‬ ‫اﻟﻔﺼﻞ اﻷول – ﻣﺪﺧﻞ اﻟﻰ اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪9‬‬ ‫‪9‬‬ ‫‪13‬‬ ‫‪ 1.1‬اﻟﻤﻘﺪﻣﻪ ‪..........................................................................‬‬ ‫‪ 1.2‬ﺑﻌﺾ اﻟﺼﻔﺎت اﻟﻌﺎﻣﻪ ﻟﻠﺒﺮﻧﺎﻣﺞ ‪.............................................‬‬ ‫‪ 1.3‬اﻟﻤﻌﺮﻓﺎت ‪.......................................................................‬‬ ‫‪ 1.4‬اﻟﺜﻮاﺑﺖ ‪.........................................................................‬‬ ‫‪ 1.5‬اﻟﺒﻴﺎﻧﺎت ‪.........................................................................‬‬ ‫‪ 1.5.1‬اﻷﻋﺪاد اﻟﺼﺤﻴﺤﻪ ‪....................................................‬‬ ‫‪ 1.5.2‬اﻷﻋﺪاد اﻟﺤﻘﻴﻘﻴﻪ ‪.......................................................‬‬ ‫‪ 1.5.3‬اﻟﺮﻣﻮز ‪.................................................................‬‬ ‫‪ 1.5.4‬اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ ‪.....................................................‬‬ ‫‪ 1.6‬اﻟﺘﻌﺎﺑﻴﺮ اﻟﻤﻨﻄﻘﻴﻪ ‪..............................................................‬‬ ‫‪ 1.6.1‬اﻟﻌﻤﻠﻴﺎت اﻟﻤﻨﻄﻘﻴﻪ ‪.....................................................‬‬ ‫‪ 1.7‬ﺗﻮﻟﻴﺪ اﻷرﻗﺎم اﻟﻌﺸﻮاﺋﻲ ‪.......................................................‬‬ ‫اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ – أواﻣﺮ اﻷدﺧﺎل واﻷﺧﺮاج‬ ‫‪15‬‬ ‫‪15‬‬ ‫‪16‬‬ ‫‪24‬‬ ‫‪26‬‬ ‫‪30‬‬ ‫اﻟﻤﻘﺪﻣﻪ ‪.........................................................................‬‬ ‫هﻴﻜﻠﻴﺔ اﻟﺒﺮﻧﺎﻣﺞ ‪...............................................................‬‬ ‫اﻟﻤﺨﺮﺟﺎت واﻟﻤﺪﺧﻼت ‪......................................................‬‬ ‫ﻣﺘﻐﻴﺮات اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ ‪.................................................‬‬ ‫أﻧﻮاع اﻷﺧﻄﺎء اﻟﺘﻲ ﺗﺤﺪث ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ‪..................................‬‬ ‫أﻣﺜﻠﻪ ﻣﺤﻠﻮﻟﻪ ‪..................................................................‬‬ ‫‪2.1‬‬ ‫‪2.2‬‬ ‫‪2.3‬‬ ‫‪2.4‬‬ ‫‪2.5‬‬ ‫‪2.6‬‬ ‫اﻟﻔﺼﻞ اﻟﺜﺎﻟﺚ – أﻳﻌﺎزات اﻟﻘﺮار واﻟﺘﻜﺮار‬ ‫‪32‬‬ ‫‪32‬‬ ‫‪35‬‬ ‫‪36‬‬ ‫‪37‬‬ ‫‪40‬‬ ‫‪41‬‬ ‫‪43‬‬ ‫‪47‬‬ ‫‪48‬‬ ‫‪ 3.1‬اﻟﻤﻘﺪﻣﻪ ‪.........................................................................‬‬ ‫‪ 3.2‬ﻋﺒﺎرة أذا ‪.......................................................................‬‬ ‫‪ 3.3‬أذا اﻟﻤﺮآﺒﻪ ‪....................................................................‬‬ ‫‪ 3.4‬ﻋﺒﺎرة اﻟﺘﻜﺮار ‪......................................... Repeat – Until‬‬ ‫‪ 3.5‬ﻋﺒﺎرة اﻟﺘﻜﺮار ‪............................................ While – Do‬‬ ‫‪ 3.6‬ﻋﺒﺎرة اﻟﺘﻜﺮار ‪......................................................... For‬‬ ‫‪ 3.7‬أﺳﺘﺨﺪام ‪ For‬اﻟﻤﺘﺪاﺧﻠﻪ ‪....................................................‬‬ ‫‪ 3.8‬ﻋﺒﺎرة أﺧﺘﻴﺎر اﻟﺤﺎﻟﻪ ‪................................................. Case‬‬ ‫‪ 3.9‬ﺟﻤﻠﺔ ‪..................................................................... IN‬‬ ‫‪ 3.10‬أﻣﺜﻠﻪ ﻣﺤﻠﻮﻟﻪ ‪.................................................................‬‬ ‫اﻟﻔﺼﻞ اﻟﺮاﺑﻊ – اﻟﻤﺼﻔﻮﻓﺎت‬ ‫‪53‬‬ ‫‪53‬‬ ‫‪53‬‬ ‫‪58‬‬ ‫‪61‬‬ ‫‪ 4.1‬اﻟﻤﻘﺪﻣﻪ ‪.........................................................................‬‬ ‫‪ 4.2‬اﻟﻤﺼﻔﻮﻓﺎت ‪...................................................................‬‬ ‫‪ 4.2.1‬اﻟﻤﺼﻔﻮﻓﻪ اﻷﺣﺎدﻳﻪ ‪...................................................‬‬ ‫‪ 4.2.2‬اﻟﻤﺼﻔﻮﻓﻪ اﻟﺜﻨﺎﺋﻴﻪ ‪....................................................‬‬ ‫‪ 4.3‬أﻣﺜﻠﻪ ﻣﺤﻠﻮﻟﻪ ‪...................................................................‬‬ ‫اﻟﻔﺼﻞ اﻟﺨﺎﻣﺲ – اﻷﺟﺮاءات واﻟﺪوال‬ ‫‪66‬‬ ‫‪66‬‬ ‫‪75‬‬ ‫‪77‬‬ ‫اﻟﻤﻘﺪﻣﻪ ‪.........................................................................‬‬ ‫اﻷﺟﺮاءات ‪....................................................................‬‬ ‫اﻟﺪوال ‪..........................................................................‬‬ ‫أﻣﺜﻠﻪ ﻣﺤﻠﻮﻟﻪ ‪...................................................................‬‬ ‫‪5.1‬‬ ‫‪5.2‬‬ ‫‪5.3‬‬ ‫‪5.4‬‬ ‫اﻟﻔﺼﻞ اﻟﺴﺎدس – اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ‬ ‫‪ 6.1‬اﻟﻤﻘﺪﻣﻪ ‪80 .........................................................................‬‬ ‫‪ 6.2‬ﻣﺎهﻲ اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ ‪80 ......................................................‬‬ ‫‪ 6.3‬اﻟﻌﻤﻠﻴﺎت اﻟﺘﻲ ﺗﺠﺮى ﻋﻠﻰ اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ ‪81 .............................‬‬ ‫‪ 6.3.1‬ﺗﺤﺪﻳﺪ اﻟﻤﻮﻗﻊ ‪81 ..........................................................‬‬ ‫‪ 6.3.2‬اﻷﺳﺘﻨﺴﺎخ ‪82 .............................................................‬‬ ‫‪ 6.3.3‬اﻟﺤﺬف ‪83 .................................................................‬‬ ‫‪ 6.3.4‬اﻟﺤﺸﺮ ‪84 .................................................................‬‬ ‫‪ 6.3.5‬دﻣﺞ ﺳﻠﺴﻠﺘﺎن ﺣﺮﻓﻴﺘﺎن ‪85 ..............................................‬‬ ‫‪ 6.3.6‬ﺣﺴﺎب ﻃﻮل اﻟﺴﻠﺴﻠﻪ اﻟﺤﺮﻓﻴﻪ ‪86 ......................................‬‬ ‫‪ 6.3.7‬ﺗﺤﻮﻳﻞ اﻟﺤﺮوف اﻟﺼﻐﻴﺮﻩ اﻟﻰ ﺣﺮوف آﺒﻴﺮﻩ ‪87 ....................‬‬ ‫‪ 6.3.8‬ﺗﺤﻮﻳﻞ اﻟﻘﻴﻢ اﻟﺮﻗﻤﻴﻪ اﻟﻰ ﺳﻠﺴﻠﻪ ﺣﺮﻓﻴﻪ ‪88 ............................‬‬ ‫‪ 6.3.9‬ﺗﺤﻮﻳﻞ اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ اﻟﻰ أرﻗﺎم ‪88 ................................‬‬ ‫‪ 6.4‬أﻣﺜﻠﻪ ﻣﺤﻠﻮﻟﻪ ‪90 ..................................................................‬‬ ‫اﻟﻔﺼﻞ اﻟﺴﺎﺑﻊ – ﻣﺘﻐﻴﺮات اﻷﻧﻮاع‬ ‫‪93‬‬ ‫‪93‬‬ ‫‪94‬‬ ‫‪97‬‬ ‫‪98‬‬ ‫‪102‬‬ ‫‪ 7.1‬اﻟﻤﻘﺪﻣﻪ ‪.........................................................................‬‬ ‫‪ 7.2‬اﻷﻧﻮاع ‪.........................................................................‬‬ ‫‪ 7.2.1‬اﻷﻧﻮاع اﻟﻌﺪدﻳﻪ ‪.......................................................‬‬ ‫‪ 7.2.2‬اﻟﻤﺪﻳﺎت اﻟﺠﺰﺋﻴﻪ ‪......................................................‬‬ ‫‪ 7.2.3‬اﻟﻤﺠﻤﻮﻋﺎت ‪...........................................................‬‬ ‫‪ 7.3‬أﻣﺜﻠﻪ ﻣﺤﻠﻮﻟﻪ ‪...................................................................‬‬ ‫‪1‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫اﻟﻔﺼﻞ اﻷول‬ ‫ﻣﺪﺧﻞ اﻟﻰ اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل‬ ‫اﻟﻤﻘﺪﻣﻪ‬ ‫‪1.1‬‬ ‫اﻟﺒﺮﻧﺎﻣﺞ هﻮ ﺳﻠ ﺴﻠﻪ ﻣﺘﺘﺎﻟﻴ ﻪ ﻣ ﻦ اﻷﻳﻌ ﺎزات ‪ ,‬ﻳﻤﻜﻨﻨ ﺎ ﺗ ﺸﺒﻴﻬﻬﺎ ﺑﻮﺻ ﻔﺔ أﻋ ﺪاد وﺟﺒ ﻪ ﻏﺬاﺋﻴ ﻪ ‪,‬‬ ‫اﻟﻨﻮﺗ ﻪ اﻟﻤﻮﺳ ﻴﻘﻴﻪ ‪ ,‬أو ﻧﻤ ﻮذج ﺣﻴﺎآ ﻪ ‪ .‬وﺗﺘﻤﻴ ﺰ ﻋﻨﻬ ﺎ ﺑ ﺮاﻣﺞ اﻟﺤﺎﺳ ﻮب ﺑ ﺸﻜﻞ ﻋ ﺎم ﺑﺄﻧﻬ ﺎ أﻃ ﻮل أﻣﺘ ﺪادا‬ ‫وآﺘﺎﺑﺘﻬﺎ ﺗﺴﺘﺪﻋﻲ دﻗﻪ وﻋﻨﺎﻳﻪ ﻓﺎﺋﻘﺘﻴﻦ ‪ .‬وﻗﺒﻞ اﻟﺸﺮوع واﻟﺨﻮض ﻓﻲ ﻣﻮﺿﻮع اﻟﺒﺮﻣﺠﻪ ﻻﺑﺪ ﻣﻦ ﺗﻌﺮﻳﻒ‬ ‫ﺑﻌﺾ اﻟﻤﺼﻄﻠﺤﺎت اﻟﺘﻲ ﺗﺄﺗﻲ ﻻﺣﻘﺎ‪.‬‬ ‫ﺑﻌﺾ اﻟﺼﻔﺎت اﻟﻌﺎﻣﻪ ﻟﻠﺒﺮﻧﺎﻣﺞ‬ ‫‪1.2‬‬ ‫• ﻳﺤﺘﺎج اﻟﺒﺮﻧﺎﻣﺞ ﺑ ﺼﻮرﻩ ﻋﺎﻣ ﻪ اﻟ ﻰ ﻣ ﻦ ﻳﻜﺘﺒ ﻪ وه ﻮ اﻟﻤﺒ ﺮﻣﺞ ) ‪ , ( Programmer‬واﻟ ﻰ‬ ‫اﻟﻤﻌ ﺎﻟﺞ ) ‪ ( Processor‬ﻟﺘﻔ ﺴﻴﺮ وﺗﻨﻔﻴ ﺬ ) ‪ ( Execution OR Running‬اﻷﻳﻌ ﺎزات أو اﻷواﻣ ﺮ‬ ‫) ‪ , ( Instructions OR Commands‬وﺗﺴﻤﻰ ﻋﻤﻠﻴﺔ ﺗﻨﻔﻴﺬ آﺎﻣﻞ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﻌﺎﻟﺠﻪ ) ‪( Process‬‬ ‫• أن ﺗﻨﻔﻴ ﺬ اﻟﺒﺮﻧ ﺎﻣﺞ ﻳ ﺘﻢ ﺑ ﺼﻮرﻩ ﻣﺘﺘﺎﻟﻴ ﻪ ) أي أﻳﻌ ﺎز ) ‪ ( instruction‬ﺑﻌ ﺪ اﻷﺧ ﺮ ﺣ ﺴﺐ‬ ‫ﺗﺴﻠ ﺴﻠﻬﺎ (‪ ,‬ﻣ ﺎﻟﻢ ﻳ ﺘﻢ اﻷﺧﺒ ﺎر ﺧﺎرﺟﻴ ﺎ ﻋ ﻦ ﻏﻴ ﺮ ذﻟ ﻚ‪ .‬ه ﺬا ﻳﻌﻨ ﻲ أن ﻧﺒ ﺪأ ﺑ ﺄول أﻳﻌ ﺎز وﻳﻨﻔ ﺬ ﺛ ﻢ اﻟﺜ ﺎﻧﻲ‬ ‫واﻟﺜﺎﻟﺚ وهﻜﺬا ﻟﺤﻴﻦ اﻟﻮﺻﻮل اﻟﻰ اﻷﻳﻌﺎز اﻷﺧﻴﺮ‪ .‬ه ﺬا اﻟﻨﻤ ﻮذج ﻣﻤﻜ ﻦ أن ﻳﻐﻴ ﺮ ﺑﻄﺮﻳﻘ ﻪ ﻣﺤ ﺪدﻩ ﻣ ﺴﺒﻘﺎ‬ ‫ﺑﺸﻜﻞ ﺟﻴ ﺪ ﻣ ﻦ ﻗﺒ ﻞ اﻟﻤﺒ ﺮﻣﺞ آﻤ ﺎ ﻳﻤﻜ ﻦ أن ﻳ ﺘﻢ ﺗﻜ ﺮار ﺟ ﺰء ﻣ ﻦ اﻟﺒﺮﻧ ﺎﻣﺞ وﺣ ﺴﺐ ﺗﺤﺪﻳ ﺪات اﻟﻤﺒ ﺮﻣﺞ‬ ‫ﺎ ﻳﺘﻢ ﺗﻜﺮار ﻣﻘﻄﻊ ﻣﻦ ﻧﻮﺗﻪ ﻣﻮﺳﻴﻘﻴﻪ ( ‪.‬‬ ‫) ﻣﺜﻠﻤٍ‬ ‫• أي ﺑﺮﻧﺎﻣﺞ ﻳﺠﺐ أن ﻳﻜﻮن ﻟﻪ ﺗﺄﺛﻴﺮ‪ ..‬ﻣﺜﻼ ﻓ ﻲ اﻟﻘﻄﻌ ﻪ اﻟﻤﻮﺳ ﻴﻘﻴﻪ ﻳﻜ ﻮن ه ﺬا اﻟﺘ ﺄﺛﻴﺮ ﻋﺒ ﺎرﻩ‬ ‫ﻋ ﻦ ﺻ ﻮت ‪ ,‬أﻣ ﺎ ﻓ ﻲ ﺑ ﺮاﻣﺞ اﻟﺤﺎﺳ ﻮب ه ﺬا اﻟﺘ ﺄﺛﻴﺮ ﻳﻜ ﻮن ﻋﻠ ﻰ ﺷ ﻜﻞ ﻣﺨﺮﺟ ﺎت ‪ ,‬أﻣ ﺎ ﻣﻄﺒﻮﻋ ﻪ أو‬ ‫ﻣﻌﺮوﺿﻪ ﻋﻠﻰ اﻟﺸﺎﺷﻪ ‪.‬‬ ‫• آ ﻞ ﺑﺮﻧ ﺎﻣﺞ ﻳﻌﻤ ﻞ ﻋﻠ ﻰ أﺷ ﻴﺎء ﻣﺤ ﺪدﻩ ﻟﻠﻮﺻ ﻮل اﻟ ﻰ اﻟﺘ ﺄﺛﻴﺮ اﻟﻤﻄﻠ ﻮب ) ﻣ ﺜﻼ ﻓ ﻲ وﺻ ﻔﺔ‬ ‫أﻋﺪاد اﻟﻄﻌﺎم ﻓﺎن هﺬﻩ اﻻﺷﻴﺎء ﻣﻤﻜﻦ أن ﺗﻜﻮن اﻟﻠﺤﻮم ‪ ,‬اﻟﺨﻀﺎر‪ ,‬وﻏﻴﺮهﺎ ( ‪ ,‬أﻣﺎ ﻓ ﻲ اﻟﺒ ﺮاﻣﺞ ﻓ ﺄن ه ﺬﻩ‬ ‫اﻻﺷﻴﺎء ﺗﻜﻮن ﺑﻴﺎﻧﺎت ‪.‬‬ ‫• ﻓﻲ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﺒﺮاﻣﺞ ﻳﺠﺐ أن ﻳﺘﻢ اﻷﻋﻼن اﻟﻤﺴﺒﻖ ﻋﻦ اﻟﻤﺘﻐﻴﺮات أو اﻟﺒﻴﺎﻧ ﺎت اﻟﺘ ﻲ ﺳ ﻴﺘﻢ‬ ‫أﺳﺘﺨﺪاﻣﻬﺎ وﻣﺎهﻴﺔ أﻧﻮاﻋﻬﺎ ) هﺬا ﻣﺸﺎﺑﻪ ﻟﻌﻤﻠﻴﺔ أﻋﺪاد وﺟﺒﺔ ﻃﻌﺎم ﺣﻴﺚ ﻳﺠﺐ أن ﺗﺤﺘﻮي اﻟﻮﺻﻔﻪ اﺑﺘﺪاءا‬ ‫ﻣﺎهﻴﺔ اﻟﻤﻮاد اﻟﺘﻲ ﺳﺘﺴﺘﺨﺪم وآﻤﻴﺎﺗﻬﺎ ( ‪.‬‬ ‫• ﻓﻲ ﺑﻌ ﺾ اﻷﻳﻌ ﺎزات رﺑﻤ ﺎ ﺗﻜ ﻮن هﻨ ﺎك ﺣﺎﺟ ﻪ أن ﻳﺘ ﺮك أﺗﺨ ﺎذ ﻗ ﺮار ﺗﻨﻔﻴ ﺬهﺎ اﻟ ﻰ اﻟﻤﻌ ﺎﻟﺞ‬ ‫وﻓﻘﺎ ﻟﺸﺮوط ﻣﻌﻴﻨﻪ‪ ..‬ﻓﻤﺜﻼ ) ﻋﻨﺪ أﻋ ﺪاد وﺟﺒ ﺔ ﻃﻌ ﺎم ﻳﻜﺘ ﺐ ﻓ ﻲ اﻟﻮﺻ ﻔﻪ ﻣ ﺎ ﻳﻠ ﻲ " ﻋﻨ ﺪ ﺗ ﻮﻓﺮ اﻟﻄﻤﺎﻃ ﻪ‬ ‫اﻟﻄﺎزﺟﻪ ﺗﺴﺘﺨﺪم ﺑﻌﺪ ﻧﺰع اﻟﻘﺸﺮ ﻓﻲ ﺧﻼف ذﻟﻚ ﻳﺴﺘﺨﺪم ﻣﻌﺠﻮن اﻟﻄﻤﺎﻃﻢ" ( ‪.‬‬ ‫• رﺑﻤ ﺎ ﺗﻜ ﻮن هﻨ ﺎك ﺣﺎﺟ ﻪ ﻟﺘﻨﻔﻴ ﺬ أﻳﻌ ﺎز أو ﻣﺠﻤﻮﻋ ﻪ ﻣ ﻦ اﻷﻳﻌ ﺎزات ﻷآﺜ ﺮ ﻣ ﻦ ﻣ ﺮﻩ ‪ .‬ﻋﻠﻴ ﻪ‬ ‫ﻃﺎﻟﻤﺎ هﻨﺎك أﻳﻌﺎز ﻳﺮاد ﺗﻜﺮارﻩ ﻓﺄن ﻋﺪد ﻣﺮات اﻟﺘﻜﺮار ﻳﺠﺐ ان ﺗﺤﺪد ‪ .‬ﻣﻤﻜﻦ أﻧﺠ ﺎز ذﻟ ﻚ أﻣ ﺎ ﺑﺘﺤﺪﻳ ﺪ‬ ‫‪2‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫ﻋﺪد ﻣﺮات اﻟﺘﻜﺮار ) ﻣﺜﻼ ﻳﻮﺿﻊ اﻟﻄﻌﺎم ﻋﻠﻰ اﻟﻨﺎر ﻟﻤﺪة ‪ 30‬دﻗﻴﻘﻪ ( أو ﺑﻔﺤﺺ ﺣﺎﻟ ﻪ ﺗﻜ ﻮن ﻣ ﻦ ﺿ ﻤﻦ‬ ‫اﻟﻌﻤﻠﻴﻪ ) ﻣﺜﻼ وﺿﻊ اﻟﻄﻌﺎم ﻋﻠﻰ اﻟﻨﺎر ﻟﺤﻴﻦ أن ﻳﻨﻀﺞ ( ‪.‬‬ ‫اﻟﻤﻌﺮﻓﺎت ‪IDENTIFIERS‬‬ ‫آﻞ اﻟﺒﺮاﻣﺞ ﺗﺤﺘﻮي ﻋﻠﻰ ﻧﻮﻋﻴﻦ ﻣﻦ اﻟﺮﻣﻮز ‪:‬‬ ‫اﻟﻨﻮع اﻻول ‪ ..‬وهﻲ اﻟﺮﻣﻮز اﻟﺘﻲ ﺗﻌﻮد اﻟﻰ اﻟﻠﻐ ﻪ ‪ ..‬ﻓﻔ ﻲ ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ ﺑﺎﺳ ﻜﺎل ﺗ ﺴﺘﺨﺪم ه ﺬﻩ‬ ‫اﻟﺮﻣ ﻮز ﺑﻄ ﺮﻳﻘﺘﻴﻦ أﻣ ﺎ أن ﺗﻜ ﻮن ﻋﻠ ﻰ ﺷ ﻜﻞ رﻣ ﺰ واﺣ ﺪ أو أﺛﻨ ﻴﻦ ﻣﺜ ﻞ ) ‪ ( : , ; , ( ) , : = , + , -‬أو‬ ‫ﻋﻠﻰ ﺷﻜﻞ آﻠﻤﺎت ﺗﺴﻤﻰ اﻟﻜﻠﻤﺎت اﻟﻤﺤﺠﻮزﻩ ﻣﺜﻞ ‪:‬‬ ‫) ‪( begin , if , else , repeat , while, until , then , end‬‬ ‫اﻟﻨ ﻮع اﻟﺜ ﺎﻧﻲ ‪ ..‬ه ﻮ اﻟﻤﻌﺮﻓ ﺎت وه ﻲ ﻋﺒ ﺎرﻩ ﻋ ﻦ رﻣ ﻮز ﺗ ﺴﺘﺨﺪم ﻓ ﻲ اﻟﺒ ﺮاﻣﺞ ﻓﺄﻣ ﺎ أن ﺗﻜ ﻮن‬ ‫ﻣﻌﺮﻓﺎت ﻗﻴﺎﺳﻴﻪ ﻣﺜﻞ‬ ‫)‪( integer , real , write, sqrt …etc‬‬ ‫أو أن ﺗﻜﻮن ﻣﻌﺮﻓ ﺎت ﻳ ﺘﻢ أﺧﺘﻴﺎره ﺎ ﻣ ﻦ ﻗﺒ ﻞ اﻟﻤﺒ ﺮﻣﺞ ‪ .‬ه ﺬﻩ اﻟﻤﻌﺮﻓ ﺎت اﻷﺧﻴ ﺮﻩ ﻧ ﺴﻤﻴﻬﺎ أﻳ ﻀﺎ‬ ‫اﻟﻤﺘﻐﻴﺮات ) ‪ ( variables‬واﻟﻤﺘﻐﻴﺮ هﻮ رﻣﺰ أو أآﺜﺮ ﻳﺴﺘﺨﺪم ﻓ ﻲ اﻟﺒﺮﻧ ﺎﻣﺞ ﻟﻴ ﺸﻴﺮ اﻟ ﻰ ﻣﺤﺘ ﻮى ﻣﻮﻗ ﻊ‬ ‫ﻓﻲ اﻟﺬاآﺮﻩ ‪.‬‬ ‫اﻟﻤﺘﻐﻴﺮ ‪//:‬‬ ‫ﻓﻲ أﻏﻠﺐ ﻟﻐﺎت اﻟﺒﺮﻣﺠﻪ ﻓﺄن اﻟﻤﺘﻐﻴﺮ هﻮ ﻣﻜﺎن ﻟﺘﺨﺰﻳﻦ اﻟﻤﻌﻠﻮﻣﺎت ‪ ,‬اﻟﻤﺘﻐﻴﺮ هﻮ ﻣﻜﺎن أو‬ ‫ﻣﻮﻗﻊ ﻓﻲ ذاآﺮة اﻟﺠﻬﺎز ﺣﻴﺚ ﻳﻤﻜﻦ ﺗﺨﺰﻳﻦ ﻗﻴﻤﻪ ﺑﺪاﺧﻠﻪ ﺛﻢ أﻣﻜﺎﻧﻴﻪ أﺳﺘﻌﺎدة هﺬﻩ اﻟﻘﻴﻤﻪ ﻓﻴﻤﺎ‬ ‫ﺑﻌﺪ ‪.‬‬ ‫واﻟﻤﺘﻐﻴﺮ هﻮ أﺳﻢ ﻳﻤﺜﻞ ﺑﺮﻗﻢ أو ﺳﻠﺴﻠﻪ ﺣﺮﻓﻴﻪ ) وﻣﻤﻜﻦ ﺣﺮف واﺣﺪ أو ﺗﻌﺒﻴﺮ ﻣﻨﻄﻘﻲ ( ‪.‬‬ ‫‪1.3‬‬ ‫ﻣﻦ اﻟﻤﻤﻜﻦ ﺗﺼﻮر ذاآﺮة اﻟﺠﻬﺎز ﻋﻠﻰ أﻧﻬﺎ ﻣﺠﻤﻮﻋﻪ ﻣﻦ اﻟﻤﻮاﻗﻊ اﻟﺘﻲ ﺗﺨﺰن ﻓﻴﻬ ﺎ اﻟﻤﻌﻠﻮﻣ ﺎت ‪,‬‬ ‫هﺬﻩ اﻟﻤﻮاﻗﻊ ﻣﺮﻗﻤﻪ ﺑﺸﻜﻞ ﻣﺘﺴﻠﺴﻞ ﺗﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ وﺗﻨﺘﻬﻲ ﺑﺤﺠﻢ اﻟﺬاآﺮﻩ ‪ ,‬ﺗﻌﺮف ه ﺬﻩ اﻷرﻗ ﺎم ﺑﻌﻨ ﺎوﻳﻦ‬ ‫اﻟﺬاآﺮﻩ ﺳﻴﻤﺜﻞ أﺳﻢ اﻟﻤﺘﻐﻴﺮ ﺑﻄﺎﻗﺔ ﻋﻨﻮﻧﻪ ﻣﻠﺼﻘﻪ ﻋﻠﻰ أﺣﺪ اﻟﻤﻮاﻗﻊ ﺑﺤﻴﺚ ﺗﺴﺘﻄﻴﻊ اﻟﻮﺻ ﻮل اﻟﻴ ﻪ ﺳ ﺮﻳﻌﺎ‬ ‫دون اﻟﺤﺎﺟﻪ اﻟﻰ ﻣﻌﺮﻓﺔ اﻟﻌﻨﺎوﻳﻦ اﻟﺤﻘﻴﻘﻴﺔ ﻓﻲ اﻟﺬاآﺮة ) ﻟﺬا ﻓﺎن اﻟﻤﺘﻐﻴﺮ ﺳﻴ ﺸﻴﺮ اﻟ ﻰ اﺣ ﺪ ه ﺬﻩ اﻟﻌﻨ ﺎوﻳﻦ‬ ‫وﻋﻨﺪ وﺿﻊ ﻗﻴﻤﻪ ﻓﻲ اﻟﻤﺘﻐﻴﺮ ﻓﺎن اﻟﻤﺘﺮﺟﻢ ) ‪ ( compiler‬ﺳﻴﺬهﺐ اﻟﻰ اﻟﻌﻨﻮان اﻟﺬي ﻳﺸﻴﺮ ﻟ ﻪ اﻟﻤﺘﻐﻴ ﺮ‬ ‫وﻳﻀﻊ ﻓﻴﻪ اﻟﻘﻴﻤﻪ وآﺬﻟﻚ ﻋﻨ ﺪﻣﺎ ﻧﺮﻳ ﺪ أن ﻧﻌ ﺮف ﻗﻴﻤ ﺔ اﻟﻤﺘﻐﻴ ﺮ ﻓ ﺄن اﻟﻤﺘ ﺮﺟﻢ ﻳ ﺬهﺐ اﻟ ﻰ اﻟﻌﻨ ﻮان اﻟ ﺬي‬ ‫ﻳﺸﻴﺮ ﻟﻪ اﻟﻤﺘﻐﻴﺮ وﻳﻘﺮأ اﻟﻘﻴﻤﻪ اﻟﺘﻲ ﻓﻴﻪ ( ‪ .‬ﻳﻌﺮض اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ه ﺬﻩ اﻟﻔﻜ ﺮﻩ واﻟﺘ ﻲ ﺗﺒ ﻴﻦ ﺑﻌ ﺾ اﻟﻤﻮاﻗ ﻊ‬ ‫ﻓﻲ اﻟﺬاآﺮة واﻟﺘﻲ ﻣﻤﻜﻦ ان ﻳﺸﻴﺮ اﻟﻴﻬﺎ اﻟﻤﺘﻐﻴﺮ ‪.‬‬ ‫‪3‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫ﺷﻜﻞ رﻗﻢ ) ‪ : ( 1.1‬ﺑﻌﺾ ﻣﻮاﻗﻊ اﻟﺬاآﺮﻩ‬ ‫ﺗﺘﻜﻮن اﻟﻤﺘﻐﻴﺮات ﻣﻦ ﺣﺮف واﺣﺪ ‪ ,‬ﻣﺠﻤﻮﻋﺔ ﺣﺮوف ‪ ,‬أو ﺣﺮوف وأرﻗﺎم ﻋﻠﻰ أن ﻳﻜ ﻮن أول‬ ‫رﻣﺰ ﺣﺮف ﻣﺜﻞ‬ ‫) ‪ ( x , b , ad, jasim , endofpoint , hind6 , x345‬هﺬﻩ ﺟﻤﻴﻌﺎ ﻣﺘﻐﻴﺮات ﻣﻘﺒﻮﻟﻪ‪.‬‬ ‫أﻣﺎ اﻟﻤﺘﻐﻴﺮات اﻟﺘﺎﻟﻴ ﻪ ﻓﻬ ﻲ ﻏﻴ ﺮ ﻣﻘﺒﻮﻟ ﻪ ) ‪ ( first name , next.word , 15may‬واﻟ ﺴﺒﺐ‬ ‫هﻮ أن اﻟﻤﺘﻐﻴﺮ اﻷول ﻳﺤﺘ ﻮي ﻋﻠ ﻰ ﻓ ﺮاغ واﻟﺜ ﺎﻧﻲ ﻳﺤﺘ ﻮي ﻋﻠ ﻰ ﻧﻘﻄ ﻪ أﻣ ﺎ اﻷﺧﻴ ﺮ ﻓﻬ ﻮ ﻳﺒ ﺪأ ﺑ ﺮﻗﻢ وه ﺬﻩ‬ ‫ﺟﻤﻴﻌﻬﺎ ﻏﻴﺮ ﻣﻘﺒﻮﻟﻪ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬‬ ‫أن أول ﻇﻬﻮر ﻟﻠﻤﺘﻐﻴﺮ ﻳﻜﻮن ﻓﻲ ﻗﺴﻢ اﻷﻋﻼن ﻋﻦ اﻟﻤﺘﻐﻴ ﺮات ﺣﻴ ﺚ ﻳ ﺘﻢ اﻷﻋ ﻼن ﻋ ﻦ اﻟﻤﺘﻐﻴ ﺮ‬ ‫وﻳﺤﺪد ﻧﻮﻋﻪ ) أي هﻞ هﻮ رﻗﻢ ﺻﺤﻴﺢ ) ‪ ( integer‬ﻣﺜﻼ ‪ ,‬آ ﺴﺮ ) ‪ , ( real‬ﻧ ﺺ آﺘ ﺎﺑﻲ ) ‪, ( string‬‬ ‫ﺣﺮف ) ‪...( character‬اﻟﺦ ( ‪ .‬أن أﺧﺘﻴﺎر اﻟﻤﺘﻐﻴ ﺮ ﻣ ﻦ ﻗﺒ ﻞ اﻟﻤﺒ ﺮﻣﺞ ﺗﻌﺘﺒ ﺮ ﻣ ﺴﺄﻟﻪ ﻣﻬﻤ ﻪ وﻳﻔ ﻀﻞ أن‬ ‫ﻳﻌﻜﺲ اﻟﻤﺘﻐﻴﺮ اﻟﻤﻌﻨﻰ اﻟﺬي ﺑﺴﺘﺨﺪم ﻷﺟﻠﻪ اﻟﻤﺘﻐﻴﺮ ﻓﻤﺜﻼ ﻳﻔ ﻀﻞ أﺳ ﺘﺨﺪام اﻟﻤﺘﻐﻴ ﺮ ) ‪ ( sum‬ﻣ ﻊ اﻟﺠﻤ ﻊ‬ ‫وأذا ﻣﺎ أﺳﺘﺨﺪم ﻣﺘﻐﻴﺮ أﺧﺮ ﻓﺎن ذﻟﻚ ﺳﻮف ﻻ ﻳﺆدي اﻟﻰ أي اﺷﻜﺎل ‪ ,‬وآﺬﻟﻚ ﻳﻔﻀﻞ أن ﻻ ﻳﻜﻮن اﻟﻤﺘﻐﻴ ﺮ‬ ‫ﻃﻮﻳﻞ ﻓﻤ ﺜﻼ ﻳﻔ ﻀﻞ أﺳ ﺘﺨﺪام ﻣﺘﻐﻴ ﺮ ﻣﺘﻜ ﻮن ﻣ ﻦ ﺣ ﺮف واﺣ ﺪ ﻋﻨ ﺪﻣﺎ ﻧ ﺴﺘﺨﺪﻣﻪ ﻓ ﻲ ﺑﺮﻧ ﺎﻣﺞ ﻗ ﺼﻴﺮ وﻻ‬ ‫ﻳﺘﻜﺮر آﺜﻴﺮا ‪ ,‬أﻣﺎ أﺳﺘﺨﺪام ﻣﺘﻐﻴﺮ ﻣﻦ ﺣﺮف واﺣﺪ وﻳﺴﺘﺨﺪم ﺑﺸﻜﻞ ﻣﺘﻜﺮر وﺑﺄﺟﺰاء ﻣﺘﻜﺮرﻩ ﻓﻲ ﺑﺮﻧﺎﻣﺞ‬ ‫ﻃﻮﻳﻞ ﻓﺄﻧﻪ ﻳﻌﺘﺒﺮ أﺧﺘﻴﺎر ﺳﻲء ﺑﺎﻟﺮﻏﻢ ﻣﻦ أﻧﻪ ﻻ ﻳﻌﻴﻖ ﻋﻤﻞ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬ ‫اﻟﺜﻮاﺑﺖ ‪CONSTANTS‬‬ ‫‪1.4‬‬ ‫ﻓﻲ ﺑﻌﺾ اﻟﺒﺮاﻣﺞ ﻧﺤﺘﺎج اﻟﻰ أﺳﺘﺨﺪام ﻗﻴﻢ رﺑﻤﺎ ﺗﻜﻮن ﻣﻌﺮوﻓﻪ ﻣ ﺴﺒﻘﺎ ﻗﺒ ﻞ ﺗﻨﻔﻴ ﺬ اﻟﺒﺮﻧ ﺎﻣﺞ وﻻ‬ ‫ﻳﻤﻜﻦ أن ﺗﺘﻐﻴﺮ داﺧﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻣﺜﻞ اﻟﻨﺴﺒﻪ اﻟﺜﺎﺑﺘ ﻪ ) ‪ ( Л‬واﻟﺘ ﻲ ﺗﻜ ﻮن ﻗﻴﻤﺘﻬ ﺎ ) ‪( 3.1415926585‬‬ ‫هﺬﻩ اﻟﻘﻴﻢ اﻟﺜﺎﺑﺘﻪ ﺳﻮاء آﺎﻧﺖ ذات ﻗﻴﻤﻪ ﻣﻌﺮوﻓﻪ ﻣﺴﺒﻘﺎ أو أي ﻗﻴﻤ ﻪ ﻣﻤﻜ ﻦ أن ﺗ ﺴﻨﺪ اﻟ ﻰ ﻣﺘﻐﻴ ﺮ ‪ ,‬ﺟﻤﻴﻌﻬ ﺎ‬ ‫ﻣﻤﻜﻦ أن ﺗﻌﺮف ﺑﺤﻘﻞ ﺧﺎص ﻳﺪﻋﻰ ﺣﻘﻞ اﻷﻋ ﻼن ﻋ ﻦ اﻟﺜﻮاﺑ ﺖ وه ﺬا اﻟﺤﻘ ﻞ ﻳ ﺴﺒﻖ ﺣﻘ ﻞ اﻷﻋ ﻼن ﻋ ﻦ‬ ‫اﻟﻤﺘﻐﻴﺮات وآﻤﺎ ﻳﻠﻲ ‪:‬‬ ‫‪Const‬‬ ‫; ‪Pi = 3.1413926535‬‬ ‫; ' ‪Error = ' Run_Time Error‬‬ ‫‪4‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫أﺳﺒﺎب أﺳﺘﺨﺪام اﻟﺜﻮاﺑﺖ ‪:‬‬ ‫• أذا آﺎن هﻨﺎك ﻋﺪد ﻳﺴﺘﺨﺪم ﺑﺸﻜﻞ ﻣﺘﻜﺮر داﺧﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻓﺄن اﻟﻤﺒﺮﻧﺞ ﻳﻔﻀﻞ أن ﻳﺼﻔﻪ‬ ‫ﺑﺄﺳﻢ ﺿﻤﻦ ﺣﻘﻞ اﻷﻋﻼن ﻋﻦ اﻟﺜﻮاﺑﺖ ‪ ,‬وﺑﻌﺪهﺎ ﺑﺎﻷﻣﻜﺎن أﺳﺘﺨﺪام اﻷﺳﻢ اﻟﻤﻮﺻﻮف ﻓﻲ‬ ‫اﻟﻘﺴﻢ اﻟﺘﻨﻔﻴﺬي ‪.‬‬ ‫• ﻣﻦ اﻟﻤﻤﻜﻦ أﺳﺘﺨﺪام ﺣﻘﻞ اﻟﺜﻮاﺑﺖ ﻟﺘﺴﻤﻴﺔ ﻣﺘﻐﻴﺮات ﻣﻦ ﻧﻮع اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ واﻟﺘﻲ‬ ‫ﺗﺴﺘﺨﺪم ﺑﺸﻜﻞ ﻣﺘﻜﺮر ﻓﻲ ﻣﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ ‪.‬‬ ‫ﻣﺜﺎل ‪ :‬ﻧﻔﺮض أﻧﻨﺎ ﻧﺤﺘﺎج اﻟﻰ ﻃﺒﺎﻋﺔ أﺳﻢ ﺟﺎﻣﻌﻪ ﻣﺜﻼ ﺑﺸﻜﻞ ﻣﺘﻜﺮر ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ‪ ,‬ﻣﻤﻜﻦ أن‬ ‫ﻧﻘﻮم ﺑﻤﺎﻳﻠﻲ ‪:‬‬ ‫‪Const‬‬ ‫; ' ‪University = 'Al _ Mustnsirah university‬‬ ‫; '‪Underline = '----------------------------------------------‬‬ ‫اﻷن ﻣﻦ اﻟﻤﻤﻜﻦ أﺳﺘﺨﺪام اﻷﺳﻤﺎء اﻟﻤﻌﺮﻓﻪ آﺜﻮاﺑﺖ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ وآﻤﺎ ﻳﻠﻲ‪:‬‬ ‫; ) ‪Writeln ( university‬‬ ‫; ) ‪Writeln ( underline‬‬ ‫اﻟﺒﻴﺎﻧﺎت ‪DATA‬‬ ‫‪1.5‬‬ ‫آﻞ ﻋﻨﺼﺮ ﻣ ﻦ اﻟﺒﻴﺎﻧ ﺎت ﻓ ﻲ اﻟﺒﺮﻧ ﺎﻣﺞ أﻣ ﺎ أن ﺗﻜ ﻮن ﻗﻴﻤﺘ ﻪ ﺛﺎﺑﺘ ﻪ أو ﻣﺘﻐﻴ ﺮﻩ ) أن ﻗﻴﻤ ﺔ اﻟﻤﺘﻐﻴ ﺮ‬ ‫رﺑﻤﺎ ﺗﺘﻐﻴﺮ ﺧﻼل ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ (‪ .‬آﻞ ﻣﺘﻐﻴﺮ) واﻟﺬي هﻮ ﺑﻴﺎﻧﺎت ( ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ﻳﺠﺐ أن ﻳﻜ ﻮن ﻟ ﻪ ﻧ ﻮع‬ ‫وﺑﻤﻮﺟﺐ هﺬا اﻟﻨﻮع ﺳﻴﺘﻢ ﺗﺤﺪﻳﺪ اﻟﻤﺴﺎ ﺣﻪ اﻟﺨﺰﻧﻴﻪ اﻟﻼزﻣﻪ ﻟﻘﻴﻤ ﺔ ه ﺬا اﻟﻤﺘﻐﻴ ﺮ ‪ ,‬وآ ﺬﻟﻚ ﺗﺤ ﺪد اﻟﻌﻤﻠﻴ ﺎت‬ ‫اﻟﺘﻲ ﻣﻤﻜﻦ أﺟﺮاؤهﺎ ﻋﻠﻰ هﺬا اﻟﻤﺘﻐﻴﺮ‪ .‬واﻷﻧﻮاع اﻟﻘﻴﺎﺳﻴﻪ اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻓﻲ ﻟﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل هﻲ ‪:‬‬ ‫‪ 1.5.1‬اﻻﻋﺪاد اﻟﺼﺤﻴﺤﻪ ‪INTEGERS‬‬ ‫اﻷﻋﺪاد اﻟﺼﺤﻴﺤﻪ هﻲ آﻞ اﻷﻋﺪاد اﻟﻤﻮﺟﺒﻪ واﻟﺴﺎﻟﺒﻪ اﻟﺘﻲ ﻻ ﺗﺤﺘﻮي ﻋﻠﻰ آ ﺴﺮ‪ .‬ﻓﺎﻟ ﺼﻔﺮ ﻋ ﺪد‬ ‫ﺻﺤﻴﺢ و ‪ 567‬هﻮ ﻋﺪد ﺻﺤﻴﺢ و ‪ -23‬أﻳﻀﺎ ﻋﺪد ﺻﺤﻴﺢ ‪ .‬أﻣ ﺎ )‪ 123.345‬و ‪ ( -1.45‬ﻓﻬ ﻲ ﻟﻴ ﺴﺖ‬ ‫أﻋ ﺪاد ﺻ ﺤﻴﺤﻪ‪ .‬أن اﻋﻠ ﻰ ﻗﻴﻤ ﻪ وأوﻃ ﺄ ﻗﻴﻤ ﻪ ﻟﻌ ﺪد ﺻ ﺤﻴﺢ ﻣﻤﻜ ﻦ ﺗﻤﺜﻴﻠ ﻪ ﻓ ﻲ اﻟﺤﺎﺳ ﻮب ﺗﺨﺘﻠ ﻒ ﻣ ﻦ‬ ‫ﺣﺎﺳﻮب ﻷﺧﺮ ‪ ,‬وﻳﻤﻜﻦ ﻣﻌﺮﻓﺔ هﺬﻩ اﻟﻘﻴﻢ ﻓﻲ أي ﺣﺎﺳﻮب ﺑﺄﺳﺨﺪام اﻷﻳﻌﺎزات اﻟﺘﺎﻟﻴﻪ ‪:‬‬ ‫‪maxint‬‬ ‫‪- maxint‬‬ ‫ﻟﻤﻌﺮﻓﺔ أﻋﻠﻰ ﻗﻴﻤﻪ ﻧﺴﺘﺨﺪم‬ ‫ﻟﻤﻌﺮﻓﺔ أوﻃﺄ ﻗﻴﻤﻪ ﻧﺴﺘﺨﺪم‬ ‫أن أي ﻣﺤﺎوﻟ ﻪ ﻷﺳ ﺘﺨﺪام ﻗ ﻴﻢ ﺧ ﺎرج ﻧﻄ ﺎق اﻟﺤ ﺪود اﻟﻌﻠﻴ ﺎ واﻟ ﺪﻧﻴﺎ ﺳ ﻴﺆدي اﻟ ﻰ ﺣ ﺪوث ﺧﻄ ﺄ‪.‬‬ ‫وﺑﺸﻜﻞ ﻋ ﺎم ﻓ ﺄن اﻟﻤﺘﻐﻴ ﺮات ﻣ ﻦ ﻧ ﻮع اﻷﻋ ﺪاد اﻟ ﺼﺤﻴﺤﻪ ﺗ ﺴﺘﺨﺪم أﺿ ﺎﻓﻪ اﻟ ﻰ اﻟﻌﻤﻠﻴ ﺎت اﻟﺮﻳﺎﺿ ﻴﻪ ﻓ ﻲ‬ ‫اﻟﻌﺪادات واﻟﻔﻬﺎرس ‪.‬‬ ‫اﻟﻌﻼﻗ ﺎت اﻟﺮﻳﺎﺿ ﻴﻪ اﻟﺘ ﻲ ﺗ ﺴﺘﺨﺪم ﻣ ﻊ اﻷﻋ ﺪاد اﻟ ﺼﺤﻴﺤﻪ ه ﻲ ) ‪( + , - , * , Div , Mod‬‬ ‫وهﻲ ﻋﻠﻰ اﻟﺘﻮاﻟﻲ ) اﻟﺠﻤﻊ ‪ ,‬اﻟﻄﺮح ‪ ,‬اﻟﻀﺮب ‪ ,‬اﻟﻘﺴﻤﻪ ‪ ,‬وﺣﺴﺎب ﺑﺎﻗﻲ اﻟﻘﺴﻤﻪ ( ‪.‬‬ ‫‪5‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫ﻳﺠﺐ أن ﻧﻼﺣﻆ هﻨﺎ أن اﻟﻌﻼﻣﻪ ) ‪ ( /‬ﺗﺴﺘﺨﺪم ﻟﻠﻘﺴﻤﻪ ﻟﻜﻦ ﻣﻊ اﻷﻋﺪاد اﻟﺤﻘﻴﻘﻴﻪ أي اﻟﺘ ﻲ ﺗﺤﺘ ﻮي‬ ‫آﺴﻮر‬ ‫أﻣﺜﻠﻪ ‪//:‬‬ ‫‪2 Div 3 = 0‬‬ ‫‪2 / 3 = 0.66666667‬‬ ‫‪5 Div 1 = 5‬‬ ‫‪5 / 1 = 5.0‬‬ ‫‪5 Div 2 = 2‬‬ ‫‪2+3*4 = 14‬‬ ‫‪(2+3) * 4 = 20‬‬ ‫‪5 mod 2 = 1‬‬ ‫‪7 mod 4 = 3‬‬ ‫هﻨﺎ ﻳﻨﻔﺬ داﺧﻞ اﻟﻘﻮس أوﻻ‬ ‫وﻳ ﺼﺮح ﻋ ﻦ اﻷﻋ ﺪاد اﻟ ﺼﺤﻴﺤﻪ ﺑﻠﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ ﺑﺎﺳ ﻜﺎل ﻓ ﻲ ﺣﻘ ﻞ اﻷﻋ ﻼن ﻋ ﻦ اﻟﻤﺘﻐﻴ ﺮات‬ ‫) ﺳﻨﻮﺿﺤﻬﺎ ﻻﺣﻘﺎ ( ﺑﺎﻟﺪاﻟﻪ ) ‪. ( integer‬‬ ‫‪ 1.5.2‬اﻷﻋﺪاد اﻟﺤﻘﻴﻘﻴﻪ ‪REAL NUMBERS‬‬ ‫‪0.03 , 12.5 , -356.67890 , 10.0‬‬ ‫وهﻲ اﻷﻋﺪاد اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ آﺴﻮر ﻣﺜ ﻞ‬ ‫) ‪ ( + , - , * , /‬وه ﻲ‬ ‫أﻣ ﺎ اﻟﻌﻤﻠﻴ ﺎت اﻟﺮﻳﺎﺿ ﻴﻪ اﻟﺘ ﻲ ﻣﻤﻜ ﻦ أﺟﺮاؤه ﺎ ﻋﻠﻴﻬ ﺎ ﻓﻬ ﻲ‬ ‫) اﻟﺠﻤﻊ ‪ ,‬اﻟﻄﺮح ‪ ,‬اﻟﻀﺮب ‪ ,‬اﻟﻘﺴﻤﻪ (‪ .‬وﻳﺼﺮح ﻋ ﻦ اﻷﻋ ﺪاد اﻟﺤﻘﻴﻘﻴ ﻪ ﻓ ﻲ ﺑﻠﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ ﺑﺎﺳ ﻜﺎل ﻓ ﻲ‬ ‫ﺣﻘﻞ اﻷﻋﻼن ﻋﻦ اﻟﻤﺘﻐﻴﺮات ﺑﺎﻟﺪاﻟﻪ ) ‪. ( Real‬‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫ﺗﻤﺜﻞ اﻷرﻗﺎم ﺑﻄﺮﻳﻘﺘﻴﻦ ﻓﺄﻣﺎ أرﻗﺎم ﺻﺤﻴﺤﻪ ﺑﺪون آﺴﺮ أو أرﻗﺎم آﺴﺮﻳﻪ ‪ .‬اﻟﻘﻮاﻋﺪ اﻟﺘﺎﻟﻴﻪ‬ ‫ﺗﻄﺒﻖ ﻋﻨﺪ آﺘﺎﺑﺔ أرﻗﺎم‬ ‫‪ .1‬اﻟﻔﺎرزﻩ ﻻ ﻳﻤﻜﻦ أن ﺗﻈﻬﺮ ﻓﻲ أي ﻣﻜﺎن ﻓﻲ اﻟﺮﻗﻢ ‪.‬‬ ‫‪ .2‬ﻣﻤﻜﻦ أن ﺗﺴﺒﻖ اﻷرﻗﺎم أﺣﺪى اﻟﻌﻼﻣﺘﻴﻦ ) ‪ ( + , -‬ﻟﻠﺪﻻﻟﻪ ﻋﻠﻰ آﻮﻧﻪ ﻣﻮﺟﺐ أو‬ ‫ﺳﺎﻟﺐ ) ﻳﻌﺘﺒﺮ اﻟﺮﻗﻢ ﻣﻮﺟﺒﺎ أذا ﻟﻢ ﺗﻈﻬﺮ أي ﻣﻦ اﻟﻌﻼﻣﺘﻴﻦ أﻣﺎﻣﻪ ( ‪.‬‬ ‫‪ .3‬ﻳﻤﻜﻦ ﺗﻤﺜﻴﻞ اﻷرﻗﺎم ﺑﻄﺮﻳﻘﺔ اﻟﻌﻼﻣﻪ اﻟﻌﻠﻤﻴﻪ ) وذﻟﻚ ﺑﺄﺳﺘﺒﺪال اﻟﺮﻗﻢ ) ‪( 10‬‬ ‫ﺑﺎﻟﺤﺮف ) ‪ . ( ( E‬ﻣﺜﻼ اﻟﺮﻗﻢ ) ‪ ( 2.7 x 10 -6‬ﺗﻜﺘﺐ ﺣﺴﺐ اﻟﻌﻼﻣﻪ اﻟﻌﻠﻤﻴﻪ آﻤﺎ‬ ‫ﻳﻠﻲ ) ‪. ( 2.7E-6‬‬ ‫‪6‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫أدﻧﺎﻩ ﺑﻌﺾ اﻟﻘﻮاﻋﺪ اﻟﻬﺎﻣﻪ اﻟﺘﻲ ﻳﺠﺐ أن ﺗﺮاﻋﻰ ﻋﻨﺪ آﺘﺎﺑﺔ اﻟﻌﻼﻗﺎت اﻟﺮﻳﺎﺿﻴﻪ ‪:‬‬ ‫أن وﺿﻊ أﺷﺎرة اﻟﺴﺎﻟﺐ ﻗﺒﻞ اﻟﻤﺘﻐﻴﺮات هﻲ ﻣﻜﺎﻓﺌﻪ ﻟﻀﺮب اﻟﻤﺘﻐﻴﺮ ﺑﺎﻟﻘﻴﻤﻪ ) ‪( -1‬‬ ‫‪ .‬ﻣﺜﻼ اﻟﻤﺘﻐﻴﺮات ) ‪ – ( x+y‬ﻣﻦ اﻟﻤﻤﻜﻦ أن ﺗﻜﺘﺐ ) ‪. -1 * ( x+y‬‬ ‫ﻳﺠﺐ أن ﺗﻜﺘﺐ اﻟﻌﻼﻗﺎت اﻟﺮﻳﺎﺿﻴﻪ وﻓﻘﺎ ﻟﻠﻄﺮﻳﻘﻪ اﻟﺘﻲ ﺗﺤﺪدهﺎ ﻟﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل‬ ‫ﺑﺤﻴﺚ ﺗﺬآﺮ آﻞ اﻟﻌﻼﻣﺎت اﻟﺮﻳﺎﺿﻴﻪ دون أﺧﺘﺼﺎر ‪ .‬ﻣﺜﺎل ‪ :‬اﻟﻌﻼﻗﻪ اﻟﺮﻳﺎﺿﻴﻪ اﻷﺗﻴﻪ‬ ‫ﻏﻴﺮ ﻣﻘﺒﻮﻟﻪ ) ) ‪ ( 2( x1 + 3x2‬هﺬﻩ اﻟﻌﻼﻗﻪ ﻟﻜﻲ ﺗﻜﻮن ﻣﻘﺒﻮﻟﻪ ﻓﻲ ﻟﻐﺔ اﻟﺒﺮﻣﺠﻪ‬ ‫ﺑﺎﺳﻜﺎل ﻳﺠﺐ أن ﺗﻜﺘﺐ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ‪ ( 2 * ( x1 + 3 * x2 ) ) :‬اﻟﻌﻼﻗﻪ‬ ‫اﻷوﻟﻰ هﻲ اﻟﺘﻲ ﺗﻌﻮدﻧﺎ ﻋﻠﻰ أﺳﺘﺨﺪاﻣﻬﺎ ﻓﻲ اﻟﺮﻳﺎﺿﻴﺎت ‪.‬‬ ‫اﻟﺮﻗﻢ اﻟﺴﺎﻟﺐ ﻣﻤﻜﻦ أن ﻳﺮﻓﻊ اﻟﻰ أي أس ﺑﺸﺮط أن ﻳﻜﻮن اﻷس ﻋﺪد ﺻﺤﻴﺢ ) ﻷن‬ ‫اﻟﺮﻗﻢ اﻟﻤﺮﻓﻮع اﻟﻰ ﻗﻴﻤﻪ ﻣﻌﻴﻨﻪ ﺳﻴﻀﺮب ﺑﻨﻔﺴﻪ ﻋﺪد ﻣﻦ اﻟﻤﺮات ﺑﻘﺪر اﻷس أذا‬ ‫آﺎن ﻋﺪد ﺻﺤﻴﺢ وﻻ ﻳﻬﻢ ﻓﻴﻤﺎ أذا آﺎن اﻷﺳﺎس ﺳﺎﻟﺐ أو ﻣﻮﺟﺐ ( ‪.‬‬ ‫ﻻﻳﺠﻮز رﻓﻊ اﻟﻘﻴﻤﻪ اﻟﺴﺎﻟﺒﻪ اﻟﻰ أس آﺴﺮي ) وذﻟﻚ ﻷن ﺣﺴﺎب ﻧﺎﺗﺞ اﻟﺮﻗﻢ‬ ‫اﻟﻤﺮﻓﻮع اﻟﻰ أس آﺴﺮي ﻳﺘﻢ ﺑﺤﺴﺎب اﻟﻠﻮﻏﺎرﻳﺜﻢ ﻟﻸﺳﺎس ‪ ,‬وﻳﻀﺮب هﺬا‬ ‫اﻟﻠﻮﻏﺎرﻳﺜﻢ ﺑﺎﻷس ‪ ,‬وﻋﻨﺪهﺎ ﻳﺤﺴﺐ ﻣﻌﻜﻮس اﻟﻠﻮﻏﺎرﻳﺜﻢ ‪ ,‬وﺣﻴﺚ أن اﻟﻠﻮﻏﺎرﻳﺜﻢ‬ ‫ﻟﻠﺮﻗﻢ اﻟﺴﺎﻟﺐ ﻏﻴﺮ ﻣﻌﺮف ﻟﺬا ﻻﻳﻤﻜﻦ أﻳﺠﺎد اﻟﻨﺘﻴﺠﻪ ( ‪.‬‬ ‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﻳﺎﺿﻴﻪ ﻻﻳﻤﻜﻦ أﺟﺮاؤهﺎ ﻋﻠﻰ اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ ‪ .‬ﻣﺜﺎل ‪( 'xyz' + 34‬‬ ‫) هﺬا ﻏﻴﺮ ﻣﻘﺒﻮل وذﻟﻚ ﻷن ) ‪ ( xyz‬هﻮ ﺳﻠﺴﻠﻪ ﺣﺮﻓﻴﻪ وﻟﻴﺲ رﻗﻢ أو ﻣﺘﻐﻴﺮ‬ ‫رﻗﻤﻲ ) ﻻﺣﻆ أﻧﻪ ﻣﺤﺼﻮر ﺑﻴﻦ ﻋﻼﻣﺘﻲ أﻗﺘﺒﺎس ) ‪( quotation mark‬‬ ‫ﻟﻠﺪﻻﻟﻪ ﻋﻠﻰ أﻧﻪ ﺳﻠﺴﻠﻪ ﺣﺮﻓﻴﻪ ( ‪.‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬ ‫‪.5‬‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫ﻣﻤﻜﻦ أﺳﺘﺨﺪام ﻗﻴﻢ اﻷﻋﺪاد اﻟﺼﺤﻴﺤﻪ ﻓﻲ اﻟﺘﻌﺎﺑﻴﺮ اﻟﺮﻳﺎﺿﻴﻪ اﻟﺘﻲ ﺗﺴﺘﺨﺪم اﻷﻋﺪاد اﻟﺤﻘﻴﻘﻴﻪ‬ ‫) وﻻ ﻳﻤﻜﻦ اﻟﻌﻜﺲ ( ‪ ,‬ﻓﺄذا آﺎﻧﺖ أﺣﺪى اﻟﻘﻴﻢ ﻷي ﻣﻦ اﻟﻌﻤﻠﻴﺎت ) * ‪ ( + , – ,‬ﻗﻴﻤﻪ‬ ‫ﺣﻘﻴﻘﻴﻪ ﻓﺄن اﻟﻘﻴﻤﻪ اﻷﺧﺮى ﺗﺤﻮل اﻟﻰ ﺣﻘﻴﻘﻴﻪ أﻟﻴﺎ ﻗﺒﻞ ﺗﻄﺒﻴﻖ اﻟﻌﻤﻠﻴﻪ ‪.‬‬ ‫أﻣﺎ ﻋﻨﺪ أﺳﺘﺨﺪام ﻋﻤﻠﻴﺔ اﻟﻘﺴﻤﻪ ) ‪ ( /‬ﻓﻴﺠﺐ أن ﻳﻜﻮن آﻼ اﻟﻘﻴﻤﺘﻴﻦ ﺣﻘﻴﻘﻴﺘﻴﻦ ‪.‬‬ ‫‪7‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫‪ 1.5.3‬اﻟﺮﻣﻮز ‪Characters‬‬ ‫وهﻲ آﺎﻓﺔ اﻟﺮﻣﻮز اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺤﺎﺳﻮب واﻟﺘﻲ ﻏﺎﻟﺒﺎ ﻣﺎ ﻧﺠﺪهﺎ ﻋﻠﻰ ﻟﻮﺣﺔ اﻟﻤﻔ ﺎﺗﻴﺢ واﻟﺘ ﻲ‬ ‫ﺗ ﺸﻤﻞ اﻟﺤ ﺮوف اﻷﺑﺠﺪﻳ ﻪ ﺳ ﻮاء آﺎﻧ ﺖ ﺣ ﺮوف آﺒﻴ ﺮﻩ ) ‪ (A . . Z‬أو ﺣ ﺮوف ﺻ ﻐﻴﺮﻩ ) ‪, ( a..z‬‬ ‫( ‪ ,‬اﻟﺮﻣ ﻮز اﻻﺧ ﺮى اﻟﺘ ﻲ ﻧﺮاه ﺎ ﻋﻠ ﻰ ﻟﻮﺣ ﺔ اﻟﻤﻔ ﺎﺗﻴﺢ ﻣﺜ ﻞ‬ ‫‪0..9‬‬ ‫اﻷرﻗ ﺎم )‬ ‫) ‪ ( + , . , / , ? , # , ! , & , % ..etc‬وﺗﺴﺘﺨﺪم ﺑﺸﻜﻞ ﻣﻔﺮد ‪ .‬وﻳﺼﺮح ﻋﻦ اﻟﺮﻣﻮز ﺑﻠﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ‬ ‫ﺑﺎﺳ ﻜﺎل ﻓ ﻲ ﺣﻘ ﻞ اﻷﻋ ﻼن ﻋ ﻦ اﻟﻤﺘﻐﻴ ﺮات ﺑﺎﻟﺪاﻟ ﻪ ) ‪ . ( char‬وﻻ ﺗﻮﺟ ﺪ هﻨ ﺎك ﻣﺠﻤﻮﻋ ﻪ ﺧﺎﺻ ﻪ ﻣ ﻦ‬ ‫اﻟﺮﻣ ﻮز ﻟﻠﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ ﺑﺎﺳ ﻜﺎل ﻷن ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ ﺑﺎﺳ ﻜﺎل ﺗ ﺴﺘﺨﺪم ﻣﺠﻤﻮﻋ ﺔ اﻟﺤ ﺮوف ﻟﻠﺤﺎﺳ ﻮب اﻟ ﺬي‬ ‫ﺗﻌﻤﻞ ﻋﻠﻴﻪ ‪.‬‬ ‫أن أآﺜﺮ ﻣﺠﺎﻣﻴﻊ اﻟﺤﺮوف أﺳﺘﺨﺪاﻣﺎ هﻤﺎ أﺛﻨﺎن ‪:‬‬ ‫‪2 ASCII‬‬ ‫)‪(American Standard Code for Information International‬‬ ‫‪3 EBCDIC‬‬ ‫)‪(Extended Binary Coded Decimal Information Code‬‬ ‫وآﻞ ﻣﻨﻬﻢ ﻟﻪ ﺻﻔﺎﺗﻪ اﻟﺨﺎﺻﻪ ﺑﻪ ‪.‬‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫آﻞ ﻣﺎ ﻳﻜﺘﺐ ﺑﻴﻦ ﻋﻼﻣﺘﻲ أﻗﺘﺒﺎس ) ' ' ( هﻮ واﺣﺪ ﻣﻦ أﺛﻨﻴﻦ ‪:‬‬ ‫‪ .1‬أذا آﺎن أآﺜﺮ ﻣﻦ رﻣﺰ واﺣﺪ ﻓﻴﻌﺘﺒﺮ ﺳﻠﺴﻠﻪ ﺣﺮﻓﻴﻪ ‪.‬‬ ‫‪ .2‬أذا آﺎن رﻣﺰ واﺣﺪ ﻓﻴﻌﺘﺒﺮ ﺣﺮف وﻣﻤﻜﻦ ﻓﻲ ﺑﻌﺾ اﻟﺤﺎﻻت ﻳﻌﺘﺒﺮ ﺳﻠﺴﻠﻪ‬ ‫ﺣﺮﻓﻴﻪ أذا آﺎن ﻣﻌﺮف آﺬﻟﻚ ‪.‬‬ ‫ﻣﺠﻤﻮﻋﺔ اﻟﺤﺮوف ﻟﻬﺎ اﻟﺨﻮاص واﻟﺼﻔﺎت اﻟﺘﺎﻟﻴﻪ ‪:‬‬ ‫‪ .1‬آ ﻞ ﺣ ﺮف ﻟ ﻪ ﻋ ﺪد ﺗﺮﺗﻴﺒ ﻲ ) ‪ ( Ordinal Value‬ﻣﺨﺘﻠ ﻒ ‪ ,‬ﺣﻴ ﺚ أن ه ﺬﻩ اﻟﺤ ﺮوف‬ ‫ﻣﺮﺗﺒﻪ وﻓﻘﺎ ﻷﺣﺪ اﻟﻨﻈﺎﻣﻴﻦ أﻋﻼﻩ ‪.‬‬ ‫وﺗﺴﺘﺨﺪم اﻟﺪاﻟﻪ ) ‪ ( Ord‬ﻟﺘﻌﻴﺪ ﻗﻴﻤﺔ اﻟﻌﺪد اﻟﺘﺮﺗﻴﺒﻲ ‪ ,‬ﻓﻤﺜﻼ أذا آﺎن آﻞ ﻣﻦ‬ ‫) ‪ ( ch1 , ch2‬هﻤﺎ ﻣﻦ ﻧﻮع ﺣﺮوف ) ‪ ( char‬وآﺎن‬ ‫‪ch1 ≠ ch2‬‬ ‫) ‪ord ( ch1 ) ≠ ord ( ch2‬‬ ‫ﻓﺄن‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫اﻟﻌﻮاﻣﻞ اﻟﻮﺣﻴﺪﻩ اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻣﻊ اﻟﻤﺘﻐﻴﺮات اﻟﺤﺮﻓﻴﻪ هﻲ‪:‬‬ ‫ﻳﺠﺐ <‬ ‫‪, <=( 0‬‬ ‫‪, ..‬‬ ‫> ) ‪= 9,‬‬ ‫اﻟﺘﺮﺗﻴﺒﻲ ‪= ,‬‬ ‫‪ .2‬اﻟﻌﺪد ) >‬ ‫أن ﺗ(ﻜﻮن ﻣﺮﺗﺒﻪ وﻣﺘﺘﺎﻟﻴﻪ ) ﻣﺘﻌﺎﻗﺒﻪ (‬ ‫ﻟﻸرﻗﺎم‬ ‫‪8‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫) '‪Ord ( '1' ) , ord ( '2' ) , ord ( '3' ) , …….., ord ( '9‬‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫ﻓﻲ ﻏﺎﻟﺒﻴﺔ اﻟﻤﺠﺎﻣﻴﻊ اﻟﺤﺮﻓﻴﻪ ﻓﺄن‬ ‫‪ ord ( ' 0 ' ) ≠ 0‬ﻟﺬا ﻓﺄن اﻟﺪاﻟﻪ‬ ‫) ‪ ( ord‬ﻻ ﺗﺤﻮل اﻷرﻗﺎم اﻟﻰ اﻟﻘﻴﻤﻪ اﻟﻤﻘﺎﺑﻠﻪ ‪.‬‬ ‫‪ .3‬ﻟﻜﻲ ﻧﺤﻮل اﻟﺮﻗﻢ ﺑﺎﻟﻤﺘﻐﻴﺮ اﻟﺤﺮﻓﻲ ) ‪ ( ch‬اﻟﻰ اﻟﻘﻴﻤﻪ اﻟﺮﻗﻤﻴﻪ اﻟﻤﻘﺎﺑﻠﻪ ) ‪( num‬‬ ‫ﻓﻴﺠﺐ أﺳﺘﺨﺪام اﻟﺼﻴﻐﻪ اﻟﺘﺎﻟﻴﻪ ‪:‬‬ ‫; ) ' ‪Num : = ord ( ch ) – ord ( ' 0‬‬ ‫‪ .4‬اﻷﻋ ﺪاد اﻟﺘﺮﺗﻴﺒﻴ ﻪ ﻟﻸﺣ ﺮف اﻟﻜﺒﻴ ﺮﻩ ) ‪ ( A , B , ….. , Z‬ﻳﺠ ﺐ أن ﺗﻜ ﻮن ﻣﺮﺗﺒ ﻪ‬ ‫وﻟﻴﺲ ﺑﺎﻟﻀﺮورﻩ أن ﺗﻜﻮن ﻣﺘﻌﺎﻗﺒﻪ ‪.‬‬ ‫‪ .5‬اﻷﻋ ﺪاد اﻟﺘﺮﺗﻴﺒﻴ ﻪ ﻟﻸﺣ ﺮف اﻟ ﺼﻐﻴﺮﻩ ) ‪ ) ( a , b , ….. , z‬أذا وﺟ ﺪت ( ﻳﺠ ﺐ أن‬ ‫ﺗﻜﻮن ﻣﺮﺗﺒﻪ وﻟﻴﺲ ﺑﺎﻟﻀﺮورﻩ أن ﺗﻜﻮن ﻣﺘﻌﺎﻗﺒﻪ ‪.‬‬ ‫أن اﻟﻔﻘﺮﺗﻴﻦ ) ‪ 4‬و ‪ ( 5‬ﺗﺆآﺪان ﻋﻠﻰ أن ﺗﻜ ﻮن اﻟﺤ ﺮوف ﻣﺮﺗﺒ ﻪ هﺠﺎﺋﻴ ﺎ ‪ ,‬وﻟﻜ ﻦ ﻟ ﻴﺲ‬ ‫ﺑﺎﻟﻀﺮورﻩ أن ﺗﻜﻮن ﻟﻬﺎ أﻋﺪاد ﺗﺮﺗﻴﺒﻴﻪ ﻣﺘﻌﺎﻗﺒﻪ ‪ ,‬ﻓﻤﺜﻼ ﻓﻲ ﻧﻈﺎم ) ‪: ( EBCDIC‬‬ ‫‪Ord ( ' I ' ) = 201‬‬ ‫‪Ord ( ' J ' ) = 209‬‬ ‫‪ .6‬اﻟﺪاﻟ ﻪ ) ‪ ( chr‬ﺗﻌﻤ ﻞ ﻋﻜ ﺲ اﻟﺪاﻟ ﻪ ) ‪ ( ord‬ﻓﻬ ﻲ ﺗﺄﺧ ﺬ ﻣﻌﺎﻣ ﻞ ﻣ ﻦ ﻧ ﻮع ﻋ ﺪد ﺻ ﺤﻴﺢ‬ ‫وﺗﻌﻄﻲ اﻟﻘﻴﻤﻪ اﻟﺤﺮﻓﻴﻪ اﻟﻤﻘﺎﺑﻠﻪ ﻟﻪ ‪ ,‬وﻣﺪى ﻋﻤﻞ هﺬﻩ اﻟﺪاﻟﻪ ه ﻮ ﻣ ﺪى ﻋﻤ ﻞ اﻟﺪاﻟ ﻪ‬ ‫) ‪.( ord‬‬ ‫; ) ‪num : = ord ( ch‬‬ ‫; ) ‪ch : = chr ( num‬‬ ‫‪ .7‬ﻋﻤﻠﻴﺎ أذا ﻣﺎ أﺧﺬﻧﺎ رﻗﻢ ) ‪ ( num‬ﻣﻦ ﻧﻮع اﻷﻋ ﺪاد اﻟ ﺼﺤﻴﺤﻪ ) ‪( 0 ≤ num ≤ 9‬‬ ‫ﻓﺄن اﻟﺤﺮف اﻟﻤﻘﺎﺑﻞ ﻟﻪ هﻮ وﻓﻘﺎ ﻟﻠﺼﻴﻐﻪ اﻟﺘﺎﻟﻴﻪ ‪:‬‬ ‫; )) ' ‪ch : = chr ( num + ord ( ' 0‬‬ ‫ﻣﺜﻼ ‪:‬‬ ‫' ‪chr ( 3 + ord ( ' 0 ' ) ) = ' 3‬‬ ‫‪9‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫‪ 1.5.4‬اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ ‪STRING‬‬ ‫وه ﻲ ﻋﺒ ﺎرﻩ ﻋ ﻦ ﻣﺘﻮاﻟﻴ ﻪ ﻣ ﻦ اﻟﺮﻣ ﻮز اﻟﻤﺒﻴﻨ ﻪ ﻓ ﻲ اﻟﻔﻘ ﺮﻩ اﻟ ﺴﺎﺑﻘﻪ ‪ ,‬آ ﺬﻟﻚ ﻳﻤﻜ ﻦ أن ﺗﺤﺘ ﻮي‬ ‫اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﻪ ﻋﻠﻰ ﻓﺮاغ وﻳﻌﺘﺒﺮ رﻣﺰ وﻟﻜﻦ ﻻ ﻳﻤﻜ ﻦ أن ﺗﺤﺘ ﻮي اﻟ ﺴﻼﺳﻞ اﻟﺤﺮﻓﻴ ﻪ ﻋﻠ ﻰ ﻋﻼﻣ ﺎت‬ ‫اﻷﻗﺘﺒ ﺎس ‪ .‬أن اﻟ ﺴﻼﺳﻞ اﻟﺤﺮﻓﻴ ﻪ ﺗ ﺴﺘﺨﺪم ﻟﺘﻌﺮﻳ ﻒ اﻟﻤﻌﻠﻮﻣ ﺎت ﻏﻴ ﺮ اﻟﺮﻗﻤﻴ ﻪ ﻣﺜ ﻞ اﻷﺳ ﻤﺎء ‪ ,‬اﻟﻌﻨ ﺎوﻳﻦ‬ ‫وﻏﻴﺮهﺎ‪ ,‬وأن ﻋﺪد اﻟﺤﺮوف اﻟﺘﻲ ﺗﺴﺘﻮﻋﺒﻬﺎ اﻟﺴﻠﺴﻠﻪ اﻟﺤﺮﻓﻴﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل هﻲ ) ‪. ( 0 .. 255‬‬ ‫وﻳ ﺼﺮح ﻋ ﻦ اﻟﺴﻠ ﺴﻠﻪ اﻟﺤﺮﻓﻴ ﻪ ﻓ ﻲ ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ ﺑﺎﺳ ﻜﺎل ﻓ ﻲ ﺣﻘ ﻞ اﻷﻋ ﻼن ﻋ ﻦ اﻟﻤﺘﻐﻴ ﺮات ﺑﺎﻟﺪاﻟ ﻪ‬ ‫) ‪ . ( string‬ﻣﺜﺎل‬ ‫'‪'Xyz‬‬ ‫'‪'Ali Abbas‬‬ ‫'‪'Apollo-17‬‬ ‫'‪'Do you wish to try again‬‬ ‫اﻟﺠﻤﻠﻪ اﻷﺧﻴﺮﻩ ﺗﻌﺘﺒﺮ ﺳﻠﺴﻠﻪ ﺣﺮﻓﻴ ﻪ ‪ ,‬آ ﺬﻟﻚ ﻓ ﺄن اﻷرﻗ ﺎم ﻋﻨ ﺪﻣﺎ ﺗﻌ ﺮف ﻣ ﻊ اﻟ ﺴﻼﺳﻞ اﻟﺤﺮﻓﻴ ﻪ‬ ‫ﺗﻌﺎﻣﻞ آﺮﻣﻮز وﻟﻴﺲ أرﻗﺎم ‪.‬‬ ‫اﻟﺘﻌﺎﺑﻴﺮ اﻟﻤﻨﻄﻘﻴﻪ ‪THE BOOLEAN EXPRESSIONS‬‬ ‫‪1.6‬‬ ‫وه ﻲ اﻟﺘﻌ ﺎﺑﻴﺮ اﻟﺘ ﻲ ﺗﻤﺜ ﻞ ﻧﺘﻴﺠﺘﻬ ﺎ ﺑﺤﺎﻟ ﻪ واﺣ ﺪﻩ ﻣ ﻦ أﺛﻨﺘ ﻴﻦ وهﻤ ﺎ ) ﺻ ﺢ أو ﺧﻄ ﺄ (‬ ‫) ‪ , (true OR false‬وهﻨﺎك ﺛﻼث ﻋﻮاﻣﻞ ﻣﻨﻄﻘﻴﻪ وهﻲ ) ‪. (And , Or , Not‬‬ ‫واﻟﺘﻌﺒﻴﺮ اﻟﻤﻨﻄﻘﻲ ﻳﻌﻴ ﺪ اﻟﻘﻴﻤ ﻪ ) ‪ ( 1‬ﻋﻨ ﺪﻣﺎ ﻳﻜ ﻮن اﻟﺘﻌﺒﻴ ﺮ ) ‪ ( TRUE‬واﻟﻘﻴﻤ ﻪ ) ‪ ( 0‬ﻋﻨ ﺪﻣﺎ‬ ‫ﻳﻜﻮن اﻟﺘﻌﺒﻴﺮ ) ‪ . ( FALSE‬وهﻲ ﺗﺴﺘﺨﺪم ﻟﻮﺻ ﻒ أي ﺗﻌﺒﻴ ﺮ ﻓﻴﻤ ﺎ أذا آ ﺎن ﺻ ﺢ أو ﺧﻄ ﺄ ‪ .‬أن أﻧ ﻮاع‬ ‫اﻟﻤﺘﻐﻴﺮات اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﻬﺬا اﻟﻐﺮض ﻳﺼﺮح ﻋﻨﻬﺎ ﻓﻲ ﺣﻘﻞ اﻟﻤﺘﻐﻴﺮات ﺑﺎﻟﺪاﻟﻪ ) ‪.( Boolean‬‬ ‫‪ 1.6.1‬اﻟﻌﻤﻠﻴﺎت اﻟﻤﻨﻄﻘﻴﻪ ‪LOGIC OPERATORS‬‬ ‫هﻨﺎك ﺛﻼث أﻧﻮاع ﻣ ﻦ اﻟﻌﻤﻠﻴ ﺎت اﻟﻤﻨﻄﻘﻴ ﻪ وه ﻲ ) ‪ ( AND , OR , NOT‬آ ﻞ ﻣﻨﻬ ﺎ ﻳﺘﻌﺎﻣ ﻞ‬ ‫ﻣ ﻊ اﻟﺘﻌ ﺎﺑﻴﺮ اﻟ ﺸﺮﻃﻴﻪ ) أي اﻟﺘ ﻲ ﺗﺤﺘ ﻮي ﺷ ﺮط (‪ .‬آ ﻞ واﺣ ﺪ ﻣ ﻦ ه ﺬﻩ اﻟﺘﻌ ﺎﺑﻴﺮ ﻟ ﻪ ﺗ ﺄﺛﻴﺮ ﻣﺨﺘﻠ ﻒ ﻋﻠ ﻰ‬ ‫اﻟﺘﻌ ﺎﺑﻴﺮ اﻟ ﺸﺮﻃﻴﻪ ‪ .‬أدﻧ ﺎﻩ أﻣﺜﻠ ﻪ ﺗﺒ ﻴﻦ آﻴﻔﻴ ﺔ أﺳ ﺘﺨﺪام ه ﺬﻩ اﻟﺘﻌ ﺎﺑﻴﺮ واﻟﺘ ﻲ ﻣ ﻦ اﻟﻤﻤﻜ ﻦ أن ﺗ ﺴﺘﺨﺪم ﺑ ﻴﻦ‬ ‫ﺗﻌﺒﻴﺮﻳﻦ أو أآﺜﺮ ﻣﻦ اﻟﺘﻌﺎﺑﻴﺮ اﻟﺸﺮﻃﻴﻪ‪.‬‬ ‫• ‪AND‬‬ ‫‪If (Str1 = 'a') AND (Str2 = 'b') then‬‬ ‫; ) '‪Writeln ( 'Yes, you got it right.‬‬ 10 ‫ ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬.‫ ﺗﺄﻟﻴﻒ د‬/ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل‬ ( And ) Expression 1 true false true false ( ‫ ﺟﺪول اﻟﺼﺪق ﻟﻠﻌﺎﻣﻞ ) و‬: ( 1.1 ) ‫ﺟﺪول‬ Expression 2 true true false false AND (result) true false false false OR • If (Str1 = 'a') OR (Str2 = 'b') then writeln('Yes, you got it right.'); ( Or ) ( ‫ ﺟﺪول اﻟﺼﺪق ﻟﻠﻌﺎﻣﻞ ) أو‬: ( 1.2 ) ‫ﺟﺪول‬ Expression 1 true false true false Expression 2 true true false false OR (result) true true true false NOT • ( Not ) ( ‫ ﺟﺪول اﻟﺼﺪق ﻟﻠﻌﺎﻣﻞ ) ﻻ‬: ( 1.3 ) ‫ﺟﺪول‬ Input true false Output false true ‫‪11‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫اﻟﻌﺎﻣﻞ ) ‪ ( NOT‬ﻳﺨﺘﻠﻒ ﻋ ﻦ اﻟﻌ ﺎﻣﻠﻴﻦ اﻟ ﺴﺎﺑﻘﻴﻦ ﺣﻴ ﺚ أﻧ ﻪ ﻳﺘﻘﺒ ﻞ ﻣ ﺪﺧﻞ واﺣ ﺪ وداﺋﻤ ﺎ ﻳﻌﻜ ﺲ‬ ‫ﺣﺎﻟﺔ اﻟﻌﺒ ﺎرﻩ اﻟﺘ ﻲ ﻳ ﺪﺧﻞ ﻋﻠﻴﻬ ﺎ ﻓ ﺄذا آﺎﻧ ﺖ ﺻ ﺤﻴﺤﻪ ﻓﻴﺠﻌﻠﻬ ﺎ ﺧﺎﻃﺌ ﻪ وأن آﺎﻧ ﺖ ﺧﺎﻃﺌ ﻪ ﻳﺠﻌﻠﻬ ﺎ‬ ‫ﺻﺤﻴﺤﻪ‪.‬‬ ‫ﺟﺪول ) ‪ : ( 1.4‬أهﻢ أﻧﻮاع اﻟﻤﺘﻐﻴﺮات اﻟﻤﺴﺘﺨﺪﻣﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل‬ ‫اﻟﻤﻼﺣﻈﺎت‬ ‫أﻋﺪاد ﺻﺤﻴﺤﻪ‬ ‫ﻣﻮﺟﺒﻪ ﻓﻘﻂ‬ ‫أﻋﺪاد ﺻﺤﻴﺤﻪ‬ ‫ﻣﻮﺟﺒﻪ ﻓﻘﻂ‬ ‫أﻋﺪاد ﺻﺤﻴﺤﻪ‬ ‫أﻋﺪاد ﺻﺤﻴﺤﻪ‬ ‫أﻋﺪاد ﺣﻘﻴﻘﻴﻪ‬ ‫أﻋﺪاد ﺣﻘﻴﻘﻴﻪ‬ ‫أﻋﺪاد ﺣﻘﻴﻘﻴﻪ‬ ‫أﻋﺪاد ﺣﻘﻴﻘﻴﻪ‬ ‫ﻏﻴﺮ رﻗﻤﻴﻪ‬ ‫ﻏﻴﺮ رﻗﻤﻴﻪ‬ ‫ﻏﻴﺮ رﻗﻤﻴﻪ‬ ‫اﻟﺤﺠﻢ‬ ‫)ﺑﺎﻳﺖ (‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪6‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪10‬‬ ‫‪1‬‬ ‫‪255‬‬ ‫‪1‬‬ ‫اﻟﻤﺪى‬ ‫‪0 .. 255‬‬ ‫‪0 .. 65535‬‬ ‫‪-128 .. 127‬‬ ‫‪-2146473648 … 2146473647‬‬ ‫‪2.9x10-39 .. 1.7x1038‬‬ ‫‪1.5x10-45 .. 3.4x1038‬‬ ‫‪5.0x10-324 .. 1.7x10308‬‬ ‫‪3.4x10-4932 .. 1.1x104932‬‬ ‫ﺣﺮف واﺣﺪ‬ ‫‪ 255‬ﺣﺮف‬ ‫‪True / False‬‬ ‫اﻟﻨﻮع‬ ‫‪Byte‬‬ ‫‪Word‬‬ ‫‪Shortint‬‬ ‫‪Longint‬‬ ‫‪Real‬‬ ‫‪Sigle‬‬ ‫‪Double‬‬ ‫‪Extended‬‬ ‫‪Char‬‬ ‫‪String‬‬ ‫‪Boolean‬‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫أن أﺳﻨﺎد ﻗﻴﻤﻪ ﻟﻤﺘﻐﻴﺮ ﻣﻦ ﻧﻮع ﻣﻌﻴﻦ ﺧﺎرج اﻟﻤﺪى اﻟﻤﺤﺪد ﻟﻪ ﺳﻴﺆدي اﻟﻰ ﺣﺪوث ﺧﻄﺄ ‪ ,‬هﺬا‬ ‫اﻟﺨﻄﺄ أﻣﺎ أن ﻳﻮﻗﻒ اﻟﺘﻨﻔﻴﺬ أو ﻳﺆدي اﻟﻰ ﻇﻬﻮر ﻧﺘﺎﺋﺞ ﻏﻴﺮ ﻣﺘﻮﻗﻌﻪ ‪.‬‬ ‫‪12‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫ﺟﺪول ) ‪ : ( 1.5‬ﺑﻌﺾ اﻟﺪوال اﻟﻤﻬﻤﻪ اﻟﻤﺴﺘﺨﺪﻣﻪ ﻣﻊ ﻟﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل‬ ‫ﻣﺜﺎل‬ ‫‪Abs ( -5 ) = 5‬‬ ‫اﻟﻮﻇﻴﻔﻪ‬ ‫ﻷﻳﺠ ﺎد اﻟﻘﻴﻤ ﻪ اﻟﻤﻄﻠﻘ ﻪ ﻟﻌ ﺪد‬ ‫ﺳﺎﻟﺐ ) ﻳﺤﻮل اﻟﻌﺪد اﻟ ﺴﺎﻟﺐ‬ ‫اﻟﻰ ﻣﻮﺟﺐ (‬ ‫أﻳﺠﺎد ﻣﺮﺑﻊ ﻋﺪد‬ ‫أﻳﺠﺎد اﻟﺠ ﺬر اﻟﺘﺮﺑﻴﻌ ﻲ ﻟﻌ ﺪد‬ ‫ﻣﻮﺟﺐ‬ ‫اﻳﺠﺎد ﺟﻴﺐ زاوﻳﻪ‬ ‫أﻳﺠﺎد ﺟﻴﺐ ﺗﻤﺎم زاوﻳﻪ‬ ‫ﺗﺤﻮل اﻷﻋﺪاد اﻟﻜ ﺴﺮﻳﻪ اﻟ ﻰ‬ ‫أﻋﺪاد ﺻﺤﻴﺤﻪ وذﻟﻚ ﺑﺤﺬف‬ ‫اﻟﻜﺴﺮ‬ ‫ﻳﻘ ﺮب اﻟﻌ ﺪد اﻟﻜ ﺴﺮي اﻟ ﻰ‬ ‫أﻗﺮب ﻋﺪد ﺻﺤﻴﺢ‬ ‫ﻳﺤ ﻮل اﻟﻌ ﺪد اﻟﻜ ﺴﺮي اﻟ ﻰ‬ ‫ﻋﺪد ﺻﺤﻴﺢ‬ ‫ﻳﻌﻤ ﻞ ﻋﻠ ﻰ زﻳ ﺎدة اﻟﻤﺘﻐﻴ ﺮ‬ ‫ﺑﻘ ﺪار واﺣ ﺪ أو ﺣ ﺴﺐ ﻣ ﺎ‬ ‫ﻣﺤﺪد‬ ‫ﺗﻘﻠﻴﺺ ﻗﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ ﺑﻤﻘ ﺪار‬ ‫واﺣﺪ أو ﺣﺴﺐ ﻣﺎ ﻣﺤﺪد‬ ‫ﺗﻌﻄ ﻲ اﻟﻘﻴﻤ ﻪ اﻟ ﺴﺎﺑﻘﻪ‬ ‫ﻟﻠﻤﺘﻐﻴﺮ‬ ‫ﺗﻌﻄ ﻲ اﻟﻘﻴﻤ ﻪ اﻟﻼﺣﻘ ﻪ‬ ‫ﻟﻠﻤﺘﻐﻴﺮ‬ ‫ﻳﻔﺤﺺ اﻟﻤﺘﻐﻴﺮ ﻓﻴﻤﺎ أذا آﺎن‬ ‫ﻋ ﺪد ﻓ ﺮدي أم ﻻ وﻧﺘﻴﺠﺘ ﻪ‬ ‫ﺗﻜﻮن ﺻﺢ أو ﺧﻄﺄ‬ ‫ﺗﻌﻄ ﻲ ﻗﻴﻤ ﺔ اﻟﻠﻮﻏ ﺎرﻳﺘﻢ‬ ‫اﻟﻄﺒﻴﻌ ﻲ ) أي ﻟﻸﺳ ﺎس‬ ‫)‪((e‬‬ ‫اﻟﺪاﻟﻪ‬ ‫‪abs‬‬ ‫‪Sqr ( 5 ) = 25‬‬ ‫‪Sqrt ( 25 ) = 5.0000000000E+00‬‬ ‫‪Sin ( 30 * Pi / 180 ) = 5.0000000000E-01‬‬ ‫‪Cos ( 60 * Pi / 180 ) = 5.0000000000E-01‬‬ ‫‪Trunk ( 5. 2431 ) = 5‬‬ ‫‪Trunk ( -5.6 ) = -5‬‬ ‫‪Round ( 5.2431 ) = 5‬‬ ‫‪Round ( 5.765 ) = 6‬‬ ‫‪Round ( -5.8 ) = -6‬‬ ‫‪Int ( 2.31 ) = 2.0000000000E+00‬‬ ‫ﻧﻔﺮض أن ﻗﻴﻤﺔ ) ‪ ( x‬هﻲ ‪x = 10‬‬ ‫ﻋﻠﻴﻪ ﻓﺄن ) ) ‪ ( inc ( x‬ﺳﺘﺆدي اﻟﻰ ‪x = 11‬‬ ‫أﻣﺎ )) ‪ ( inc ( x, 4‬ﺳﺘﺆدي اﻟﻰ ‪x = 14‬‬ ‫ﻧﻔﺮض أن ﻗﻴﻤﺔ ) ‪ ( x‬هﻲ ‪x = 15‬‬ ‫ﻋﻠﻴﻪ ﻓﺄن ) ) ‪ ( dec ( x‬ﺳﺘﺆدي اﻟﻰ ‪x = 14‬‬ ‫أﻣﺎ ) ) ‪ ( dec ( x , 5‬ﺳﺘﺆدي اﻟﻰ ‪x = 10‬‬ ‫أذا آﺎﻧﺖ ) ‪ ( x = 10‬ﻓﺄن ) ‪( pred ( x ) = 9‬‬ ‫أذا آﺎﻧﺖ ) ‪ ( x = 10‬ﻓﺄن ) ‪(succ ( x ) = 11‬‬ ‫أذا آﺎﻧﺖ ) ‪ ( x = 9‬ﻓﺄن‬ ‫) ) ‪ ( odd ( x‬ﺳﺘﻜﻮن ) ‪( true‬‬ ‫‪Ln ( 8 ) = 2.0794415417E+0‬‬ ‫‪sqr‬‬ ‫‪sqrt‬‬ ‫‪sin‬‬ ‫‪cos‬‬ ‫‪trunk‬‬ ‫‪round‬‬ ‫‪Int‬‬ ‫‪inc‬‬ ‫‪dec‬‬ ‫‪pred‬‬ ‫‪succ‬‬ ‫‪odd‬‬ ‫‪ln‬‬ ‫‪13‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫ﻣﻼﺣﻈﻪ ‪:‬‬ ‫هﻨﺎك ﻧﻮﻋﺎن ﻣﻦ اﻟﺪوال ‪ ..‬اﻟﺪوال اﻟﻘﻴﺎﺳﻴﻪ وهﻲ اﻟﺪوال اﻟﻤﻌﺮﻓﻪ ﺿﻤﻦ ﻟﻐﺔ اﻟﺒﺮﻣﺠﻪ‬ ‫ﻣﺜﻞ اﻟﺪوال ﻓﻲ اﻟﺠﺪول ) ‪ , ( 1.5‬ودوال ﺗﻌﺮف ﻣﻦ ﻗﺒﻞ اﻟﻤﺴﺘﺨﺪم واﻟﺘﻲ ﺳﻨﺸﺮﺣﻬﺎ‬ ‫ﻓﻲ اﻟﻔﺼﻞ اﻟﺨﺎﻣﺲ ‪.‬‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫ﺗﻘﺎس اﻟﺰواﻳﺎ ﻓﻲ اﻟﺪوال اﻟﺘﻲ ﺗﺴﺘﺨﺪم اﻟﺰواﻳﺎ ) ﻓﻲ ﻟﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ( ﺑﻤﺎ ﻳﺴﻤﻰ‬ ‫ﺑﺎﻟﻨﺼﻒ ﻗﻄﺮﻳﻪ ) ‪ ( Radians‬وﻟﻴﺲ ﺑﺎﻟﺪرﺟﺎت آﻤﺎ هﻮ اﻟﺤﺎل ﻓﻲ اﻟﺮﻳﺎﺿﻴﺎت ‪,‬‬ ‫وﻟﺘﺤﻮﻳﻞ أي زاوﻳﻪ ) ‪ ( angle‬ﻣﻦ اﻟﻘﻴﺎس ﺑﺎﻟﺪرﺟﺎت اﻟﻰ اﻟﻨﺼﻒ ﻗﻄﺮﻳﻪ ﻧﺘﺒﻊ‬ ‫اﻟﻌﻼﻗﻪ اﻟﺘﺎﻟﻴﻪ ‪:‬‬ ‫‪Angle ( in radians ) : = angle ( in degree ) * Pi / 180‬‬ ‫ﺣﻴﺚ أن ) ‪ ( Pi‬هﻲ اﻟﻨﺴﺒﻪ اﻟﺜﺎﺑﺘﻪ وهﻲ ﻣﻦ اﻟﻘﻴﻢ اﻟﻤﺨﺰوﻧﻪ ﻓﻲ ﻟﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل‬ ‫وﺳﻴﻌﻮض ﻋﻨﻬﺎ أﻟﻴﺎ ﺑﻘﻴﻤﺘﻬﺎ اﻟﺒﺎﻟﻐﻪ ) ‪. ( 3.1415926535897932385‬‬ ‫ﻣﻼﺣﻈﻪ ‪//:‬‬ ‫‪Ord ( true ) = 1‬‬ ‫‪Ord ( false ) = 0‬‬ ‫‪Pred ( true ) = false‬‬ ‫‪Succ ( false ) = true‬‬ ‫ﺗﻮﻟﻴﺪ اﻷرﻗﺎم اﻟﻌﺸﻮاﺋﻲ ‪RANDOM NUMBERS GENERATION‬‬ ‫‪1.7‬‬ ‫ﺗﺤﺘﺎج ﺑﻌﺾ اﻟﺘﻄﺒﻴﻘﺎت اﻟﻰ أﺳﺘﺨﺪام أرﻗﺎم ﻋ ﺸﻮاﺋﻴﻪ وه ﺬا ﻣﻤﻜ ﻦ ﻓ ﻲ ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﻪ ﺑﺎﺳ ﻜﺎل وذﻟ ﻚ ﻣ ﻦ‬ ‫ﺧﻼل أﺳﺘﺨﺪام اﻷﻣﺮ ) ‪ ( Random‬اﻟﺬي ﻳﻌﻤﻞ ﻋﻠﻰ ﺗﻮﻟﻴﺪ رﻗﻢ ﺑ ﺸﻜﻞ ﻋ ﺸﻮاﺋﻲ ‪ ,‬وه ﻮ ﻳﻌﻤ ﻞ وﻓﻘ ﺎ ﻟﻤ ﺎ‬ ‫ﻳﻠﻲ ‪:‬‬ ‫• ﻳﺴﺘﺨﺪم ﻣ ﻊ اﻷﻣ ﺮ ) ‪ ( Randomize‬ﺣﻴ ﺚ ﻳﺠ ﺐ أن ﻳ ﺴﺒﻖ أﺳ ﺘﺨﺪام اﻷﻣ ﺮ ) ‪ ( Random‬آﺘﺎﺑ ﺔ‬ ‫اﻷﻣﺮ ) ‪ , ( Randomize‬وﺑﺬﻟﻚ ﻓﺄن اﻷﻣﺮ ) ‪ ( Random‬ﺳ ﻴﻮﻟﺪ أرﻗ ﺎم ﻋ ﺸﻮاﺋﻴﻪ ﺗﺘ ﺮاوح ﻗﻴﻤﻬ ﺎ‬ ‫ﺑﻴﻦ اﻟﺼﻔﺮ واﻟﻮاﺣﺪ ) ﻏﻴﺮ داﺧﻞ ( ) أي أرﻗﺎم آﺴﺮﻳﻪ ﻣﻮﺟﺒﻪ ﻗﻴﻤﺘﻬﺎ أﻗﻞ ﻣﻦ واﺣﺪ ( ﻣﺜﺎل ‪:‬‬ ‫‪14‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫; ‪Randomize‬‬ ‫; ‪X : = random‬‬ ‫هﻨﺎ اﻟﻤﺘﻐﻴﺮ ) ‪ ( x‬ﺗﻜﻮن ﻗﻴﻤﺘﻪ ) ‪ ( 0 <= x < 1‬وﻓﻲ آﻞ ﻣﺮﻩ ﻳﺘﻢ ﺗﻨﻔﻴﺬ هﺬا اﻷﻣﺮ ﺳﻨﺤﺼﻞ ﻋﻠﻰ ﻗﻴﻤﻪ‬ ‫ﺟﺪﻳﺪﻩ ﺿﻤﻦ ﻧﻔﺲ اﻟﻤﺪى ‪.‬‬ ‫• اﻟﻄﺮﻳﻘﻪ اﻟﺜﺎﻧﻴﻪ هﻲ ﺑﺄﺳﺘﺨﺪام اﻷﻣﺮ ) ‪ ( Randomize‬أﻳﻀﺎ ﺛﻢ اﻷﻣﺮ ) ‪ ( Random‬ﻋﻠﻰ أن‬ ‫ﻳﺤﺘﻮي اﻷﻣﺮ ) ‪ ( Random‬ﻋﻠﻰ اﻟﻤﺪى اﻟﻤﻄﻠﻮب أﻳﺠﺎد اﻟﺮﻗﻢ اﻟﻌﺸﻮاﺋﻲ ﺿﻤﻨﻪ ) أي أﻧﻪ ﺳﻴﻮﻟﺪ‬ ‫أﻋﺪاد ﺻﺤﻴﺤﻪ ﻣﻮﺟﺒﻪ ﻋﺸﻮاﺋﻴﺎ ﺗﺘﺮاوح ﻗﻴﻤﻬﺎ ﺑﻴﻦ اﻟﺼﻔﺮ واﻟﻌﺪد اﻟﻤﺤﺪد ﺑﻴﻦ اﻟﻘﻮﺳﻴﻦ ﺑﻌﺪ (‬ ‫) ‪ Random‬واﻟﺬي ﻳﻤﺜﻞ اﻟﺤﺪ اﻷﻋﻠﻰ ( ‪ ,‬ﻣﺜﺎل ‪:‬‬ ‫; ‪Randomize‬‬ ‫; ) ‪X : = random ( 100‬‬ ‫هﻨﺎ ﺗﻜ ﻮن ﻗﻴﻤ ﺔ اﻟﻤﺘﻐﻴ ﺮ ) ‪ ( 0 <= x < 100 ) ( x‬وﻓ ﻲ آ ﻞ ﻣ ﺮﻩ ﻳﻌ ﺎد ﺗﻨﻔﻴ ﺬ ه ﺬا اﻷﻣ ﺮ ﺳﻨﺤ ﺼﻞ‬ ‫ﻋﻠﻰ ﻗﻴﻤﻪ ﺟﺪﻳﺪﻩ ‪ .‬أن اﻟﻤﺪى اﻟﻤﺤﺪد ﻳﻤﻜﻦ ﺗﻐﻴﺮﻩ ﺣﺴﺐ ﻃﺒﻴﻌﺔ اﻟﺘﻄﺒﻴﻖ اﻟﻤﺮاد ﺗﻨﻔﻴﺬﻩ ‪.‬‬ ‫• اﻟﻄﺮﻳﻘﻪ اﻟﺜﺎﻟﺜﻪ ﻷﺳﺘﺨﺪام اﻷﻣﺮ ) ‪ ( Random‬هﻲ ﺑﺪون أﺳﺘﺨﺪام اﻷﻣﺮ ) ‪ ( Randomize‬وﺑ ﺪﻻ‬ ‫ﻣﻨﻪ ﻧﺴﺘﺨﺪم اﻟﻤﺘﻐﻴﺮ ) ‪ ( Randseed‬ﻗﺒﻞ اﻷﻣﺮ ) ‪ ( Random‬ﻋﻠﻰ أن ﻳﺘﻢ أﺳﻨﺎد ﻗﻴﻤﻪ ﻟﻠﻤﺘﻐﻴ ﺮ (‬ ‫) ‪ , Randseed‬هﺬﻩ اﻟﻄﺮﻳﻘ ﻪ ﻣ ﻦ وﺟﻬ ﺔ ﻧﻈ ﺮي ه ﻲ اﻷﻓ ﻀﻞ ﻷن اﻟﻄ ﺮﻳﻘﺘﻴﻦ اﻟ ﺴﺎﺑﻘﺘﻴﻦ ﺳ ﺘﻮﻟﺪان‬ ‫ﻧﻔﺲ ﻣﺠﻤﻮﻋﺔ اﻟﻘﻴﻢ ﻋﻨﺪ أﻳﻘ ﺎف اﻟﺒﺮﻧ ﺎﻣﺞ وأﻋ ﺎدة ﺗﻨﻔﻴ ﺬﻩ ﻣﻤ ﺎ ﻻ ﻳ ﺆدي اﻟ ﻰ ﻋ ﺸﻮاﺋﻴﻪ ﺣﻘﻴﻘﻴ ﻪ ‪ ,‬ﺑﻴﻨﻤ ﺎ‬ ‫هﺬﻩ اﻟﻄﺮﻳﻘﻪ ﺳﺘﻮﻟﺪ ﻣﺠﻤﻮﻋﺔ أرﻗﺎم ﻋﺸﻮاﺋﻴﻪ ﻣﺨﺘﻠﻔﻪ ﻓﻲ آﻞ ﻣﺮﻩ ﻳﺘﻢ ﻓﻴﻬﺎ أﻋ ﺎدة اﻟﺘﻨﻔﻴ ﺬ ﻋﻠ ﻰ أن ﻳ ﺘﻢ‬ ‫أﺳﻨﺎد ﻗﻴﻢ ﻣﺨﺘﻠﻔﻪ ﻟﻠﻤﺘﻐﻴﺮ ) ‪ ( Randseed‬ﻋﻨﺪ آﻞ ﺗﻨﻔﻴﺬ ‪ ,‬ﻣﺜﺎل‬ ‫; ‪Randseed : = 1200‬‬ ‫; ‪X : = random‬‬ ‫‪OR‬‬ ‫; ‪Randseed : = 3425‬‬ ‫; ) ‪X : = random ( 1000‬‬ ‫ﻓﻲ اﻟﺤﺎﻟﻪ اﻷوﻟﻰ ﻓﺄن اﻟﻤﺘﻐﻴﺮ ) ‪ ( randseed‬أﺳﻨﺪ ﻟﻪ ﻗﻴﻤﻪ وهﻲ ) ‪ ( 1200‬ووﻓﻘﺎ ﻟﻬﺎ ﺳﻴﻮﻟﺪ أرﻗﺎم‬ ‫ﻋﺸﻮاﺋﻴﻪ آﺴﺮﻳﻪ أﻗﻞ ﻣﻦ واﺣﺪ وﻟﻮ أﻋﺪﻧﺎ اﻟﺘﻨﻔﻴﺬ ﻣﻊ أﺳﻨﺎد ﻗﻴﻤﻪ ﻣﺨﺘﻠﻔﻪ ﻟﻠﻤﺘﻐﻴﺮ ) ‪ ( randseed‬ﻓﺄن رﻗﻢ‬ ‫ﻋﺸﻮاﺋﻲ ﻣﺨﺘﻠﻒ ﺳﺘﻮﻟﺪ ) ﺣﺎول ﺗﻨﻔﻴﺬ اﻟﻄﺮﻳﻘﺘﻴﻦ وﻻﺣﻆ اﻟﻔﺮق ( ‪.‬‬ ‫أﻣﺎ اﻟﻤﺜﺎل اﻟﺜﺎﻧﻲ ﻓﺄﻧﻪ ﺳﻴﻮﻟﺪ أرﻗﺎم ﻋﺸﻮاﺋﻴﻪ أآﺒﺮ ﻣﻦ اﻟﺼﻔﺮ وأﺻﻐﺮ ﻣﻦ ) ‪. ( 1000‬‬ ‫‪15‬‬ ‫أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﻪ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﻪ ﺑﺎﺳﻜﺎل ‪ /‬ﺗﺄﻟﻴﻒ د‪ .‬ﻧﻀﺎل ﺧﻀﻴﺮ اﻟﻌﺒﺎدي‬ ‫اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ‬ ‫أواﻣﺮ اﻷدﺧﺎل واﻷﺧﺮاج ‪INPUT / OUTPUT INSTRUCTIONS‬‬ ‫اﻟﻤﻘﺪﻣﻪ‬ ‫ﺟﻤﻴ ﻊ اﻟﻠﻐ ﺎت اﻟﻄﺒﻴﻌﻴ ﻪ اﻟﺘ ﻲ ﻳﺘﻌﺎﻣ ﻞ ﺑﻬ ﺎ اﻷﻧ ﺴﺎن آﻮﺳ ﻴﻠﻪ ﻟﻠﺘﺨﺎﻃ ﺐ واﻟﺘﻮاﺻ ﻞ ﻟﻬ ﺎ ﻗﻮاﻋ ﺪ‬ ‫وﺿﻮاﺑﻂ ﺗﺤﺪد أﻟﻴﺔ أﺳﺘﺨﺪاﻣﻬﺎ ‪ ,‬وﻟﻤﺎ آﺎﻧﺖ ﻟﻐﺎت اﻟﺒﺮﻣﺠﻪ ﺗﺼﻨﻒ ﻋﻠﻰ أﻧﻬ ﺎ ﻣ ﻦ اﻟﻠﻐ ﺎت اﻟﻌﻠﻴ ﺎ‬ ‫) أي اﻟﻠﻐﺎت اﻟﻘﺮﻳﺒﻪ ﻣﻦ ﻟﻐﺎت اﻟﺒﺸﺮ ( ﻓﻜﺎن ﻻ ﺑ ﺪ وأن ﺗﻜ ﻮن ﻟﻬ ﺎ ﻗﻮاﻋ ﺪ ﺗﺤ ﺪد أﻟﻴ ﺔ أﺳ ﺘﺨﺪاﻣﻬﺎ‬ ‫ﻟﺘﻜ ﻮن واﺿ ﺤﻪ ﻟﻠﻤﺘﻌﺎﻣ ﻞ ﻣﻌﻬ ﺎ وآ ﺬﻟﻚ ﻟﻠﻤﺘ ﺮﺟﻢ داﺧ ﻞ اﻟﺤﺎﺳ ﻮب ‪ .‬ﻋﻠﻴ ﻪ ﻓ ﺄ