برمجة بلغة الجافا 1 PDF

Summary

هذا المستند هو مقدمة حول البرمجة باستخدام لغة الجافا، ويغطي أساسيات اللغة، مثل أهميتها واستخداماتها، بالإضافة لخطوات تنفيذ برنامج بلغة جافا ومميزاتها.

Full Transcript

‫ﻣﻘﺪﻣﺔ ﻟﻠﺒﺮﻣﺠﺔ ﺑﺎﺳﺘﺨﺪام‬ ‫ﻟﻐﺔ اﻟﺠﺎﻓﺎ‪java‬‬ ‫‪49‬‬ ‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫اﻟﮭﺪف ﻣﻦ اﻟﻤﺤﺎﺿﺮة اﻷوﻟﻰ ‪:‬‬ ‫‪ – 1‬ﻣﻌﺮﻓﺔ اﻟﻄﻠﺒﺔأ...

‫ﻣﻘﺪﻣﺔ ﻟﻠﺒﺮﻣﺠﺔ ﺑﺎﺳﺘﺨﺪام‬ ‫ﻟﻐﺔ اﻟﺠﺎﻓﺎ‪java‬‬ ‫‪49‬‬ ‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫اﻟﮭﺪف ﻣﻦ اﻟﻤﺤﺎﺿﺮة اﻷوﻟﻰ ‪:‬‬ ‫‪ – 1‬ﻣﻌﺮﻓﺔ اﻟﻄﻠﺒﺔأھﻤﯿﺔ واﺳﺘﺨﺪاﻣﺎت ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫‪ – 2‬ﻣﻌﺮﻓﺔ اﻟﻄﻠﺒﺔﻣﺮاﺣﻞ ﺗﻨﻔﯿﺬ ﺑﺮﻧﺎﻣﺞ ﺑﻠﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫‪ – 3‬ﻣﻌﺮﻓﺔ اﻟﻄﻠﺒﺔﻣﻤﯿﺰات ﻟﻐﺔ اﻟﺠﺎﻓﺎ‪.‬‬ ‫ﺗﻌﺘﺒﺮ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﻣﻦ اﻟﻠﻐﺎت اﻟﻘﻮﯾﺔ ﺟﺪاً ﻓﻲ ﻣﺠﺎل إﻧﺸﺎء اﻟﺘﻄﺒﯿﻘﺎت اﻟﻤﺨﺘﻠﻔﺔ ﺳﻮاء ﻛﺎﻧﺖ ھﺬه‬ ‫اﻟﺘﻄﺒﯿﻘﺎت ﺗﻌﻤﻞ ﻣﻨﻔﺮدة ﻋﻠﻰ أﺟﮭﺰة اﻟﻜﻤﺒﯿﻮﺗﺮ اﻟﺸﺨﺼﻲ أو ﺗﻄﺒﯿﻘﺎت اﻹﻧﺘﺮﻧﺖ أو اﻟﺘﻄﺒﯿﻘﺎت‬ ‫اﻟﻤﺨﺘﻠﻔﺔ ﻟﻸﺟﮭﺰة اﻟﻤﺤﻤﻮﻟﺔ ‪ ,‬ﻣﺜﻞ اﻟﻤﻮﺑﺎﯾﻞ واﻟﻤﻔﻜﺮات اﻹﻟﻜﺘﺮوﻧﯿﺔ وھﻜﺬا‪.‬‬ ‫وﻟﻘﺪ ﻗﺎﻣﺖ ﺷﺮﻛﺔ ﺻﻦ )‪ (Sun Microsystems‬ﺑﺎﺧﺘﺮاع وﺗﻄﻮﯾﺮ ھﺬه اﻟﻠﻐﺔ‪.‬وأﺻﺒﺤﺖ‬ ‫ﺷﺮﻛﺔﺻﻦ ﻣﻤﻠﻮﻛﺔ ﻟﺸﺮﻛﺔ أوراﻛﻞ وﺑﺎﻟﺘﺎﻟﻲ اﻧﺘﻘﻠﺖ ﻣﻠﻜﯿﺔ اﻟﺠﺎﻓﺎ ﻷوراﻛﻞ ‪.‬وﻛﺎن اﻟﮭﺪف ﻋﻨﺪ‬ ‫اﺧﺘﺮاع ﻟﻐﺔ اﻟﺠﺎﻓﺎ ھﻮﻋﻤﻞ ﻟﻐﺔ ﻗﺎدرة ﻋﻠﻰ ﺑﺮﻣﺠﺔ ﻧﻈﻢ اﻟﺘﺸﻐﯿﻞ ﻟﺠﻤﯿﻊ اﻷﺟﮭﺰة ﻣﻦ ﺣﺎﺳﺒﺎت‬ ‫ﻋﻤﻼﻗﺔ )‪ (mainframes‬إﻟ ﺎﻷﺟﮭﺰة اﻟﺼﻐﯿﺮة ﻣﺜﻞ ﻣﺸﻐﻼت ‪ MP3‬وﻟﻘﺪ اﺧﺘﺎرت اﻟﺸﺮﻛﺔ‬ ‫ﺻﻮرة ﻓﻨﺠﺎن اﻟﻘﮭﻮة ﻟﺘﻤﺜﯿﻞ ھﺬه اﻟﻠﻐﺔ ‪.‬‬ ‫‪ 1-1‬أﺳﺲ اﻟﺒﺮﻣﺠﺔ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫ﻗﺒﻞ اﻟﺒﺪء ﻓﻲ ﻋﻤﻠﯿﺔ اﻟﺒﺮﻣﺠﺔ ) أي ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﻄﻠﻮب ﺗﻨﻔﯿﺬه ( ﺑﻠﻐﺔ اﻟﺠﺎﻓﺎ ﻻﺑﺪ ﻣﻦ ﺗﻮاﻓﺮ‬ ‫اﻟﻌﺪة اﻟﻼزﻣﺔ )‪. (Tool Kit‬وھﺬه اﻟﻌﺪة ﻋﺒﺎرة ﻋﻦ اﻟﺒﺮاﻣﺞ اﻟﻼزﻣﺔ ﻟﻌﻤﻠﯿﺔ ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻧﻔﺴﮫ وﻧﻘﻮل أﻧﻨﺎ ﻛﺘﺒﻨﺎ ﺑﺮﻧﺎﻣﺞ ﺑﻠﻐﺔ اﻟﺠﺎﻓﺎ ‪.‬ﺑﻌﺪ ذﻟﻚ ﺗﺄﺗﻲ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﻟﮭﺬا اﻟﺒﺮﻧﺎﻣﺞ وھﻲ ﻣﺎ‬ ‫ﻧﻄﻠﻖ ﻋﻠﯿﮭﺎ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ )‪.(compiling‬‬ ‫واﻟﺤﻘﯿﻘﺔ ﻓﺄﻧﮫ ﯾﻮﺟﺪ أﻛﺜﺮ ﻣﻦ طﺮﯾﻘﺔ ﻟﻜﺘﺎﺑﺔ ﺑﺮاﻣﺞ اﻟﺠﺎﻓﺎ وﺗﺮﺟﻤﺘﮭﺎ ﻧﻮﺟﺰ ﻣﻨﮭﺎ ‪:‬‬ ‫اﺳﺘﻌﻤﺎل اﻟﻤﻜﺘﺒﺔ )‪ (JDK‬وھﻲ اﺧﺘﺼﺎر ‪JAVA DEVELOPMENTE KIT‬‬ ‫‪-1‬‬ ‫ﻣﻦ إﻧﺘﺎج ﺷﺮﻛﺔ ﺻﻦ ﻣﻊ أي ﻣﺤﺮر ﻧﺼﻮص وﻟﯿﻜﻦ ﺑﺮﻧﺎﻣﺞ ‪ Notepad‬اﻟﻤﻮﺟﻮد ﻓﻲ‬ ‫اﻟﻮﯾﻨﺪوز‪.‬‬ ‫اﺳﺘﻌﻤﺎل ﺑﺮاﻣﺞ وﺳﯿﻄﺔ ﺗﺴﮭﻞ ﻋﻤﻠﯿﺔ اﻟﻜﺘﺎﺑﺔ واﻟﺘﺮﺟﻤﺔ وﺗﺼﺤﯿﺢ اﻷﺧﻄﺎء ﻣﺜﻞ ﺑﺮﻧﺎﻣﺞ‬ ‫‪-2‬‬ ‫)… ‪.(Net Beans – Jcreator - BlueJ‬‬ ‫‪49‬‬ ‫وﺳﻮف ﻧﺘﻨﺎول ﻛﯿﻔﯿﺔ ﺗﺜﺒﯿﺖ ھﺬه اﻟﺒﺮاﻣﺞ ﻋﻠﻰ ﺟﮭﺎز اﻟﺤﺎﺳﺐ وﻛﯿﻔﯿﺔاﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ‪.‬واﻟﺸﻜﻞ ) ‪1-‬‬ ‫‪ ( 1‬ﯾﺒﯿﻦ ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ‪.‬‬ ‫وﯾﻮﺟﺪ ﻋﺪة ﻧﺴﺦ ﻟﻠﻐﺔ اﻟﺠﺎﻓﺎ ھﻲ ‪-:‬‬ ‫‪ :J2SE ‬ھﻲ اﺧﺘﺼﺎر ل ‪ Java 2 Standard Edition‬ﯾﺘﻢ ﻣﻦ ﺧﻼﻟﮭﺎ دراﺳﺔ اﻟﻠﻐﺔ وإﻧﺸﺎء‬ ‫اﻟﺘﻄﺒﯿﻘﺎت اﻟﻤﺨﺘﻠﻔﺔ ﻟﺘﺸﻐﯿﻠﮭﺎ ﻋﻠﻰ ﺟﮭﺎز اﻟﺤﺎﺳﺐ )‪.(desktop Application‬وﺳﻮف‬ ‫ﺗﻜﻮن ھﻲ ﻣﻮﺿﻮع دراﺳﺘﻨﺎ ﻓﻲ ھﺬا اﻟﻜﺘﺎب‪.‬‬ ‫‪ :J2EE ‬ھﻲ اﺧﺘﺼﺎر ل ‪ Java 2 Enterprise Edition‬وھﻲ ﺗﺰودﻧﺎ ﺑﺎﻟﺘﻄﺒﯿﻘﺎت اﻟﻜﺒﯿﺮة‬ ‫ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺸﺮﻛﺎت اﻟﻜﺒﯿﺮة‪.‬‬ ‫‪ :J2ME ‬ھﻲ اﺧﺘﺼﺎر ل ‪ Java 2 Micro Edition‬ﻓﮭﻲ ﺗﺨﺺ اﻷﺟﮭﺰة اﻟﻼﺳﻠﻜﯿﺔ‬ ‫)‪ (wireless devices‬ﺑﺸﻜﻞ ﻋﺎم ﯾﻌﻨﻲ ﻋﻠ ﺄﺟﮭﺰةاﻟﻤﺤﻤﻮل وﻏﯿﺮھﺎ‪.‬‬ ‫‪49‬‬ ‫ﻣﻤﯿﺰات ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫‪ -1‬ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﻏﯿﺮ ﻣﺮﺗﺒﻄﺔ ﺑﺄﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ اﻟﻤﺨﺘﻠﻔﺔ ‪Java Is Platform‬‬ ‫‪.Independent‬‬ ‫‪ -2‬ﺗﻌﺘﻤﺪ ﻋﻠﻰ أﺳﻠﻮب ﺑﺮﻣﺠﺔ اﻷھﺪاف ‪. Object Oriented Programming‬‬ ‫‪-3‬إﻧﺸﺎء ﺑﺮاﻣﺞ ذات واﺟﮭﺔ ﻣﺴﺘﺨﺪم ‪.‬‬ ‫‪ -4‬ﺗﺼﻤﯿﻢ ﺑﺮﻣﺠﯿﺎت ﺗﺴﺘﻔﯿﺪ ﻣﻦ ﻛﻞ ﻣﻤﯿﺰات اﻹﻧﺘﺮﻧﺖ ‪. Java Applet‬‬ ‫ﺷﺮح ﻷھﻢ ﻣﻤﯿﺰات ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﻛﻤﺎ ذﻛﺮﻧﺎھﺎ ﻓﻲ اﻟﻨﻘﺎط اﻟﺴﺎﺑﻘﺔ ‪:‬‬ ‫‪ -1‬ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﻏﯿﺮ ﻣﺮﺗﺒﻄﺔ ﺑﺄﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ اﻟﻤﺨﺘﻠﻔﺔ‪:‬وﻣﻌﻨﻰ ذﻟﻚ إﻧﮫ ﯾﻤﻜﻦ ﻧﻘﻞ اﻟﺒﺮاﻣﺞ )اﻟﻤﻜﺘﻮﺑﺔ‬ ‫ﺑﻠﻐﺔ اﻟﺠﺎﻓﺎ( ﺑﺴﮭﻮﻟﺔ ﻣﻦ ﻧﻈﺎم ﺗﺸﻐﯿﻞ إﻟﻰ آﺧﺮ‪.‬وﻓﻲ اﻟﻤﻘﺎﺑﻞ ﯾﻤﻜﻦ اﻟﻘﻮل إﻧﮫ ﻻ ﯾﻤﻜﻦ ﺗﺸﻐﯿﻞ‬ ‫ﺑﺮﻧﺎﻣﺞ ‪ WORD‬ﻣﺜﻼ واﻟﺨﺎص ﺑﻨﻈﺎم ﺗﺸﻐﯿﻞ وﯾﻨﺪوز)‪ (WINDOWS‬ﻋﻠﻰ ﺟﮭﺎز ﺣﺎﺳﺐ‬ ‫آﺧﺮ ﯾﻌﻤﻞ ﺑﻨﻈﺎم ﺗﺸﻐﯿﻞ ﻣﺨﺘﻠﻒ ﻣﺜﻞ ﯾﻮﻧﯿﻜﺲ )‪ (UNIX‬أو ﻧﻈﺎم ﺗﺸﻐﯿﻞ ﻟﯿﻨﻜﺲ )‪ (LINUX‬أو‬ ‫أي ﻧﻈﺎم ﺗﺸﻐﯿﻞ آﺧﺮ ﻏﯿﺮ ﻧﻈﺎم‪ WINDOWS‬واﻟﻤﺴﺘﺨﺪم ﻣﻊ أﺟﮭﺰة اﻟﺤﺎﺳﺒﺎت اﻟﻤﺨﺘﻠﻔﺔ‪.‬‬ ‫وﯾﺮﺟﻊ ذﻟﻚ ﻷن ﺑﺮﻧﺎﻣﺞ ‪ WORD‬ﺑﺸﻜﻞ ﻋﺎم ﻣﻜﺘﻮب ﺑﻠﻐﺔ )‪ (C++/C‬واﻟﺘﻲ ﺗﻌﻄﻲ ﻣﻠﻒ ﻣﻦ‬ ‫ﻧﻮع ‪ EXE‬ﺧﻼل ﻋﻤﻠﯿﺔ ﺗﺴﻤﻰ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ‪ COMPILATION‬وﺑﺬﻟﻚ ﯾﻜﻮن اﻟﻤﻠﻒ‬ ‫اﻟﻨﺎﺗﺞ ﻣﺮﺗﺒﻄﺎً ارﺗﺒﺎطﺎً ﻛﻠﯿﺎً ﺑﻨﻈﺎم اﻟﺘﺸﻐﯿﻞ‪.‬‬ ‫أﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻐﺔ اﻟﺠﺎﻓﺎ ﻓﺎﻟﻮﺿﻊ ﻣﺨﺘﻠﻒ ﺣﯿﺚ ﯾﻮﺟﺪ وﺳﯿﻂ ﺑﯿﻦ اﻟﺒﺮﻧﺎﻣﺞ وﺑﯿﻦ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ وھﺬا‬ ‫اﻟﻮﺳﯿﻂ ﯾﺴﻤﻰ )‪ (Byte Code Interpreter‬أي اﻟﺘﺮﺟﻤﺔ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺒﺎﯾﺖ‪.‬وﻛﺬﻟﻚ ﯾﻤﻜﻦ‬ ‫ﺗﺴﻤﯿﺘﮫ ﺑﺎﻵﻟﺔ اﻟﺘﺨﯿﻠﯿﺔ ﻟﻠﺠﺎﻓﺎ )‪.(Java Virtual Machine‬‬ ‫وﯾﻮﺿﺢ اﻟﺸﻜﻞ )‪ (1-2‬ﺧﻄﻮات ﺗﺸﻐﯿﻞ ﺑﺮﻧﺎﻣﺞ ﻣﻜﺘﻮب ﺑﻠﻐﺔ )‪ c‬أو ‪. (c++‬‬ ‫‪49‬‬ ‫ﻛﻤﺎ ﯾﻮﺿﺢ ﺷﻜﻞ )‪1-3‬أ( وﺷﻜﻞ )‪1-3‬ب(وﺷﻜﻞ )‪1-3‬ج(ﺧﻄﻮات ﺗﺸﻐﯿﻞ ﺑﺮﻧﺎﻣﺞ ﻣﻜﺘﻮب ﺑﻠﻐﺔ‬ ‫اﻟﺠﺎﻓﺎ ‪.‬‬ ‫‪49‬‬ ‫‪ -2‬ﺗﻌﺘﻤﺪ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﻋﻠﻰ أﺳﻠﻮب ﺑﺮﻣﺠﺔ اﻷھﺪاف ‪Object Oriented Programming‬‬ ‫ﺣﯿﺚ وﻓﺮت ﻛﺜﯿﺮا ﻣﻦ اﻟﺠﮭﺪ اﻟﺬي ﻛﺎن ﯾﺒﺬل ﺑﺎﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﺔ اﻟﺘﻘﻠﯿﺪﯾﺔ ‪.‬ﻓﻘﺪ ﻛﺎﻧﺖ اﻟﺒﺮﻣﺠﺔ‬ ‫اﻟﺘﻘﻠﯿﺪﯾﺔ ﺗﻮﻓﺮ ﻟﻠﻤﺒﺮﻣﺞ ﻣﻜﺘﺒﺔ ﻣﻦ اﻟﺪوال إﺿﺎﻓﺔ إﻟﻰ ﺗﺮﻛﯿﺐ ﺗﻘﻠﯿﺪي ﻟﻠﺒﺮﻧﺎﻣﺞ وﻋﻠﻰ اﻟﻤﺒﺮﻣﺞ أن‬ ‫ﯾﺴﺘﻌﻤﻞ اﻟﺪوال ﻣﻊ ﺗﺮﻛﯿﺐ اﻟﺒﺮﻧﺎﻣﺞ ﻹﻧﺸﺎء اﻟﺘﻄﺒﯿﻘﺎت اﻟﻤﺨﺘﻠﻔﺔ ﻣﻤﺎ ﯾﻀﻄﺮه ﻟﻜﺘﺎﺑﺔ اﻟﺴﻄﻮر‬ ‫اﻟﻜﺜﯿﺮة أﻛﺜﺮ ﻣﻦ ﻣﺮة؛ و ﻟﻘﺪ ﻛﺎﻧﺖ وﺣﺪة ﺑﻨﺎء اﻟﺒﺮﻧﺎﻣﺞ ھﻲ اﻟﺪاﻟﺔ‪.function‬ﻓﻲ ﺣﯿﻦ أﺗﺖ‬ ‫اﻟﺒﺮﻣﺠﺔ ﺑﻮاﺳﻄﺔ اﻷھﺪاف ﺑﻔﻜﺮة ﺟﺪﯾﺪة ھﻲ إﻧﺸﺎء ﻋﻨﺎﺻﺮ ﻣﺘﻜﺎﻣﻠﺔ ﺗﺤﺘﻮي ﻋﻠﻰ ﺑﯿﺎﻧﺎت ودوال‬ ‫ھﻲ أﺳﺎس إﻧﺸﺎء اﻟﺒﺮﻧﺎﻣﺞ‪.‬وﺑﺎﻟﺘﺎﻟﻲ أﺻﺒﺤﺖ وﺣﺪة ﺑﻨﺎء اﻟﺒﺮﻧﺎﻣﺞ وﺣﺪة ﻛﺒﯿﺮة ھﻲ اﻟﻔﺼﯿﻠﺔ أو‬ ‫اﻟﻔﺌﺔ ‪ Class‬أو اﻟﻌﻨﺼﺮ ‪ Object‬ﻣﻤﺎ ﺳﮭﻞ واﺧﺘﺼﺮ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻮﻗﺖ واﻟﺠﮭﺪ‪.‬‬ ‫وﺳﻮف ﻧﺘﺤﺪث ﻋﻠﻰ ھﺬه اﻟﻨﻘﻄﺔ ﺑﺎﻟﺘﻔﺼﯿﻞ ﻓﻲ اﻟﺒﺎب اﻟﺜﺎﻧﻲ ‪.‬‬ ‫‪-3‬إﻧﺸﺎء ﺑﺮاﻣﺞ ذات واﺟﮭﺔ ﻣﺴﺘﺨﺪم رﺳﻮﻣﯿﺔ ‪.‬‬ ‫ﯾﻌﺘﺒﺮ ﺑﻨﺎء واﺟﮭﺔ اﻟﻤﺴﺘﺨﺪم اﻟﺮﺳﻮﻣﯿﺔ ﻣﻦ اﻷﺟﺰاء اﻟﮭﺎﻣﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬ﺣﯿﺚ أن ھﺬه اﻟﻮاﺟﮭﺎت‬ ‫ﺗﻌﻄﻲ اﻟﺒﺮﻧﺎﻣﺞ ﺷﻜﻼ ﻣﻌﯿﻨﺎً ‪ ,‬ﻛﻤﺎ أن اﺳﺘﺨﺪام ﻣﻔﺎھﯿﻢ وأﺟﺰاء ﻣﻮﺣﺪة ﻓﻲ ﺑﻨﺎء اﻟﻮاﺟﮭﺎت ﻟﻠﻌﺪﯾﺪ‬ ‫ﻣﻦ اﻟﺒﺮاﻣﺞ اﻟﻤﺨﺘﻠﻔﺔ ﯾﻌﻄﻲ اﻟﻤﺴﺘﺨﺪم ﻗﺪرا ﻛﺒﯿﺮا ﻣﻦ اﻟﺮاﺣﺔ إﺛﻨﺎء اﺳﺘﺨﺪام اﻟﺒﺮاﻣﺞ ‪ ,‬ﻛﻤﺎ أﻧﮫ‬ ‫ﯾﻘﻠﻞ ﻛﺜﯿﺮا ﻣﻦ اﻟﻮﻗﺖ اﻟﻤﺴﺘﺨﺪم ﻟﺘﻌﻠﻤﮭﺎ ‪.‬وﻗﺪ ﺗﻌﺮﻓﻨﺎ ﻓﻲ اﻟﺴﻨﻮات اﻟﺴﺎﺑﻘﺔ وأﺛﻨﺎء اﺳﺘﺨﺪاﻣﻨﺎ‬ ‫ﻟﻠﺤﺎﺳﺐ ﻋﻠﻰ واﺟﮭﺎت رﺳﻮﻣﯿﺔ ﻛﺜﯿﺮة ‪.‬ﻣﺜﻞ واﺟﮭﺎت اﻟﻮﯾﻨﺪوز واﻟﻤﺴﺘﻜﺸﻒ ﻟﻺﻧﺘﺮﻧﺖ وﻏﯿﺮھﺎ ‪.‬‬ ‫إن اﻷﺟﺰاء اﻟﺮﺳﻮﻣﯿﺔ اﻟﻤﻮﺟﻮدة ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﻣﺮﺗﺒﻄﺔ ﻣﺒﺎﺷﺮة ﻣﻊ اﻹﻣﻜﺎﻧﯿﺎت اﻟﺮﺳﻮﻣﯿﺔ ﻟﻠﺠﮭﺎز‬ ‫اﻟﺬي ﯾﻌﻤﻞ ﻋﻠﯿﮫ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬وﺑﺬﻟﻚ ﻓﺈن اﻟﻮاﺟﮭﺎت اﻟﺮﺳﻮﻣﯿﺔ اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﺠﺎﻓﺎ ﺳﻮف ﺗﻈﮭﺮ‬ ‫ﺑﺄﺷﻜﺎل ﻣﺘﺒﺎﯾﻨﺔ ﻋﻠﻰ اﻷﺟﮭﺰة اﻟﻤﺨﺘﻠﻔﺔ ‪.‬أي أﻧﻨﺎ ﻋﻨﺪﻣﺎ ﻧﻘﻮم ﺑﻜﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﻌﻤﻞ زر ﻋﻠﻰ‬ ‫ﻧﻈﺎم اﻟﻮﯾﻨﺪوز ﻓﺄن ھﺬا اﻟﺰر ﯾﺄﺧﺬ ﻧﻔﺲ ﺷﻜﻞ اﻟﺰر اﻟﻤﺴﺘﺨﺪم ﻓﻲ ﻧﻈﺎم اﻟﻮﯾﻨﺪوز ‪.‬وﻟﻜﻦ إذا ﺗﻢ‬ ‫ﻛﺘﺎﺑﺘﮫ ﻓﻲ ﻧﻈﺎم ﺗﺸﻐﯿﻞ آﺧﺮ ﻓﺈﻧﮫ ﯾﺄﺧﺬ ﺷﻜﻞ ﯾﺘﻨﺎﺳﺐ ﻣﻊ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ اﻟﻤﺴﺘﺨﺪم ‪.‬‬ ‫‪ -4‬ﺗﺼﻤﯿﻢ ﺑﺮﻣﺠﯿﺎت ﺗﺴﺘﻔﯿﺪ ﻣﻦ ﻛﻞ ﻣﻤﯿﺰات اﻹﻧﺘﺮﻧﺖ ‪. Java Applet‬‬ ‫وھﯿﻨﻮع ﻣﻦ اﻟﺘﻄﺒﯿﻘﺎت اﻟﺘﻲ ﺻﻤﻤﺖ ﺧﺼﯿﺼﺎ ﻟﻺﻧﺘﺮﻧﺖ‪.‬ﺣﯿﺚ ﯾﻘﻮم اﻟﻤﻄﻮر ) ‪( Developer‬‬ ‫ﺑﺈﻋﺪاد ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ‪ Applet‬ﺛﻢ ﯾﺘﻢ اﺳﺘﺪﻋﺎءه ﻣﻦ ﺧﻼل ﻣﻠﻒ ‪ HTML‬ﺑﺸﺮط ﺗﺤﻤﯿﻞ ﺑﺮﻧﺎﻣﺞ‬ ‫‪ Applet‬ﻋﻠﻰ اﻟﺨﺎدم )‪(Server‬اﻟﻤﻮﺟﻮد ﻋﻠﯿﮫ ﻣﻠﻒ ‪.HTML‬ﻓﯿﺘﻢ ﻋﺮض ھﺬا اﻟﺘﻄﺒﯿﻖ ﻣﻦ‬ ‫ﺧﻼل ﺻﻔﺤﺔ اﻻﻧﺘﺮﻧﺖ ﻋﻨﺪﻣﺎ ﯾﺴﺘﻌﺪي اﻟﻤﺴﺘﺨﺪم ھﺬه اﻟﺼﻔﺤﺔ‪.‬‬ ‫اﻟﮭﺪف ﻣﻦ اﻟﻤﺤﺎﺿﺮة اﻟﺜﺎﻧﯿﺔ ‪:‬‬ ‫‪49‬‬ ‫‪ – 1‬ﻣﻌﺮﻓﺔ اﻟﻄﻠﺒﺔ اﻟﺸﻜﻞ اﻟﻌﺎم ﻟﺒﺮﻧﺎﻣﺞ اﻟﺠﺎﻓﺎ‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم ﻟﺒﺮﻧﺎﻣﺞ اﻟﺠﺎﻓﺎ ‪:‬‬ ‫اﻟﺒﺮﻧﺎﻣﺞ اﻵﺗﻲ ﯾﺒﯿﻦ اﻟﺸﻜﻞ اﻟﻌﺎم ﻟﺒﺮﻧﺎﻣﺞ اﻟﺠﺎﻓﺎ وﻻ ﯾﮭﻤﻨﺎ ھﻨﺎ ﻓﮭﻢ ﻛﻞ ﺟﺰﺋﯿﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ﻓﮭﺬا ﺳﻮف ﯾﺘﻢ ﻓﻲ اﻟﺪروس اﻟﺘﺎﻟﯿﺔ ‪:‬‬ ‫وﯾﻘﻮم ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺑﻄﺒﺎﻋﺔ ﺟﻤﻠﺔ )‪.(Welcome to my World‬وﻋﻨﺪ ﺣﻔﻆ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻛﻤﺎ ﺳﻨﻌﺮف ﻻﺣﻘﺎ ﻻﺑﺪ وأن ﯾﺘﻢ ﺗﺴﻤﯿﺔ اﻟﻤﻠﻒ ﺑﺎﺳﻢ ‪.Welcome.java‬وﻛﺬﻟﻚ ﯾﺠﺐ ان ﻧﺮاﻋﻲ‬ ‫ﺟﯿﺪا أن ﻟﻐﺔ اﻟﺠﺎﻓﺎ ھﻲ ﻟﻐﺔ ﺣﺴﺎﺳﺔ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻸﺣﺮف ﻓﻤﺜﻼ ﺣﺮف )‪ (A‬ﻻ ﯾﺴﺎوي ﺣﺮف )‪(a‬‬ ‫وﯾﻤﻜﻦ ﺗﻤﺜﯿﻞ اﻟﮭﯿﻜﻞ‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم ﻟﺒﺮﻧﺎﻣﺞ اﻟﺠﺎﻓﺎ‬ ‫ﻣﺜﺎل) ‪( 1‬اﻟﻤﻄﻠﻮب ﻋﻤﻞ ﺑﺮﻧﺎﻣﺠﺎ ﯾﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻟﻌﺒﺎرة ‪.Hello‬‬ ‫‪public class Hello‬‬ ‫{‬ ‫)‪public static void main (String [ ]s‬‬ ‫ﺑﺪاﯾﺔ و ﻧﮭﺎﯾﺔ اﻟﻜﻼس‬ ‫{‬ ‫ﺑﺪاﯾﺔ‬ ‫وﻧﮭﺎﯾﺔ‬ ‫; )" ‪System.out.print("Hello‬‬ ‫اﻟﻮظﯿﻔﺔ‬ ‫}‬ ‫}‬ ‫ﺷﺮح اﻟﺒﺮﻧﺎﻣﺞ‬ ‫‪49‬‬ ‫‪ ‬اﻟﺴﻄﺮ اﻷول‬ ‫وھﺬا ھﻮ اﻟﺴﻄﺮ اﻷول ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ وھﻮ ﯾﺘﻜﻮن ﻣﻦ‪:‬‬ ‫‪) Public‬اﻟﻔﺼﯿﻠﺔ ﻋﺎﻣﺔ ( اﺋﻤﺎ ﺗﺴﺒﻖ ﺗﻌﺮﯾﻒ اﻟﻔﺌﺔ أو اﻟﻔﺼﯿﻠﺔ ‪ Class‬وھﻲ ﺗﻌﻨﻲ أن ھﺬه اﻟﻔﺌﺔ أو‬ ‫أي ﯾﻤﻜﻦ ﻷي ﻓﺌﺔ أﺧﺮى ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ اﺳﺘﺨﺪام ﻋﻨﺎﺻﺮ ھﺬه اﻟﻔﺌﺔ ‪.‬ﻷن ﺑﺮﻧﺎﻣﺞ اﻟﺠﺎﻓﺎ ﻗﺪ ﯾﺘﻜﻮن ﻣﻦ‬ ‫أﻛﺜﺮ ﻣﻦ ﻓﺌﺔ ‪.class‬‬ ‫‪class‬وھﻨﺎ ﯾﺘﻢ ﺑﺪاﯾﺔ اﻟﻔﺼﯿﻠﺔ‬ ‫‪Hello‬اﺳﻢ اﻟﻔﺼﯿﻠﺔ) اﻟﺒﺮﻧﺎﻣﺞ ( وﻟﻘﺪ ﺗﻢ ﺗﺴﻤﯿﺘﮫ ھﻨﺎ ﺑﺎﻻﺳﻢ اﻟﺬي ﻧﺮﯾﺪه ‪.‬‬ ‫‪ ‬وﻻﺑﺪ ھﻨﺎ أن ﻧﺸﯿﺮ إﻟﻰ ﻧﻘﻄﺔ ھﺎﻣﺔ ﺟﺪًا وھﻲ أﻧﮫ ﻋﻨﺪ ﺣﻔﻆ ﻣﻠﻒ اﻟﺠﺎﻓﺎ ﻻﺑﺪ أن ﯾﺘﻢ ﺣﻔﻈﮫ ﺑﻨﻔﺲ‬ ‫اﺳﻢ اﻟﻔﺼﯿﻠﺔ وﺑﻨﻔﺲ ﺷﻜﻞ اﻟﺤﺮوف واﻟﻤﺴﺎﻓﺎت وﻓﻲ ﻣﺜﺎﻟﻨﺎ ھﺬا ﺳﯿﻜﻮن اﻻﺳﻢ ‪.Hello.java‬‬ ‫{ﻗﻮس ﺑﺪاﯾﺔ ﺗﻌﺮﯾﻒ اﻟﻔﺼﯿﻠﺔ ‪.‬‬ ‫اﻟﺜﺎﻧﻲ‬ ‫‪ ‬اﻟﺴﻄﺮ‬ ‫أي أن اﻟﺪاﻟﺔ ﺑﻌﺪ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻟﻦ ﺗﻌﻮد ﺑﺄي ﻗﯿﻢ‪.‬‬ ‫‪viod‬‬ ‫‪ main‬ﻧﻘﻄﺔ اﻟﺒﺪاﯾﺔ ﻟﻮظﯿﻔﺔ اﻟﻔﺼﯿﻠﺔ ‪. main method‬‬ ‫) ] [ ‪s (String‬اﻟﺠﻤﻠﺔ اﻟﻤﻮﺟﻮدة داﺧﻞ ﻗﻮﺳﻲ اﻟﺒﺪاﯾﺔ ﻟﻠﺪاﻟﺔ ‪ main‬وھﻲ ] [‪ String s‬ﺗﻌﻨﻲ‬ ‫ﻣﺼﻔﻮﻓﺔ ﻣﻦ اﻟﻨﻮع اﻟﺤﺮﻓﻲ وﺗﺴﻤﻰ ‪ s‬ﻟﺘﺨﺰﯾﻦ ﺟﻤﻠﺔ اﻟﻄﺒﺎﻋﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬‬ ‫وﻛﻤﺎ ﻗﻠﻨﺎ ﻣﻦ ﻗﺒﻞ أن ﻟﻐﺔ اﻟﺠﺎﻓﺎ ھﻲ ﻟﻐﺔ ﺣﺴﺎﺳﺔ ﻟﺤﺎﻟﺔ اﻷﺣﺮف ﻟﺬﻟﻚ ﯾﺠﺐ ﻣﻼﺣﻈﺔ أن ﺣﺮف ‪ S‬ﻓﻲ‬ ‫ﻛﻠﻤﺔ ‪ String‬ﯾﺠﺐ أن ﯾﻜﻮن ﺣﺮﻓﺎً ﻛﺒﯿﺮاً )‪ (capital letter‬وإﻻ ﺳﯿﻌﻄﻰ اﻟﺒﺮﻧﺎﻣﺞ ﺧﻄﺄ ﻋﻨﺪ‬ ‫اﻟﺘﺮﺟﻤﺔ ‪.‬‬ ‫اﻟﺴﻄﺮ اﻟﺜﺎﻟﺚ‬ ‫وھﺬا ھﻮ أﻣﺮ اﻟﻄﺒﺎﻋﺔ ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ وﺳﻮف ﻧﺘﻨﺎوﻟﮫ ﺑﺎﻟﺘﻔﺼﯿﻞ ﻓﻲ اﻷﻣﺜﻠﺔ اﻟﻘﺎدﻣﺔ ‪.‬وھﻨﺎ ﯾﺠﺐ أن‬ ‫ﻧﻼﺣﻆ أن ﺣﺮف ‪ S‬ﯾﺠﺐ أن ﯾﻜﻮن ﻛﺒﯿﺮ )‪(Capital letter‬‬ ‫"‪"Hello‬اﻟﻨﺺ اﻟﻤﺮاد طﺒﺎﻋﺘﮫ وﯾﺠﺐ أن ﯾﻮﺿﻊ ﺑﯿﻦ ﻋﻼﻣﺘﻲ ﺗﻨﺼﯿﺺ )" "(‬ ‫وﻗﻮﺳﯿﻦ‪,‬‬ ‫‪49‬‬ ‫ﻻﺑﺪ وأن ﺗﻨﺘﮭﻲ ﻛﻞ ﺟﻤﻠﺔ )ﺳﻄﺮ أوأﻣﺮ( ﺑﻌﻼﻣﺔ );(‬ ‫ﺑﻌﺪ ذﻟﻚ ﯾﺘﻢ إﻧﮭﺎء اﻟﺒﺮﻧﺎﻣﺞ ﺑﻘﻮﺳﻲ اﻟﻨﮭﺎﯾﺔ ﺣﯿﺚ ﯾﻤﺜﻞ اﻟﻘﻮس اﻷول ﻧﮭﺎﯾﺔ اﻟﻮظﯿﻔﺔ‬ ‫‪method‬‬ ‫اﻟﮭﺪف ﻣﻦ اﻟﻤﺤﺎﺿﺮة اﻟﺜﺎﻟﺜﺔ‪:‬‬ ‫‪ – 1‬ﻣﻌﺮﻓﺔ اﻟﻄﻠﺒﺔ ﺑﺎﻟﺤﺮوف اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫‪ – 2‬ﻣﻌﺮﻓﺔ اﻟﻄﻠﺒﺔ ﺑﺎﻟﺜﻮاﺑﺖ واﻟﻤﺘﻐﯿﺮات ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫‪49‬‬ ‫‪ – 3‬ﻣﻌﺮﻓﺔ اﻟﻄﻠﺒﺔ ﺑﻘﻮاﻋﺪ ﺗﺴﻤﯿﺔ اﻟﻤﺘﻐﯿﺮات‬ ‫‪ – 4‬اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ واﻟﻤﻨﻄﻘﯿﺔ ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫ﺗﺘﺄﻟﻒ ﺣﺮوف ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﻣﻤﺎ ﯾﻠﻲ ‪:‬‬ ‫أوﻻ ‪:‬ﺣﺮوف ﻟﻐﺔ اﻟﺠﺎفا‬ ‫‪ -1‬اﻟﺤﺮوف اﻷﺑﺠﺪﯾﺔ )‪ (Letters‬وھﻲ اﻟﺤﺮوف اﻟﻜﺒﯿﺮة )‪ (Capital Letters‬ﻣﻦ ‪ A‬إﻟﻰ ‪ Z‬وﻛﺬﻟﻚ‬ ‫اﻟﺤﺮوف اﻟﺼﻐﯿﺮة )‪ (Small Letters‬ﻣﻦ ‪ a‬إﻟﻰ ‪.z‬‬ ‫‪ -2‬اﻷرﻗﺎم اﻟﻌﺪدﯾﺔ )‪ (Digits‬ﻣﻦ ‪ 0‬إﻟﻰ ‪.9‬‬ ‫‪ -3‬اﻟﺤﺮوف اﻟﺨﺎﺻﺔ )‪ (Special Characters‬وھﻲ ﺗﻠﻚ اﻟﺤﺮوف اﻟﺘﻲ ﻟﯿﺴﺖ ﺑﺄﻋﺪاد أو ﺑﺤﺮوف أﺑﺠﺪﯾﺔ‬ ‫وﻟﻜﻨﮭﺎ ﺗﻜﻮن ﻋﻠﻰ ھﯿﺌﺔ رﻣﻮز ﻛﺎﻵﺗﻲ‪(+,-,/,//,,$,#,%,(),||,!,[],!=,,;,”,…..) :‬‬ ‫ﺛﺎﻧﯿﺎ اﻟﺜﻮاﺑﺖ واﻟﻤﺘﻐﯿﺮات‪:Constants & variables‬‬ ‫أوﻻ ‪ :‬اﻟﺜﻮاﺑﺖ ‪:Constants‬‬ ‫وھﻰ ﻋﺒﺎرة ﻋﻦ ﻗﯿﻢ ﺛﺎﺑﺘﺔ ﯾﺮاد اﻻﺣﺘﻔﺎظ ﺑﮭﺎ طﻮال اﻟﺒﺮﻧﺎﻣﺞ وﻻﺗﺘﻐﯿﺮ ﻗﯿﻤﺘﮭﺎ أﺑﺪًا‪.‬‬ ‫وﺗﻨﻘﺴﻢ اﻟﺜﻮاﺑﺖ ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ إﻟﻰ‪-:‬‬ ‫‪ -1‬ﺛﻮاﺑﺖ ﻋﺪدﯾﺔ ‪Numeric Constants‬‬ ‫‪ -2‬ﺛﻮاﺑﺖ رﻣﺰﯾﺔ ‪Non-numeric Constants‬‬ ‫‪ -1‬اﻟﺜﻮاﺑﺖ اﻟﻌﺪدﯾﺔ‪:‬‬ ‫ﯾﻤﻜﻦ ﺗﻤﺜﯿﻞ اﻟﺜﻮاﺑﺖ اﻟﻌﺪدﯾﺔ ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﻛﺎﻵﺗﻲ‪-:‬‬ ‫اﻟﺜﺎﺑﺖ اﻟﻌﺪدي اﻟﺤﻘﯿﻘﻲ ‪Floating Constant‬‬ ‫‪-‬اﻟﺜﺎﺑﺖ اﻟﻌﺪدي اﻟﺼﺤﯿﺢ‪: integer‬‬ ‫ھﻮ ﻋﺪد ﻣﻜﻮن ﻣﻦ اﻷرﻗﺎم ﻣﻦ ) ‪ 0‬إﻟﻰ ‪(9‬‬ ‫‪o‬‬ ‫‪ -‬ھﻮ ﻋﺒﺎرة ﻋﻦ ﻋﺪد ﻣﻜﻮن ﻣﻦ اﻷرﻗﺎم ﻣﻦ )‪ 0‬إﻟﻰ ‪.(9‬‬ ‫ﯾﺠﺐ أن ﯾﺤﺘﻮي ﻋﻠﻰ ﻓﺎﺻﻠﺔ ﻋﺸﺮﯾﺔ‬ ‫‪o‬‬ ‫‪ -‬ﻻﯾﺤﺘﻮي ﻋﻠﻰ ﻓﺎﺻﻠﺔ ﻋﺸﺮﯾﺔ‪.‬‬ ‫ﯾﻤﻜﻦ أن ﯾﺤﻮي اﻹﺷﺎرة ) ‪( - ،+‬‬ ‫‪o‬‬ ‫‪ -‬ﯾﻤﻜﻦ أن ﯾﺤﻮى اﻹﺷﺎرة ) ‪ +‬أو ‪.( -‬‬ ‫)‪(.. ،-67.99 ،10.55 ،421.5‬‬ ‫ﻣﺜﺎل‬ ‫ﻣﺜﺎل )‪.(..........،-20 ،1000 ،12 ،0‬‬ ‫ﺗﺼﻨﻒ اﻷﻋﺪاد اﻟﺼﺤﯿﺤﺔ ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺣﺴﺐ طﻮﻟﮭﺎ واﻟﺴﻌﺔ اﻟﺘﺨﺰﯾﻨﯿﺔ ﻟﮭﺎ ﻓﻲ اﻟﺬاﻛﺮةﻛﻤﺎ ﯾﻠﻲ‪-:‬‬ ‫‪-‬اﻟﺜﻮاﺑﺖ اﻟﺼﺤﯿﺤﺔ ) ‪ (40000 ،19679‬ﺗﺴﻤﻰ ﺛﻮاﺑﺖ ﺻﺤﯿﺤﺔ طﻮﯾﻠﺔ ‪.long int‬‬ ‫‪-‬اﻟﺜﻮاﺑﺖ )‪ ( 55 ، 90 ،-16‬ﺗﺴﻤﻰ ﺛﻮاﺑﺖ ﺻﺤﯿﺤﺔ ﻗﺼﯿﺮة‪.short int‬‬ ‫‪-‬اﻟﺜﻮاﺑﺖ )‪ ( 967 ، 20000‬ﺗﺴﻤﻰ ﺛﻮاﺑﺖ ﺻﺤﯿﺤﺔ ﺑﺪون إﺷﺎرة‪.unsignedint‬‬ ‫‪ -2‬اﻟﺜﻮاﺑﺖاﻟﺮﻣﺰﯾﺔ‪:Non-Numeric‬‬ ‫وھﻰ ﻋﺒﺎرة ﻋﻦ رﻣﻮز اﻟﻠﻐﺔ وﺗﺘﻜﻮن ﻣﻦ اﻟﺤﺮوف واﻷرﻗﺎم وﺗﻜﻮن ﺑﯿﻦ ﻋﻼﻣﺘﻲ ﺗﻨﺼﯿﺺ أو اﻗﺘﺒﺎس‪.‬‬ ‫‪49‬‬ ‫وﻣﻦ اﻷﻣﺜﻠﺔ ﻋﻠﻰ اﻟﺜﻮاﺑﺖ اﻟﺮﻣﺰﯾﺔ ﻣﺎ ﯾﻠﻲ‪-:‬‬ ‫)" ‪("name" - "Khaled" - "12345" - "30+40‬‬ ‫وإذا أردﻧﺎ أن ﻧﻀﻊ ﻗﯿﻤﺔ ﺳﻮف ﺗﻈﻞ ﺛﺎﺑﺘﺔ داﺧﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻓﻲ ﻣﻜﺎن ﻓﻲ اﻟﺬاﻛﺮة ﻓﺄﻧﻨﺎ ﻧﺴﺘﺨﺪم‬ ‫اﻟﻌﺒﺎرة ‪ final‬ﻟﻺﻋﻼن أن ھﺬه اﻟﻘﯿﻤﺔ ﺳﺘﻈﻞ ﺛﺎﺑﺘﺔ طﻮال ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻣﺜﻞ‪:‬‬ ‫;‪finalint TABLE_SIZE = 41‬‬ ‫;‪final float PI = 3.14159‬‬ ‫وﯾﺠﺐ ﻣﺮاﻋﺎة أن اﺳﻢ اﻟﺜﻮاﺑﺖ ‪ constants‬ﯾﻜﻮن ﺑﺎﻷﺣﺮف اﻟﻜﺒﯿﺮة ﻛﺎﻣﻼً و ﯾﻔﺼﻞ ﺑﯿﻦ اﻟﻜﻠﻤﺎت ﻛﻤﺎ ﯾﺘﻢ ﻓﻲ‬ ‫اﻟﻤﺘﻐﯿﺮات ﻣﻊ ﻣﻼﺣﻈﺔ أن اﻟﺜﻮاﺑﺖ ﯾﺘﻢ ﺗﻌﺮﯾﻔﮭﺎ ﻋﻠﻰ أﻧﮭﺎ ‪.final‬‬ ‫ﻣﺜﺎل ﻷﺳﻤﺎء اﻟﺜﻮاﺑﺖ ‪:‬‬ ‫‪LEFT‬‬ ‫‪EXIT_ON_CLOSE‬‬ ‫‪CENTER‬‬ ‫‪MY_NAME‬‬ ‫‪BOTTOM‬‬ ‫‪CLASS_VERSION‬‬ ‫‪TOP‬‬ ‫‪MATH_PI‬‬ ‫ﺛﺎﻧﯿﺎ ‪ :‬اﻟﻤﺘﻐﯿﺮات ‪:Variables‬‬ ‫ھﻲ ﻋﺒﺎرة ﻋﻦ أﺳﻤﺎء ﺗﺤﺠﺰ ﻣﻮاﻗﻊ ﻓﻲ اﻟﺬاﻛﺮة ﺣﺘﻰ ﯾﺘﻤﻜﻦ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ ﺗﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ﻓﯿﮭﺎ‪.‬‬ ‫ھﻲ ﻋﺒﺎرة ﻋﻦ وﻋﺎء ﯾﻤﻜﻦ ﺗﺤﻤﯿﻠﮫ ﺑﻘﯿﻤﺔ وھﺬا اﻟﻮﻋﺎء ﯾﺘﻐﯿﺮ ﺣﺠﻤﮫ ﺣﺴﺐ اﻟﻘﯿﻤﺔ اﻟﺘﻲ ﺳﻮف ﺗﻮﺿﻊ ﻓﯿﮫ‪.‬‬ ‫ﻗﻮاﻋﺪ ﺗﺴﻤﯿﺔ اﻟﻤﺘﻐﯿﺮات‪:‬‬ ‫‪ -‬ﯾﻤﻜﻦ أن ﯾﺒﺪأ اﻻﺳﻢ ﺑﺎﻟﺤﺮف أو اﻟﺸﺮطﺔ اﻟﺴﻔﻠﯿﺔ ) _ ( ‪ under score‬أو ﻋﻼﻣﺔ اﻟﺪوﻻر )‪ ($‬وﻟﻜﻦ ﻻ ﯾﻤﻜﻦ ﺑﺪء اﻟﺘﺴﻤﯿﺔ‬ ‫ﺑﺮﻗﻢ وﻟﻜﻦ ﯾﻤﻜﻦ أن ﻧﻀﻊ رﻗﻢ ﺑﻌﺪ اﻟﺤﺮف‪.‬‬ ‫‪ -‬ﻻ ﯾﻤﻜﻦ ﺗﺴﻤﯿﺔ اﻟﻤﺘﻐﯿﺮ ﺑﺈﺣﺪى اﻟﻜﻠﻤﺎت اﻟﻤﺤﺠﻮزة‬ ‫ﻟﻠﻐﺔ اﻟﺠﺎﻓﺎ واﻟﺠﺪول ﺷﻜﻞ )‪ ( 1-6‬ﯾﺒﯿﻦ ھﺬه اﻟﻜﻠﻤﺎت ‪.‬‬ ‫‪ -‬اﺳﻢ اﻟﻤﺘﻐﯿﺮات ‪ variables‬ﯾﻜﻮن ﺑﺎﻷﺣﺮف اﻟﺼﻐﯿﺮة ﻟﻜﻞ‬ ‫اﻷﺣﺮف وﯾﻼﺣﻆ ﻋﺪم وﺟﻮد أﻗﻮاس‪.‬‬ ‫أﻧﻮاع اﻟﻤﺘﻐﯿﺮات‬ ‫‪49‬‬ ‫‪PrimitiveVariables‬‬ ‫‪ – 1‬ﻣﺘﻐﯿﺮات أﺳﺎﺳﯿﺔ‬ ‫ب ‪ -‬ﻣﺘﻐﯿﺮات ﻋﺪدﯾﺔ‪.‬‬ ‫أ ‪-‬ﻣﺘﻐﯿﺮات رﻣﺰﯾﺔ )ﺣﺮﻓﯿﺔ(‪.‬‬ ‫‪ReferenceVariables‬‬ ‫‪ – 2‬ﻣﺘﻐﯿﺮات ﻣﺮﺟﻌﯿﺔ‬ ‫ﯾﺠﺐ اﻹﻋﻼن ﻋﻦ اﻟﻤﺘﻐﯿﺮ ﻗﺒﻞ اﺳﺘﺨﺪاﻣﮫ‬ ‫ﻛﻤﺎ ﯾﺠﻮز ﺗﻌﺮﯾﻒ اﻟﻤﺘﻐﯿﺮ وﺗﺨﺼﯿﺺ ﻗﯿﻤﺔ ﻟﮫ ﻓﻰ ﻧﻔﺲ اﻟﻮﻗﺖ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫أ‪ -‬اﻟﻤﺘﻐﯿﺮات اﻟﺤﺮﻓﯿﺔ ‪:Char‬‬ ‫وﺗﺘﻀﻤﻦ اﻟﺤﺮوف ﺑﻜﺎﻓﺔ أﺷﻜﺎﻟﮭﺎ واﻟﺮﻣﻮز واﻟﻔﺮاﻏﺎت )ﻣﺴﺎﻓﺔ ﻓﺎرﻏﺔ( ﻣﺜﻞ‪:‬‬ ‫;‪char a,b‬‬ ‫;'‪a= 'a‬‬ ‫;‪char var1‬‬ ‫;' '=‪b‬‬ ‫; ' '=‪var1‬‬ ‫‪ -1‬اﻟﻤﺘﻐﯿﺮات اﻟﻌﺪدﯾﺔ ‪:Numeric Variables‬‬ ‫أ( اﻟﻤﺘﻐﯿﺮات اﻟﻌﺪدﯾﺔ اﻟﺼﺤﯿﺤﺔ ‪:Integer‬‬ ‫ﺗﺘﻀﻤﻦ ﻗﯿﻢ ﻋﺪدﯾﺔ ﺻﺤﯿﺤﺔ ﯾﻤﻜﻦ أن ﺗﺄﺧﺬ ﻗﯿﻤﺔ ﺗﺼﻞ إﻟﻰ ‪ 32767‬وﺗﻜﺘﺐ ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬ ‫;‪int a‬‬ ‫;‪a=100‬‬ ‫;‪int value ; value=2*3‬‬ ‫ب( اﻟﻤﺘﻐﯿﺮات اﻟﻌﺪدﯾﺔ اﻟﺤﻘﯿﻘﯿﺔ‪:Floating Point‬‬ ‫ﺗﺘﻀﻤﻦ ﺟﻤﯿﻊ اﻷﻋﺪاد اﻟﺤﻘﯿﻘﯿﺔ وﺗﻜﺘﺐ ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬ ‫;‪float x‬‬ ‫;‪x=5.2‬‬ ‫‪float x= 5.2‬‬ ‫‪ ,float x= 5.2‬إﻻ أن اﻟﺤﺎﺳﺐ ﯾﻌﺘﺒﺮه ﻣﻦ‬ ‫وھﻨﺎ ﯾﺠﺐ ﻋﻠﯿﻨﺎ اﻻﻧﺘﺒﺎه ﻟﺠﻤﻠﺔ اﻹﻋﻼن واﻟﺘﺨﺼﯿﺺ اﻟﺴﺎﺑﻘﺔ‬ ‫اﻟﻨﻮع ‪ double‬أي ﯾﺤﺠﺰ ﻟﮫ ﻣﻜﺎن ‪ 64‬ﺑﺖ‬ ‫وﻟﻠﺘﻐﻠﺐ ﻋﻠﻰ اﻟﻤﺸﻜﻠﺔ اﻟﺴﺎﺑﻘﺔ ﯾﺘﻢ اﻹﻋﻼن واﻟﺘﺨﺼﯿﺺ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪float x= 5.2 f‬‬ ‫أي ﯾﺘﻢ وﺿﻊ ﺣﺮف ) ‪ (f‬ﺑﻌﺪ اﻟﺮﻗﻢ ﻟﻜﻲ ﯾﺘﻢ ﺣﺠﺰ ﻣﻜﺎن ﻟﮫ ﻓﻲ اﻟﺬاﻛﺮة ﻣﻘﺪاره ‪ 32‬ﺑﺖ وﺑﺬﻟﻚ ﻧﻜﻮن ﻗﺪ وﻓﺮﻧﺎ‬ ‫ﻓﻲ اﻟﺬاﻛﺮة اﻟﻤﺴﺘﺨﺪﻣﺔ‪.‬‬ ‫ج( اﻟﻤﺘﻐﯿﺮات اﻟﻌﺪدﯾﺔ اﻟﺤﻘﯿﻘﺔ اﻟﻄﻮﯾﻠﺔ ‪:Double‬‬ ‫‪49‬‬ ‫ھﻲ ﻧﻔﺲ اﻟﻤﺘﻐﯿﺮات اﻟﻌﺪدﯾﺔ اﻟﺤﻘﯿﻘﺔ وﻟﻜﻦ ﯾﻤﻜﻦ ﺗﻤﺜﯿﻠﮭﺎ ﻓﻲ ﺧﻤﺴﺔ ﻋﺸﺮة ﺧﺎﻧﺔ‬ ‫وﺗﻜﺘﺐ ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬ ‫;‪double x‬‬ ‫ﺗﻄﺒﯿﻘﺎت ﻋﻠﻰ ﻗﻮاﻋﺪ ﺗﺴﻤﯿﺔ اﻟﻤﺘﻐﯿﺮات‬ ‫أﻧﻮاع اﻟﺒﯿﺎﻧﺎت واﻟﻤﺘﻐﯿﺮات ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ أﺣﺠﺎم اﻟﺒﯿﺎﻧﺎت ﻓﻲ اﻟﺬاﻛﺮة‬ ‫اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ واﻟﻤﻨﻄﻘﯿﺔ ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ‪ :‬اﻟﺠﺪول ﺷﻜﻞ)‪ (1-9‬اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ ذﻟﻚ ‪:‬‬ ‫‪49‬‬ :‫واﻟﺠﺪول اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ اﻟﻌﻤﻠﯿﺎت اﻟﻤﻨﻄﻘﯿﺔ‬.‫وھﺬه اﻟﻤﻌﺎﻣﻼت ﻗﺪ ﺗﻤﺖ دراﺳﺘﮭﺎ ﺑﺎﺳﺘﻔﺎﺿﺔ ﻓﻲ ﻣﻨﮭﺞ اﻟﺼﻒ اﻟﺜﺎﻧﻲ‬ ‫ أي‬. ‫اﻟﻜﻠﻤﺎت اﻟﻤﺤﺠﻮزة ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ وﻻﯾﺠﻮز اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ ﻏﯿﺮ ذﻟﻚ ﻛﺄﺳﻤﺎء ﻟﻤﺘﻐﯿﺮات ﻣﺜﻼ وﻟﺬﻟﻚ ﻓﮭﻲ ﻣﺤﺠﻮزة ﻟﻤﻔﺮدات اﻟﻠﻐﺔ ﻓﻘﻂ‬ ‫أﻧﮭﺎ ھﻲ اﻟﻜﻠﻤﺎت واﻷواﻣﺮ اﻟﺘﻲ ﺗﻌﺒﺮ وﺗﺴﺘﺨﺪم ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫اﻟﻜﻠﻤﺎت اﻟﻤﺤﺠﻮزة ﻓﻲ اﻟﻠﻐﺔ‬ abstract finally Public boolean float Return break for Short byte if Static Case implements Super Catch import Switch Char instanceof Synchronized Class int This Continue interface Throw Default long Throws Do native Transient Double new True Else null Try Extends package Void False private Volatile Final protected While 49 ‫اﻟﮭﺪف ﻣﻦ اﻟﻤﺤﺎﺿﺮة اﻟﺮاﺑﻌﺔ ‪:‬‬ ‫‪ – 1‬ﻣﻌﺮﻓﺔ اﻟﻄﻠﺒﺔﺑﺪاﻟﺔ اﻹﺧﺮاج ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ‬ ‫‪– 2‬ﺗﺪرﯾﺐ اﻟﻄﻠﺒﺔ ﻋﻠﻰ اﺳﺘﺨﺪام داﻟﺔ اﻹﺧﺮاج ﻣﻦ ﺧﻼل ﺑﺮاﻣﺞ وأﻣﺜﻠﺔ‬ ‫داﻟﺔ اﻹﺧﺮاج ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ‪:‬‬ ‫‪System.out.print‬‬ ‫وھﻲ ﻣﻦ اﻟﺪوال اﻟﮭﺎﻣﺔ ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ وھﻲ ﺗﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻟﻤﺨﺮﺟﺎت ﺳﻮاء ﻛﺎﻧﺖ ﻋﺪدﯾﺔ أو‬ ‫ﺣﺮﻓﯿﺔ ‪.‬‬ ‫وﻟﺘﻮﺿﯿﺢ ﻋﻤﻞ ھﺬه اﻟﺪاﻟﺔ ﺳﻮف ﯾﺘﻢ دراﺳﺔ ﺑﻌﺾ اﻷﻣﺜﻠﺔ ‪:‬‬ ‫ﻣﺜﺎل) ‪( 1‬اﻟﻤﻄﻠﻮب ﻋﻤﻞ ﺑﺮﻧﺎﻣﺠﺎ ﯾﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻟﻌﺒﺎرة ‪.Hello‬‬ ‫‪public class Hello‬‬ ‫{‬ ‫ﺑﺪاﯾﺔ و ﻧﮭﺎﯾﺔ اﻟﻜﻼس‬ ‫)‪public static void main (String [ ]s‬‬ ‫{‬ ‫ﺑﺪاﯾﺔ‬ ‫وﻧﮭﺎﯾﺔ‬ ‫; )" ‪System.out.print("Hello‬‬ ‫اﻟﻮظﯿﻔﺔ‬ ‫}‬ ‫}‬ ‫ﺷﺮح اﻟﺒﺮﻧﺎﻣﺞ‬ ‫‪ ‬اﻟﺴﻄﺮ اﻷول‬ ‫وھﺬا ھﻮ اﻟﺴﻄﺮ اﻷول ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ وھﻮ ﯾﺘﻜﻮن ﻣﻦ‪:‬‬ ‫‪) Public‬اﻟﻔﺼﯿﻠﺔ ﻋﺎﻣﺔ ( اﺋﻤﺎ ﺗﺴﺒﻖ ﺗﻌﺮﯾﻒ اﻟﻔﺌﺔ أو اﻟﻔﺼﯿﻠﺔ ‪ Class‬وھﻲ ﺗﻌﻨﻲ أن ھﺬه اﻟﻔﺌﺔ أو‬ ‫أي ﯾﻤﻜﻦ ﻷي ﻓﺌﺔ أﺧﺮى ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ اﺳﺘﺨﺪام ﻋﻨﺎﺻﺮ ھﺬه اﻟﻔﺌﺔ ‪.‬ﻷن ﺑﺮﻧﺎﻣﺞ اﻟﺠﺎﻓﺎ ﻗﺪ ﯾﺘﻜﻮن ﻣﻦ‬ ‫أﻛﺜﺮ ﻣﻦ ﻓﺌﺔ ‪.class‬‬ ‫‪class‬وھﻨﺎ ﯾﺘﻢ ﺑﺪاﯾﺔ اﻟﻔﺼﯿﻠﺔ‬ ‫‪Hello‬اﺳﻢ اﻟﻔﺼﯿﻠﺔ) اﻟﺒﺮﻧﺎﻣﺞ ( وﻟﻘﺪ ﺗﻢ ﺗﺴﻤﯿﺘﮫ ھﻨﺎ ﺑﺎﻻﺳﻢ اﻟﺬي ﻧﺮﯾﺪه ‪.‬‬ ‫‪ ‬وﻻﺑﺪ ھﻨﺎ أن ﻧﺸﯿﺮ إﻟﻰ ﻧﻘﻄﺔ ھﺎﻣﺔ ﺟﺪًا وھﻲ أﻧﮫ ﻋﻨﺪ ﺣﻔﻆ ﻣﻠﻒ اﻟﺠﺎﻓﺎ ﻻﺑﺪ أن ﯾﺘﻢ ﺣﻔﻈﮫ ﺑﻨﻔﺲ‬ ‫اﺳﻢ اﻟﻔﺼﯿﻠﺔ وﺑﻨﻔﺲ ﺷﻜﻞ اﻟﺤﺮوف واﻟﻤﺴﺎﻓﺎت وﻓﻲ ﻣﺜﺎﻟﻨﺎ ھﺬا ﺳﯿﻜﻮن اﻻﺳﻢ ‪.Hello.java‬‬ ‫{ﻗﻮس ﺑﺪاﯾﺔ ﺗﻌﺮﯾﻒ اﻟﻔﺼﯿﻠﺔ ‪.‬‬ ‫‪ ‬اﻟﺴﻄﺮ اﻟﺜﺎﻧﻲ‬ ‫‪49‬‬ ‫أي أن اﻟﺪاﻟﺔ ﺑﻌﺪ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻟﻦ ﺗﻌﻮد ﺑﺄي ﻗﯿﻢ‪.‬‬ ‫‪viod‬‬ ‫‪ main‬ﻧﻘﻄﺔ اﻟﺒﺪاﯾﺔ ﻟﻮظﯿﻔﺔ اﻟﻔﺼﯿﻠﺔ ‪. main method‬‬ ‫) ] [ ‪s (String‬اﻟﺠﻤﻠﺔ اﻟﻤﻮﺟﻮدة داﺧﻞ ﻗﻮﺳﻲ اﻟﺒﺪاﯾﺔ ﻟﻠﺪاﻟﺔ ‪ main‬وھﻲ ] [‪ String s‬ﺗﻌﻨﻲ‬ ‫ﻣﺼﻔﻮﻓﺔ ﻣﻦ اﻟﻨﻮع اﻟﺤﺮﻓﻲ وﺗﺴﻤﻰ ‪ s‬ﻟﺘﺨﺰﯾﻦ ﺟﻤﻠﺔ اﻟﻄﺒﺎﻋﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬‬ ‫وﻛﻤﺎ ﻗﻠﻨﺎ ﻣﻦ ﻗﺒﻞ أن ﻟﻐﺔ اﻟﺠﺎﻓﺎ ھﻲ ﻟﻐﺔ ﺣﺴﺎﺳﺔ ﻟﺤﺎﻟﺔ اﻷﺣﺮف ﻟﺬﻟﻚ ﯾﺠﺐ ﻣﻼﺣﻈﺔ أن ﺣﺮف ‪ S‬ﻓﻲ‬ ‫ﻛﻠﻤﺔ ‪ String‬ﯾﺠﺐ أن ﯾﻜﻮن ﺣﺮﻓﺎً ﻛﺒﯿﺮاً )‪ (capital letter‬وإﻻ ﺳﯿﻌﻄﻰ اﻟﺒﺮﻧﺎﻣﺞ ﺧﻄﺄ ﻋﻨﺪ‬ ‫اﻟﺘﺮﺟﻤﺔ ‪.‬‬ ‫اﻟﺴﻄﺮ اﻟﺜﺎﻟﺚ‬ ‫وھﺬا ھﻮ أﻣﺮ اﻟﻄﺒﺎﻋﺔ ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ وﺳﻮف ﻧﺘﻨﺎوﻟﮫ ﺑﺎﻟﺘﻔﺼﯿﻞ ﻓﻲ اﻷﻣﺜﻠﺔ اﻟﻘﺎدﻣﺔ ‪.‬‬ ‫وھﻨﺎ ﯾﺠﺐ أن ﻧﻼﺣﻆ أن ﺣﺮف ‪ S‬ﯾﺠﺐ أن ﯾﻜﻮن ﻛﺒﯿﺮ )‪(Capital letter‬‬ ‫"‪ "Hello‬اﻟﻨﺺ اﻟﻤﺮاد طﺒﺎﻋﺘﮫ وﯾﺠﺐ أن ﯾﻮﺿﻊ ﺑﯿﻦ ﻋﻼﻣﺘﻲ ﺗﻨﺼﯿﺺ )" "(‬ ‫وﻗﻮﺳﯿﻦ‬ ‫ﻻﺑﺪ وأن ﺗﻨﺘﮭﻲ ﻛﻞ ﺟﻤﻠﺔ )ﺳﻄﺮ أوأﻣﺮ( ﺑﻌﻼﻣﺔ );(‬ ‫ﺑﻌﺪ ذﻟﻚ ﯾﺘﻢ إﻧﮭﺎء اﻟﺒﺮﻧﺎﻣﺞ ﺑﻘﻮﺳﻲ اﻟﻨﮭﺎﯾﺔ ﺣﯿﺚ ﯾﻤﺜﻞ اﻟﻘﻮس اﻷول ﻧﮭﺎﯾﺔ اﻟﻮظﯿﻔﺔ‬ ‫‪method‬‬ ‫ﻟﻠﺪاﻟﺔ ‪ main‬واﻟﻘﻮس اﻵﺧﺮ ﯾﻤﺜﻞ ﻧﮭﺎﯾﺔ اﻟﻔﺼﯿﻠﺔ ‪. class‬واﻟﺸﻜﻞ اﻵﺗﻲ ﯾﺒﯿﻦ ذﻟﻚ ‪:‬‬ ‫ﺧﻄﻮات ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ‬ ‫‪ -1‬ﻧﺠﺮي ﻟﮫ ﻋﻤﻠﯿﺔ ﺗﺮﺟﻤﺔ ﻛﺎﻵﺗﻲ‪:‬‬ ‫‪Javac Hello.java‬‬ ‫إذا ﻟﻢ ﯾﻜﻦ ھﻨﺎك أﺧﻄﺎء ﻻ ﺗﻈﮭﺮ أي رﺳﺎﻟﺔ وﻣﻌﻨﻰ ذﻟﻚ أن اﻟﺒﺮﻧﺎﻣﺞ ﺻﺤﯿﺢ ﻟﻐﻮﯾﺎ وھﻨﺎ ﯾﺘﻢ‬ ‫ﻋﻤﻞ )إﻧﺸﺎء ( ﻣﻠﻒ ﻛﻼس أي ‪. Hello.class‬‬ ‫‪ -2‬ﺑﻌﺪ ذﻟﻚ ﻧﻘﻮم ﺑﻌﻤﻠﯿﺔ ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻵﺗﻲ‪:‬‬ ‫‪49‬‬ ‫‪Java Hello‬‬ ‫ﻓﺘﻈﮭﺮ ﻋﻠﻰ اﻟﺸﺎﺷﺔ ﻋﺒﺎرة ‪Hello‬‬ ‫وﺑﺬﻟﻚ ﯾﻜﻮن ﻗﺪ ﺗﻢ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬ ‫وﻛﻤﺎ ھﻮ ﻣﻌﺮوف ﻓﺄن ﺧﻄﻮات ﻛﺘﺎﺑﺔ وﺗﻨﻔﯿﺬ أي ﺑﺮﻧﺎﻣﺞ ﯾﻤﻜﻦ أن ﺗﻜﻮن ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ )‪(1-12‬‬ ‫وﯾﻤﻜﻦ إﺿﺎﻓﺔ ﻣﺘﺴﻠﺴﻼت اﻟﮭﺮوب ﻣﻊ ﺟﻤﻠﺔ اﻟﻄﺒﺎﻋﺔ ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻋﺪة أﺷﻜﺎل ﻣﻦ‬ ‫اﻟﻤﺨﺮﺟﺎت‬ ‫أﻣﺜﻠﺔ ﻋﻠﻰ ﺟﻤﻠﺔ اﻟﻄﺒﺎﻋﺔ‬ ‫ﻣﺜﺎل) ‪ :( 2‬ﻣﺎھﻲ ﻣﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ اﻟﺘﺎﻟﻲ ‪:‬‬ ‫{‪public class Welcome‬‬ ‫‪49‬‬ ‫{ )] [‪public static void main (String s‬‬ ‫; )"‪System.out.print("Welcome to‬‬ ‫; )"‪System.out.print("Libya‬‬ ‫}‬ ‫}‬ ‫ﻧﻼﺣﻆ أﻧﮫ ﻋﻨﺪ ﺗﻨﻔﯿﺬ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺳﺘﻈﮭﺮ اﻟﻌﺒﺎرة )‪ (Welcome to Libya‬ﻋﻠﻰ ﺳﻄﺮ‬ ‫واﺣﺪ‬ ‫وذﻟﻚ ﺗﺒﻌﺎ ﻟﻌﺒﺎرﺗﻲ اﻟﻄﺒﺎﻋﺔ ﻓﻲ اﻟﺴﻄﺮ )‪(4،3‬‬ ‫‪‬أﻣﺎ إذا أردﻧﺎ أن ﺗﻜﻮن اﻟﻤﺨﺮﺟﺎت ﻋﻠﻰ ﺳﻄﺮﯾﻦ ﻣﺨﺘﻠﻔﯿﻦ ﻓﯿﺘﻢ إﺿﺎﻓﺔ ﺣﺮﻓﻲ )‪ (ln‬ﻋﻠﻰ‬ ‫اﻟﻌﺒﺎرة ‪ print‬وﻣﻌﻨﺎھﺎ اﻻﻧﺘﻘﺎل إﻟﻰ ﺳﻄﺮ ﺟﺪﯾﺪ )‪ (new line‬وﯾﺘﻢ ذﻟﻚ ﻓﻲ اﻟﺴﻄﺮ اﻟﺜﺎﻟﺚ‬ ‫ﻛﺎﻵﺗﻲ ‪:‬‬ ‫; )"‪System.out.println ("Welcome to‬‬ ‫; )" ‪System.out.print("Libya‬‬ ‫‪Welcome to‬‬ ‫ﻓﺘﻜﻮن ﻣﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪Libya‬‬ ‫‪‬وﯾﻤﻜﻦ ﺗﻨﻔﯿﺬ ﻧﻔﺲ ﺷﻜﻞ اﻟﻤﺨﺮﺟﺎت اﻟﺴﺎﺑﻘﺔ ﺑﺴﻄﺮ واﺣﺪ وذﻟﻚ ﻋﻦ طﺮﯾﻖ إﺿﺎﻓﺔ )‪ (\n‬وﺗﻌﻨﻲ‬ ‫اﻻﻧﺘﻘﺎل إﻟﻰ ﺳﻄﺮ ﺟﺪﯾﺪ وﯾﻜﻮن ﺷﻜﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬ ‫; )" ‪System.out.print("Welcome to\n Libya‬‬ ‫ﻓﺘﻜﻮن ﺷﻜﻞ اﻟﻤﺨﺮﺟﺎت ﻛﺎﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ‪:‬‬ ‫‪Welcome to‬‬ ‫‪Libya‬‬ ‫وﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﯾﺘﻢ إﻟﻐﺎء اﻟﺴﻄﺮ رﻗﻢ )‪(4‬‬ ‫‪49‬‬ ‫‪‬أﻣﺎ اذا أردﻧﺎ طﺒﺎﻋﺔ ﻋﺪة أﺳﻄﺮ ﻣﺘﺘﺎﻟﯿﺔ ﺑﺄﻣﺮ طﺒﺎﻋﺔ واﺣﺪ ﻓﯿﺘﻢ ذﻟﻚ ﺑﺘﻜﺮار )‪ (\n‬ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫; )"‪System.out.print("One\n Two \n Three \n Four‬‬ ‫‪One‬‬ ‫ﻓﺘﻜﻮن اﻟﻤﺨﺮﺟﺎت ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪Two‬‬ ‫‪Three‬‬ ‫‪Four‬‬ ‫‪‬أﻣﺎ اذا أردﻧﺎ أن ﺗﻜﻮن اﻟﻤﺨﺮﺟﺎت ﻋﻠﻰ ﻣﺴﺎﻓﺎت أﻓﻘﯿﺔ ﻣﺘﺴﺎوﯾﺔ ﻓﺄﻧﻨﺎ ﻧﺴﺘﺨﺪم )‪ (\t‬ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪System.out.print("One\tTwo \t Three \t‬‬ ‫; )"‪Four‬‬ ‫وﺗﻜﻮن اﻟﻤﺨﺮﺟﺎت ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪One‬‬ ‫‪Two‬‬ ‫‪Three‬‬ ‫‪Four‬‬ ‫ﻣﺜﺎل )‪ :(3‬أﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺠﻤﻊ اﻟﻌﺪدﯾﻦ )‪(5+16‬‬ ‫وﯾﺘﻢ ذﻟﻚ ﺑﻜﺘﺎﺑﺔ اﻷرﻗﺎم اﻟﻤﺮاد ﺟﻤﻌﮭﺎ داﺧﻞ أﻗﻮاس ﺟﻤﻠﺔ ‪ print‬وﻟﻜﻦ ﻣﻦ دون ﻋﻼﻣﺘﻲ‬ ‫ﺗﻨﺼﯿﺺ‬ ‫ﻷن ﻋﻼﻣﺘﻲ اﻟﺘﻨﺼﯿﺺ ﺗﻜﻮن داﺋﻤﺎ ﻟﻄﺒﺎﻋﺔ اﻟﺤﺮوف وﺣﺘﻰ اذا ﺗﻢ ﻛﺘﺎﺑﺔ ارﻗﺎم داﺧﻞ ﻋﻼﻣﺘﻲ‬ ‫اﻟﺘﻨﺼﯿﺺ ﻓﺄﻧﮭﺎ ﺗﻌﺎﻣﻞ ﻣﻌﺎﻣﻠﺔ اﻟﺤﺮوف أي ﻻ ﯾﻤﻜﻦ اﺟﺮاء أي ﻋﻤﻠﯿﺎت ﺣﺴﺎﺑﯿﺔ ﻋﻠﯿﮭﺎ ‪.‬‬ ‫وﯾﻜﻮن ﺷﻜﻞ ﻋﺒﺎرة ‪ print‬ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫; )‪System.out.print(5+16‬‬ ‫وﯾﻜﻮن اﻟﻨﺎﺗﺞ )‪. (21‬‬ ‫‪ 1-2-5‬اﻟﺘﻌﻠﯿﻘﺎت ‪Comment‬‬ ‫‪49‬‬ ‫إن أي ﻣﺒﺮﻣﺞ ﯾﺤﺘﺎج ﻓﻲ ﺑﻌﺾ اﻷﺣﯿﺎن إﻟ ﺈﺿﺎﻓﺔ ﺑﻌﺾ اﻟﺘﻌﻠﯿﻘﺎت واﻟﻤﻼﺣﻈﺎت اﻟﺨﺎﺻﺔ ﺑﮫ و‬ ‫اﻟﺘﻲ ﻻ ﯾﺘﻢ ﺗﻨﻔﯿﺬھﺎ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ وﻟﻜﻦ ﻓﻘﻂ ﺗﺬﻛﺮه ﺑﺎﻟﻐﺮض ﻣﻦ اﻷواﻣﺮ اﻟﺘﻲ ﯾﻘﻮم ﺑﻜﺘﺎﺑﺘﮭﺎ ‪.‬‬ ‫وﯾﻤﻜﻦ ﺗﻌﺮﯾﻒ اﻟﺘﻌﻠﯿﻘﺎت ﻛﺎﻵﺗﻲ ‪:‬‬ ‫أﻧﮭﺎ اﻷﺳﻄﺮ اﻟﺘﻲ ﯾﺘﺠﺎھﻠﮭﺎ ﻣﺘﺮﺟﻢ اﻟﺠﺎﻓﺎ‪ ،‬و ﻟﻜﻨﮭﺎ ﺗﺠﻌﻞ اﻟﺒﺮﻧﺎﻣﺞ أﺳﮭﻞ ﻗﺮاءة ﻟﻠﻤﺒﺮﻣﺞ ﻧﻔﺴﮫ‪.‬‬ ‫ﺑﻌﺒﺎرة أﺧﺮى‪،‬أﻧﮭﺎ ﻣﺠﻤﻮﻋﺔ اﻟﻤﻼﺣﻈﺎت اﻟﺘﻲ ﯾﻀﻌﮭﺎ اﻟﻤﺒﺮﻣﺞ ﻓﻲ ﺑﺮﻧﺎﻣﺠﮫ ﻟﺘﺴﮭﯿﻞ ﻗﺮاءﺗﮫ‪.‬‬ ‫‪‬واﻟﺘﻌﻠﯿﻘﺎت ﻓﻲ اﻟﺠﺎﻓﺎ ھﻲ ﻧﻔﺴﮭﺎ اﻟﺘﻌﻠﯿﻘﺎت اﻟﻤﻮﺟﻮدة ﻓﻲ ﻟﻐﺔ ‪ C++‬ﻛﻤﺎ ﺳﺒﻖ دراﺳﺘﮫ ‪.‬‬ ‫وﻣﻦ أﻧﻮاع اﻟﺘﻌﻠﯿﻘﺎت ﻓﻲ اﻟﺠﺎﻓﺎ ‪:‬‬ ‫‪ -1‬اﻟﺘﻌﻠﯿﻖ ﺑﺴﻄﺮ واﺣﺪ‬ ‫وﯾﻜﻮن ھﺬا اﻟﺴﻄﺮ ﻣﺴﺒﻮﻗﺎ ﺑﻌﻼﻣﺘﻲ )‪ (//‬ﻛﺎﻵﺗﻲ ‪:‬‬ ‫أو ﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ اﻟﺘﻌﻠﯿﻘﺎت ﺑﺠﺎﻧﺐ أﺳﻄﺮ اﻟﺒﺮﻧﺎﻣﺞ ﻛﻤﺎ ﯾﻠﻲ ‪:‬‬ ‫‪ -2‬اﻟﺘﻌﻠﯿﻖ ﺑﻌﺪة أﺳﻄﺮ‬ ‫وﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ ﺗﻌﻠﯿﻖ ﻣﻜﻮن ﻣﻦ ﻋﺪة أﺳﻄﺮ ﻛﻤﺎ ﯾﻠﻲ‪:‬‬ ‫وﯾﻜﻮن اﻟﺘﻌﻠﯿﻖ ﺑﯿﻦ ﻋﻼﻣﺘﻲ )‪ */‬اﻟﺘﻌﻠﯿﻖ *‪(/‬‬ ‫ﻣﺜﺎل )‪ :( 4‬أﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺠﻤﻊ ﻋﺪدﯾﻦ أﺣﺪھﻤﺎ ﺻﺤﯿﺢ واﻵﺧﺮ ﺣﻘﯿﻘﻲ‪.‬‬ ‫‪49‬‬ ‫وﯾﻼﺣﻆ ﻓﻲ اﻟﺴﻄﺮ اﻷﺧﯿﺮ ﻟﻠﺒﺮﻧﺎﻣﺞ أﻧﮫ ﺗﻢ ﻛﺘﺎﺑﺔ )‪. (+C‬وذﻟﻚ ﻟﻄﺒﺎﻋﺔ ﻣﺤﺘﻮﯾﺎت اﻟﻤﺨﺰن‬ ‫)‪ (C‬أﻣﺎم ﻋﻼﻣﺔ )=( وﻋﻨﺪ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺳﻮف ﺗﻜﻮن اﻟﻤﺨﺮﺟﺎت ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪The Result = 27‬‬ ‫اﻟﮭﺪف ﻣﻦ اﻟﻤﺤﺎﺿﺮة اﻟﺨﺎﻣﺴﺔ ‪:‬‬ ‫‪.1‬أﻣﺜﻠﺔ ﺗﻄﺒﯿﻘﯿﺔ ﻋﻦ ﻛﻞ ﻣﺎ ﺳﺒﻖ‪.‬‬ ‫‪49‬‬ ‫‪.2‬اﻟﺘﻌﺮف ﻋﻠﻰ داﻟﺔ اﻹدﺧﺎل ‪. Input‬‬ ‫ﻣﺜﺎل )‪ ( 5‬ﻣﺎ ھﻮ ﻧﺎﺗﺞ ﻣﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ اﻟﺘﺎﻟﻲ‪:‬‬ ‫ﻓﻲ ھﺬا اﻟﻤﺜﺎل ﺗﻢ اﺳﺘﺨﺪام ﻋﺪة أﺷﯿﺎء ﻣﻨﮭﺎ ‪:‬‬ ‫‪ ‬اﻟﻄﺮق اﻟﻤﺨﺘﻠﻔﺔ ﻟﻺﻋﻼن ﻋﻦ اﻟﻤﺘﻐﯿﺮات‪.‬‬ ‫‪ ‬اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ اﻟﻤﺨﺘﻠﻔﺔ‪.‬‬ ‫‪ ‬ﺟﻤﻠﺔ اﻟﻄﺒﺎﻋﺔ‬ ‫وﺗﻜﻮن ﻣﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬ ‫‪a + b = 19‬‬ ‫‪a - b =11‬‬ ‫‪a * b = 06‬‬ ‫‪a/b =3‬‬ ‫اﻟﺘﺎﻟﻲ=‪a %b:‬‬ ‫ﻣﺜﺎل )‪ ( 6‬ﻣﺎھﻲ ﻣﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ ‪3‬‬ ‫ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺗﻄﺒﯿﻖ ﻋﻠﻰ اﻟﻤﺆﺛﺮات اﻷﺣﺎدﯾﺔ‬ ‫‪49‬‬ ‫وﺗﻜﻮن ﻣﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ ﻋﻠﻰ اﻟﺸﻜﻞ‪:‬‬ ‫‪A=15‬‬ ‫‪B=18‬‬ ‫ﻣﺜﺎل )‪ (7‬ﻣﺎھﻲ ﻣﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ اﻟﺘﺎﻟﻲ ‪:‬‬ ‫وﻧﻼﺣﻆ ﻓﻲ ھﺬا اﻟﻤﺜﺎل أن ﻗﯿﻤﺔ ‪ x1‬ﻻزاﻟﺖ ﺗﺴﺎوي ‪ 10‬وﻻﯾﺘﻢ إﻧﻘﺎص اﻟﻮاﺣﺪ ﻣﻨﮭﺎ إﻻ ﺑﻌﺪ‬ ‫اﻟﺨﺮوج ﻣﻦ ھﺬه اﻟﺨﻄﻮة وﺗﺼﺒﺢ ﻗﯿﻤﺔ ‪ z‬اﻟﺠﺪﯾﺪة ‪z=9‬‬ ‫‪X1=10‬‬ ‫وﯾﻜﻮن ﻧﺎﺗﺞ ﺧﺮج اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪X2=8‬‬ ‫‪1-2-6‬داﻟﺔ اﻹدﺧﺎل ‪:Input‬‬ ‫‪49‬‬ ‫ﺑﻄﺒﯿﻌﺔ اﻟﺤﺎل ﻻ ﯾﺨﻠﻮ أي ﺑﺮﻧﺎﻣﺞ ذو ﻓﺎﺋﺪة ﻣﻦ ﺟﻤﻠﺔ اﻹدﺧﺎل ‪ ,‬ﻓﮭﻲ اﻟﺠﻤﻠﺔ اﻟﺘﻲ ﺗﺮﺑﻂ‬ ‫اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﻟﻌﺎﻟﻢ اﻟﺨﺎرﺟﻲ وھﻲ اﻟﻮﺳﯿﻠﺔ اﻟﻮﺣﯿﺪة اﻟﺘﻲ ﯾﺴﺘﻄﯿﻊ ﻓﯿﮭﺎ اﻟﻤﺴﺘﺨﺪم إدﺧﺎل اﻟﻘﯿﻢ ﻋﻦ‬ ‫طﺮﯾﻖ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ﻟﻠﺤﺎﺳﺐ ‪ ,‬ﺣﺘﻰ ﯾﻘﻮم ﺑﻤﻌﺎﻟﺠﺔ ھﺬه اﻟﻘﯿﻢ ﺳﻮاء ﻛﺎن اﻟﺒﺮﻧﺎﻣﺞ )ﺑﺮﻧﺎﻣﺞ‬ ‫ﺣﺴﺎﺑﺎت – ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ‪. (......‬‬ ‫واﻟﺤﻘﯿﻘﺔ أن ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺗﺤﺘﻮي ﻋﻠﻰ أﻛﺜﺮ ﻣﻦ طﺮﯾﻘﺔ ﻹدﺧﺎل اﻟﺒﯿﺎﻧﺎت ﻣﻨﮭﺎ ﻣﺎ ھﻮ ﻣﻨﺎﺳﺐ‬ ‫ﻟﺘﻄﺒﯿﻘﺎت اﻟﻮﯾﻨﺪوز وﻣﻨﮭﺎ ﻣﺎ ھﻮ ﻣﻨﺎﺳﺐ ﻟﺒﺮاﻣﺞ اﻟﺪوس )‪ (Console Application‬وھﻲ‬ ‫اﻟﺒﯿﺌﺔ اﻟﺘﻲ ﺳﯿﺘﻢ ﺗﻨﻔﯿﺬ ﺑﺮاﻣﺠﻨﺎ ﻣﻦ ﺧﻼﻟﮭﺎ ﻓﻲ ھﺬا اﻟﻤﻨﮭﺞ ‪.‬‬ ‫وﻋﺒﺎرة اﻹدﺧﺎل اﻟﺘﻲ ﺳﻮف ﻧﺴﺘﺨﺪﻣﮭﺎ ھﻨﺎ ھﻲ اﻟﻌﺒﺎرة )‪ (Scanner‬وھﻲ ﻋﺒﺎرة ﻋﻦ ﻓﺼﯿﻠﺔ‬ ‫ﻣﻦ ﻓﺼﺎﺋﻞ ﻟﻐﺔ اﻟﺠﺎﻓﺎ وھﻲ ﻣﻮﺟﻮدة ﻓﻲ ﻣﻜﺘﺒﺔ ﺗﺴﻤﻰ ) ‪ ( java.util‬وﻻﺑﺪ ﻻﺳﺘﺨﺪام ﻋﺒﺎرة‬ ‫اﻹدﺧﺎل )‪ (Scanner‬أن ﻧﺴﺘﺪﻋﯿﮭﺎ ﻣﻦ ﻣﻜﺘﺒﺎت ﻟﻐﺔ اﻟﺠﺎﻓﺎ وﯾﺘﻢ ذﻟﻚ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬ ‫; ‪Import.java.util‬‬ ‫وﺑﺬﻟﻚ ﯾﻤﻜﻨﻨﺎ اﺳﺘﺨﺪام ﻋﺒﺎرة اﻹدﺧﺎل )‪ (Scanner‬ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﻄﻠﻮب ‪.‬‬ ‫وﯾﻜﻮن ذﻟﻚ ﺑﺤﺠﺰ ﻣﺨﺰن ﻟﻤﺘﻐﯿﺮ ﻓﻲ اﻟﺬاﻛﺮة ﻟﯿﺤﺘﻮي اﻟﺮﻣﺰ اﻟﻤﺪﺧﻞ ﻋﻦ طﺮﯾﻖ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ‬ ‫ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﯾﺘﻢ ﻛﺘﺎﺑﺔ اﻟﻌﺒﺎرة اﻟﺘﺎﻟﯿﺔ ‪:‬‬ ‫واﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ ﯾﻮﺿﺢ طﺮﯾﻘﺔ ﻋﻤﻞ ﻋﺒﺎرة اﻹدﺧﺎل )‪(Scanner‬‬ ‫‪49‬‬ ‫ﻣﺜﺎل )‪(8‬‬ ‫أﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻟﺠﻤﻊ رﻗﻤﯿﻦ ﻋﻠﻰ أن ﯾﺘﻢ إدﺧﺎل اﻟﺮﻗﻤﯿﻦ ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ﺛﻢ طﺒﺎﻋﺔ اﻟﻨﺎﺗﺞ ﻋﻠﻰ‬ ‫اﻟﺸﺎﺷﺔ‪.‬‬ ‫ﺷﺮح اﻟﺒﺮﻧﺎﻣﺞ‬ ‫‪ -1‬ﻓﻲ اﻟﺴﻄﺮ اﻷول ﺗﻢ اﺳﺘﺪﻋﺎء اﻟﻤﻜﺘﺒﺔ اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ ﺟﻤﻠﺔ اﻹدﺧﺎل ‪Scanner‬‬ ‫‪ -2‬أﻣﺎ ﻓﻲ اﻟﺴﻄﺮ اﻟﺮاﺑﻊ ﻓﻘﺪ ﺗﻢ اﻹﻋﻼن ﻋﻦ ﺛﻼث ﻣﺘﻐﯿﺮات ﻣﻦ اﻟﻨﻮع ‪integer‬‬ ‫وھﻲ اﻟﻤﺘﻐﯿﺮ ‪ a‬ﻟﺘﺨﺰﯾﻦ اﻟﺮﻗﻢ اﻷول واﻟﻤﺘﻐﯿﺮ ‪ b‬ﻟﺘﺨﺰﯾﻦ اﻟﺮﻗﻢ اﻟﺜﺎﻧﻲ واﻟﻤﺘﻐﯿﺮ ‪sum‬‬ ‫ﻟﺘﺨﺰﯾﻦ ﻧﺎﺗﺞ‬ ‫ﻋﻤﻠﯿﺔ اﻟﺠﻤﻊ‪.‬‬ ‫‪49‬‬ ‫‪ -3‬أﻣﺎ اﻟﺴﻄﺮ اﻟﺨﺎﻣﺲ ﻓﮭﻮ ﯾﻌﻤﻞ ﻋﻠﻰ ﺗﮭﯿﺌﺔ اﻟﺤﺎﺳﺐ ﻻﺳﺘﻘﺒﺎل ﻣﺪﺧﻼت ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ‬ ‫وﻟﻘﺪ ﺗﻢ ﺗﺴﻤﯿﺔ ﻣﺨﺰن ﻣﺆﻗﺖ ﺗﻢ ﺗﺴﻤﯿﺘﮫ ‪ Keyboard‬أو ﯾﻤﻜﻦ ﺗﺴﻤﯿﺘﮫ ﺑﺄي اﺳﻢ وﯾﺘﻢ ﻓﯿﮫ ﺗﺨﺰﯾﻦ‬ ‫اﻟﻘﯿﻤﺔ اﻟﻤﺪﺧﻠﺔ ﻣﺆﻗﺘﺎ ﺗﻤﮭﯿﺪا ﻟﻨﻘﻠﮭﺎ ﻟﻤﺘﻐﯿﺮ أﺧﺮ ﺳﯿﻜﻮن ھﻨﺎ ‪ a‬أو ‪ b‬وﻻﺣﻆ ﻛﻠﻤﺔ )‪(System.in‬‬ ‫أﺻﺒﺢ ﺑﺠﻮارھﺎ ﻛﻠﻤﺔ ‪ in‬دﻻﻟﺔ ﻋﻠﻰ ﻋﻤﻠﯿﺔ اﻹدﺧﺎل‬ ‫‪-4‬أﻣﺎ اﻟﺴﻄﺮ اﻟﺴﺎدس ﻓﻮظﯿﻔﺘﮫ ھﻲ طﺒﻊ رﺳﺎﻟﺔ ﻋﻠﻰ اﻟﺸﺎﺷﺔ ﺗﺨﺒﺮ اﻟﻤﺴﺘﺨﺪم ﺑﺈدﺧﺎل اﻟﺮﻗﻢ‬ ‫اﻷول‪.‬‬ ‫‪ -5‬أﻣﺎ ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻊ ﻓﯿﺘﻢ إدﺧﺎل اﻟﺮﻗﻢ اﻷول ﺛﻢ ﯾﺨﺰن ﻣﺆﻗﺘﺎً ﻓﻲ اﻟﻤﺨﺰن ‪ Keyboard‬ﺛﻢ‬ ‫ﻧﻨﻘﻞ أو ﻧﺨﺼﺺ اﻟﻘﯿﻤﺔ اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻤﺨﺰن ‪ Keyboard‬وھﻲ ھﻨﺎ اﻟﺮﻗﻢ اﻷول وﻧﻀﻌﮭﺎ ﻓﻲ‬ ‫اﻟﻤﺨﺰن ‪.a‬‬ ‫‪ -6‬أﻣﺎ ﻓﻲ اﻟﺴﻄﺮ اﻟﺜﺎﻣﻦ ﻓﮭﻮ ﯾﻜﺮر اﻟﻌﻤﻠﯿﺔ ﻟﻄﻠﺐ اﻟﺮﻗﻢ اﻟﺜﺎﻧﻲ‪.‬‬ ‫‪ -7‬وﻓﻲ اﻟﺴﻄﺮ اﻟﺘﺎﺳﻊ ﯾﺘﻢ إدﺧﺎل اﻟﺮﻗﻢ اﻟﺜﺎﻧﻲ ﻛﻤﺎ ﺳﺒﻖ وﻟﻜﻦ ﯾﺘﻢ ﺗﺨﺰﯾﻨﮫ ھﺬه اﻟﻤﺮة ﻓﻲ‬ ‫اﻟﻤﺨﺰن ‪.b‬‬ ‫‪ -8‬أﻣﺎ اﻟﺴﻄﺮ اﻟﻌﺎﺷﺮ ﻓﯿﺘﻢ ﻓﯿﮫ ﻋﻤﻠﯿﺔ اﻟﺠﻤﻊ ووﺿﻊ اﻟﻨﺎﺗﺞ ﻓﻲ اﻟﻤﺨﺰن ‪.sum‬‬ ‫‪ -9‬وﻓﻲ اﻟﺴﻄﺮ اﻟﺤﺎدي ﻋﺸﺮ ﯾﺘﻢ طﺒﺎﻋﺔ ﻗﯿﻤﺔ اﻟﺠﻤﻊ ﻋﻠﻰ اﻟﺸﺎﺷﺔ‪.‬‬ ‫ﻣﻼﺣﻈﺎت ھﺎﻣﺔ ﻋﻦ اﻟﺒﺮﻧﺎﻣﺞ‬ ‫‪ -1‬ﯾﺠﺐ اﻟﻤﻼﺣﻈﺔ ﺟﯿﺪا أن ھﻨﺎك ﻛﻠﻤﺎت ﻻﺑﺪ وأن ﯾﻜﺘﺐ اﻟﺤﺮف اﻷول ﻣﻨﮭﺎ ﺑﺤﺮوف ﻛﺒﯿﺮة‬ ‫‪ Capital letter‬ﻣﺜﻞ اﻟﻜﻠﻤﺎت ﻓﻲ ھﺬا اﻟﻤﺜﺎل )‪. (System , Scanner , nextInt‬‬ ‫‪ -2‬ﯾﺠﺐ أن ﺗﻜﻮن أﺳﻤﺎء اﻟﻤﺘﻐﯿﺮات واﺿﺤﺔ ﺣﺘﻰ ﯾﺘﻢ ﻓﮭﻢ اﻟﺒﺮﻧﺎﻣﺞ ﺟﯿﺪا‪.‬‬ ‫‪ -3‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻸرﻗﺎم اﻟﻤﺪﺧﻠﺔ ﯾﺠﺐ أن ﺗﻜﻮن ﻣﻦ اﻟﻨﻮع اﻟﺼﺤﯿﺢ ﻓﻘﻂ ‪ integer‬و ھﺬا ﯾﻜﻮن ﻓﻲ‬ ‫ﻣﺜﺎﻟﻨﺎ ﻓﻘﻂ ﻷﻧﻨﺎ طﻠﺒﻨﺎ ﻣﻨﮫ ذﻟﻚ ﻓﻲ ﺑﺮﻧﺎﻣﺠﻨﺎ وذﻟﻚ ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻊ ﻋﻦ طﺮﯾﻖ ﻋﺒﺎرة‬ ‫‪49‬‬ ‫)‪ (nextInt‬ﻓﺎﻟﺤﺮوف اﻟﺜﻼﺛﺔ ذات اﻟﻠﻮن اﻷﺣﻤﺮ ) ‪ (Int‬واﻟﺘﻲ ﺟﺎءت ﺑﻌﺪ ﻛﻠﻤﺔ‬ ‫‪ next‬ھﻲ اﻟﻤﺴﺌﻮﻟﺔ ﻋﻦ اﻟﻤﺪﺧﻼت ﯾﺠﺐ أن ﺗﻜﻮن ﻣﻦ اﻟﻨﻮع اﻷرﻗﺎم اﻟﺼﺤﯿﺤﺔ وھﻲ ﻟﮭﺎ‬ ‫ﻋﺪة ﺣﺎﻻت‪:‬‬ ‫‪‬ﺣﺎﻻت اﻟﻌﺒﺎرة ) ‪: (next‬‬ ‫واﻟﺠﺪول ﺷﻜﻞ )‪ (1-13‬اﻟﺘﺎﻟﻲ ﯾﻮﺿﺢ اﻟﺤﺎﻻت اﻟﻤﺨﺘﻠﻔﺔ ﻟﻠﻌﺒﺎرة ) ‪(next‬‬ ‫اﻟﺠﺪول ﺷﻜﻞ )‪(1-13‬‬ ‫ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺴﺎﺑﻖ‬ ‫ﻋﻨﺪ ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺴﺎﺑﻖ ﯾﻈﮭﺮ اﻵﺗﻲ ‪:‬‬ ‫‪Enter first number‬‬ ‫‪ -1‬اﻟﺴﻄﺮ اﻷول ﯾﻄﻠﺐ ﻣﻨﻚ إدﺧﺎل اﻟﺮﻗﻢ اﻷول‬ ‫‪20‬‬ ‫وھﻨﺎ ﺗﻢ إدﺧﺎل اﻟﻌﺪد ‪.20‬‬ ‫‪enter second number‬‬ ‫‪30‬‬ ‫‪ -2‬اﻟﺴﻄﺮ اﻟﺜﺎﻧﻲ ﯾﻄﻠﺐ ﻣﻨﻚ إدﺧﺎل اﻟﺮﻗﻢ اﻟﺜﺎﻧﻲ‬ ‫‪The sum is = 50‬‬ ‫وھﻨﺎ ﯾﺘﻢ إدﺧﺎل اﻟﻌﺪد ‪.30‬‬ ‫‪ -3‬أﻣﺎ اﻟﺴﻄﺮ اﻷﺧﯿﺮ ﻓﯿﻈﮭﺮ اﻟﻨﺘﯿﺠﺔ وھﻲ ﺣﺎﺻﻞ اﻟﺠﻤﻊ ‪.50‬‬ ‫وﯾﺠﺐ ﻣﻼﺣﻈﺔ أﻧﮫ ﻋﻨﺪ إدﺧﺎل اﻟﺮﻗﻢ اﻟﺜﺎﻧﻲ ﯾﺠﺐ اﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح ‪ Enter‬أو ﺗﺮك ﻣﺴﺎﻓﺔ‬ ‫واﺣﺪة‪.‬‬ ‫ﻣﺜﺎل )‪(9‬‬ ‫أﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﺗﻘﻮم ﻣﻦ ﺧﻼﻟﮫ ﺑﺈدﺧﺎل اﺳﻤﻚ ﻓﯿﻄﺒﻊ ﻋﺒﺎرة ﺗﺮﺣﯿﺐ ﺑﻚ‬ ‫‪49‬‬ ‫‪Cairo‬‬ ‫وﻧﻼﺣﻆ ھﻨﺎ أن ﻋﺒﺎرة اﻹدﺧﺎل ﻟﻢ ﺗﺘﻐﯿﺮ ﻛﺜﯿﺮا ﻋﻦ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺴﺎﺑﻖ واﻟﺬي ﺗﻢ ﻓﯿﮫ إدﺧﺎل‬ ‫اﻷرﻗﺎم‪,‬‬ ‫إﻻ اﺧﺘﻼﻓﺎ ﺑﺴﯿﻄﺎً ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎدس‪.‬‬ ‫وﻗﺪ ﺗﻢ ﻋﻤﻞ ﻣﺘﻐﯿﺮ ﺣﺮﻓﻲ ﻣﻦ ﻧﻮع ‪ String‬ھﻮ اﻟﻤﺘﻐﯿﺮ ‪ a‬واﻟﺬي ﯾﺘﻢ ﻓﯿﮫ ﺗﺨﺰﯾﻦ اﻟﺤﺮوف‬ ‫اﻟﻤﺪﺧﻠﺔ ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ﻛﻤﺎ ﻧﻼﺣﻆ ﺗﻐﯿﺮ اﻟﻌﺒﺎرة ‪ next‬وﻟﻘﺪ ﻛﺘﺒﺖ ﻣﻨﻔﺮدة ﺑﺪون أي اﺿﺎﻓﺎت‬ ‫)أﻧﻈﺮ اﻟﺠﺪول اﻟﺴﺎﺑﻖ اﻟﺬي ﯾﻮﺿﺢ وظﺎﺋﻒ ‪. (next‬‬ ‫ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻋﻨﺪ ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﯾﻄﻠﺐ ﻣﻨﻚ إدﺧﺎل أﺳﻤﻚ ﻓﻨﻘﻮم ﺑﺈدﺧﺎل اﻻﺳﻢ ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ﻓﯿﻘﻮم ﺑﻌﺪ‬ ‫ذﻟﻚ ﺑﻄﺒﺎﻋﺔ ﻋﺒﺎرة اﻟﺘﺮﺣﯿﺐ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪Enter your name‬‬ ‫‪Cairo‬‬ ‫‪Welcome Cairo‬‬ ‫اﻟﮭﺪف ﻣﻦ اﻟﻤﺤﺎﺿﺮة اﻟﺴﺎدﺳﺔ ‪:‬‬ ‫اﻟﺘﻌﺮف ﻋﻠﻰ ﺟﻤﻞ اﻻﺧﺘﯿﺎر اﻟﺸﺮطﯿﺔ ‪.‬‬ ‫‪ 1-2‬ﺟﻤﻞ اﻻﺧﺘﯿﺎر‪Selection Statements‬‬ ‫‪49‬‬ ‫وﯾﻄﻠﻖ ﻋﻠﯿﮭﺎ أﯾﻀًﺎ ﺟﻤﻞ اﻟﺘﺤﻜﻢ أو ﺟﻤﻞ اﺗﺨﺎذ اﻟﻘﺮار وﻟﻘﺪ ﺳﺒﻖ دراﺳﺔ ھﺬه اﻟﺠﻤﻞ ﻓﻲ اﻟﺼﻒ‬ ‫اﻟﺜﺎﻧﻲ وھﻲ ﻻ ﺗﺨﺘﻠﻒ ﻛﺜﯿﺮا ﻋﻦ اﻟﺠﻤﻞ اﻟﻤﻮﺟﻮدة ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ‪.‬‬ ‫‪ 1-3-1‬ﺟﻤﻠﺔ اﻟﺸﺮط ‪if statement‬‬ ‫‪ ‬اﻟﺼﯿﻐﺔ اﻷوﻟﻰ ﻟﺠﻤﻠﺔ ‪if‬‬ ‫ﺗﺄﺧﺬ اﻟﺠﻤﻠﺔ ‪ if‬اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ اﻟﺘﺎﻟﯿﺔ ‪:‬‬ ‫وﻣﻌﻨﻰ ھﺬه اﻟﻌﺒﺎرة أﻧﮫ اذا ﻛﺎن اﻟﺸﺮط اﻟﺬي ﺗﻘﻮم اﻟﺠﻤﻠﺔ ) ‪ ( if‬ﺑﺎﺧﺘﺒﺎره ﺻﺤﯿﺤﺎ ﻓﻘﻢ ﺑﺘﻨﻔﯿﺬ‬ ‫اﻟﺠﻤﻠﺔ اﻟﺘﻲ ﺑﯿﻦ اﻟﻘﻮﺳﯿﻦ ‪.‬وﻓﻲ ﺣﺎﻟﺔ ﻋﺪم ﺻﺤﺔ اﻻﺧﺘﺒﺎر ﻓﻼ ﺗﻘﻢ ﺑﺘﻨﻔﯿﺬ ﺟﻤﻠﺔ ) ‪ ( if‬وإﻧﻤﺎ‬ ‫اﺳﺘﻤﺮ ﻓﻲ ﺗﻨﻔﯿﺬ ﺑﻘﯿﺔ ﺟﻤﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ ﺑﻌﺪ ﺗﺨﻄﻲ ﺟﻤﻠﺔ ) ‪. ( if‬‬ ‫وﻓﻲ ﺣﺎﻟﺔ ﺗﻨﻔﯿﺬ ﺟﻤﻠﺔ واﺣﺪة ﻓﻘﻂ ﺑﻌﺪ ﺟﻤﻠﺔ ) ‪ ( if‬ﻓﺈﻧﮫ ﯾﻤﻜﻦ اﻻﺳﺘﻐﻨﺎء ﻋﻦ اﻷﻗﻮاس وﻓﻲ ھﺬه‬ ‫اﻟﺤﺎﻟﺔ ﺗﻨﺘﮭﻲ ﺟﻤﻠﺔ اﻟﺸﺮط ﺑﺎﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮطﺔ ) ; ( ﻛﻤﺎ ﯾﻠﻲ ‪:‬‬ ‫وﯾﻤﻜﻦ ﺗﻤﺜﯿﻞ ﻋﺒﺎرة ‪ if‬ﺑﺎﻟﺸﻜﻞ )‪ (1-14‬اﻟﺘﺎﻟﻲ ‪:‬‬ ‫ﺷﻜﻞ )‪(1-14‬‬ ‫وﻛﻤﺎ ﻧﻌﺮﻓﺪاﺋﻤﺎ ﻓﺈن اﻟﺸﺮط ﯾﺠﺐ أن ﯾﻜﻮن ﺷﺮطﺎ ﻣﻨﻄﻘﯿﺎ وﻟﻔﮭﻢ طﺮﯾﻘﺔ ﻋﻤﻞ ﺟﻤﻠﺔ ‪ if‬ﻧﺪرس‬ ‫اﻷﻣﺜﻠﺔ اﻟﺘﺎﻟﯿﺔ‪:‬‬ ‫‪49‬‬ ‫ﻣﺜﺎل )‪(10‬‬ ‫اﻟﻤﻄﻠﻮب ﻛﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﻔﺤﺺ رﻗﻢ ﯾﺘﻢ إدﺧﺎﻟﮫ ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ وﻟﯿﻜﻦ )‪ (x‬ﺑﺤﯿﺚ إذا‬ ‫ﻛﺎن ﻣﻮﺟﺒﺎ ﯾﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻟﻌﺒﺎرة )‪. (x is positive‬‬ ‫وﻧﻼﺣﻆ ھﻨﺎ أن ﺟﻤﻠﺔ ‪ if‬اﻧﺘﮭﺖ ﺑﺄول ﻓﺎﺻﻠﺔ ﻣﻨﻘﻮطﺔ ﻗﺎﺑﻠﺘﮭﺎ أي ﺑﻌﺪ ﻋﺒﺎرة اﻟﻄﺒﺎﻋﺔ وﻧﻼﺣﻆ ھﻨﺎ‬ ‫أﻧﻨﺎ ﻟﻢ ﻧﺴﺘﺨﺪم اﻷﻗﻮاس ﻓﻲ ﺟﻤﻠﺔ ‪ if‬ﻷﻧﻨﺎ ﻟﻢ ﻧﻜﺘﺐ ﻏﯿﺮ ﺳﻄﺮ واﺣﺪ ﻓﻘﻂ ﺑﻌﺪ ﻋﺒﺎرة ‪ if‬وھﻲ‬ ‫ﺟﻤﻠﺔ اﻟﻄﺒﺎﻋﺔ أﻣﺎ ﻟﻮ ﻛﺘﺒﻨﺎ أﻛﺜﺮ ﻣﻦ ﺟﻤﻠﺔ ﯾﺠﺐ ﺗﻨﻔﯿﺬھﺎ ﻋﻨﺪ ﺗﺤﻘﻖ اﻟﺸﺮط ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﯾﺠﺐ‬ ‫إﺿﺎﻓﺔ اﻷﻗﻮاس‬ ‫وﯾﺘﻢ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻛﻤﺎ ﯾﻠﻲ ‪:‬‬ ‫‪Enter Number X‬‬ ‫‪5‬‬ ‫‪X is positive‬‬ ‫ﻣﺜﺎل )‪(11‬‬ ‫ﻛﺮر ﻧﻔﺲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻣﻊ اﺳﺘﺨﺪام أﻛﺜﺮ ﻣﻦ ﺳﻄﺮ ﻓﻲ ﺟﻤﻠﺔ ‪ if‬ﻛﺎﻵﺗﻲ‪:‬‬ ‫‪49‬‬ ‫وﺗﻜﻮن ﻣﺨﺮﺟﺎت اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪0‬ح‬ ‫‪Enter Number X‬‬ ‫‪10‬‬ ‫‪X is positive‬‬ ‫‪X is negative‬‬ ‫‪ ‬اﻟﺼﯿﻐﺔ اﻟﺜﺎﻧﯿﺔ ﻟﺠﻤﻠﺔ ‪if‬‬ ‫‪49‬‬ ‫ﻣﺜﺎل )‪(12‬‬ ‫ﻧﻔﺬ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺴﺎﺑﻖ ﺑﺤﯿﺚ ﯾﻄﺒﻊ ﻋﺒﺎرة )‪ (X is positive‬ﻓﻲ ﺣﺎﻟﺔ إذا ﻛﺎﻧﺖ ﻣﻮﺟﺒﺔ وإﻻ‬ ‫ﯾﻄﺒﻊ ﻋﺒﺎرة )‪ (X is negative‬ﻓﻲ ﺣﺎﻟﺔ إذا ﻛﺎﻧﺖ ‪ X‬ﺳﺎﻟﺒﺔ‪.‬‬ ‫وﯾﺘﻢ ذﻟﻚ ﺑﺎﺳﺘﺨﺪام ﻋﺒﺎرة ‪ IF‬اﻟﻜﺎﻣﻠﺔ ﻛﺎﻵﺗﻲ‪:‬‬ ‫و ﯾﻤﻜﻨﻨﺎ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺴﺎﺑﻖ ﺣﺬف اﻷﻗﻮاس اﻟﻤﻮﺟﻮدة ﺑﻌﺪ ﺟﻤﻠﺔ ‪ , if‬وﻛﺬﻟﻚ ﺣﺬف اﻷﻗﻮاس‬ ‫اﻟﻤﻮﺟﻮدة ﺑﻌﺪ ‪ else‬وذﻟﻚ ﻟﻮﺟﻮد ﺟﻤﻠﺔ طﺒﺎﻋﺔ واﺣﺪة ﺑﻌﺪ ﻛﻼً ﻣﻨﮭﻤﺎ‪.‬‬ ‫‪49‬‬ ‫‪ 1-3-2‬ﺟﻤﻠﺔ ‪switch‬‬ ‫ﺗﺴﺘﺨﺪم ﻋﺒﺎرة ‪ if‬إذا ﻛﺎن ﺟﻮاب اﻟﺸﺮط ﻋﺒﺎرة ﻋﻦ اﺣﺘﻤﺎﻟﯿﻦ أو ﺛﻼﺛﺔ اﺣﺘﻤﺎﻻت ﻋﻠﻰ اﻷﻛﺜﺮ‪,‬‬ ‫أﻣﺎ إذا زاد ﻋﺪد اﻻﺣﺘﻤﺎﻻت ﻋﻠﻰ ذﻟﻚ ﻓﻤﻦ اﻷﻓﻀﻞ اﺳﺘﺨﺪام ﻋﺒﺎرة ‪ switch‬وﺻﯿﻐﺘﮭﺎ اﻟﻌﺎﻣﺔ‬ ‫ﻛﺎﻵﺗﻲ‪:‬‬ ‫وﻟﻜﻲ ﻧﻔﮭﻢ ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﺟﻤﻠﺔ ‪ switch‬ﻧﺠﺮي اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‪:‬‬ ‫ﻣﺜﺎل )‪(13‬‬ ‫ﻟﻨﻔﺮض أﻧﻨﺎ ﻧﺮﯾﺪ إن ﯾﻄﺒﻊ اﻟﺤﺎﺳﺐ ﺟﻤﻠﺔ ﺗﺮﺣﯿﺐ ﻣﻌﯿﻨﺔ إذا ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ أﺣﺪ اﻷرﻗﺎم ﻓﻲ‬ ‫ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ‪.‬‬ ‫ﺧﻄﻮات اﻟﺒﺮﻧﺎﻣﺞ ‪:‬‬ ‫‪49‬‬ ‫وﻋﻨﺪ ﺗﻨﻔﯿﺬ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﻓﺄﻧﮫ ﺗﺤﺪث إﺣﺪى اﻟﺤﺎﻻت اﻵﺗﯿﺔ‪:‬‬ ‫‪ -1‬إذا ﺗﻢ إدﺧﺎل اﻟﺮﻗﻢ ) (‪ 1‬ﻓﺈﻧﮫ ﯾﻄﺒﻊ اﻟﻌﺒﺎرة اﻷوﻟﻰ ‪ Welcome‬ﺛﻢ ﯾﺠﺪ ﻋﺒﺎرة ‪break‬‬ ‫ﻓﯿﺨﺮج ﺧﺎرج ﺟﻤﻠﺔ ‪ switch‬وﯾﻨﺘﮭﻲ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬‬ ‫‪ -2‬إذا ﺗﻢ إدﺧﺎل اﻟﺮﻗﻢ ) (‪ 2‬ﻓﺈﻧﮫ ﯾﻄﺒﻊ اﻟﻌﺒﺎرة اﻟﺜﺎﻧﯿﺔ ‪ how are you‬ﺛﻢ ﯾﺠﺪ ﻋﺒﺎرة اﻟﺘﻮﻗﻒ‬ ‫‪ break‬ﻓﯿﺨﺮج ﺧﺎرج ﺟﻤﻠﺔ ‪ switch‬وﯾﻨﺘﮭﻲ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬‬ ‫‪ -3‬وھﻜﺬا ﻓﻲ ﺣﺎﻟﺔ إدﺧﺎل اﻟﺮﻗﻢ )‪ (3‬ﻓﺈﻧﮫ ﯾﻄﺒﻊ اﻟﺠﻤﻠﺔ اﻟﺜﺎﻟﺜﺔ ﺛﻢ ‪ break‬ﺛﻢ ﯾﺨﺮج ‪.‬‬ ‫‪49‬‬ ‫‪ -4‬أﻣﺎ ﻓﻲ ﺣﺎﻟﺔ إدﺧﺎل أي رﻗﻢ ﻏﯿﺮ ﻣﻮﺟﻮد ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ وﻟﯿﻜﻦ )‪ (4‬ﻣﺜﻼ‪ ,‬ﻓﺈن اﻟﺒﺮﻧﺎﻣﺞ ﯾﻄﺒﻊ‬ ‫اﻟﻌﺒﺎرة اﻟﻤﻮﺟﻮدة ﻓﻲ ﺟﻤﻠﺔ ‪ default‬ﺛﻢ ﯾﻨﺘﮭﻲ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬‬ ‫‪ -5‬ﯾﺠﺐ ﻣﺮاﻋﺎة أن ﺟﻤﻠﺔ ‪ switch‬ﻟﮭﺎ ﻗﻮﺳﻲ ﺑﺪاﯾﺔ وﻧﮭﺎﯾﺔ‪.‬‬ ‫‪ -6‬ﯾﺠﺐ داﺋﻤﺎً أن ﺗﻨﺘﮭﻲ ﻛﻞ ﺣﺎﻟﺔ ‪ case‬ﻣﻦ ﺣﺎﻻت ‪ switch‬ﺑﺎﻟﻌﺒﺎرة ‪.break‬‬ ‫☺ ﺣﺎول أن ﺗﻘﻮم ﺑﺈﻟﻐﺎء ھﺬه اﻟﻌﺒﺎرة وﺗﺠﺮﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ ‪...‬ﻣﺎذا ﺗﺠﺪ ؟؟‬ ‫☺ﺟﺮب إدﺧﺎل ﺣﺮف ﺑﺪﻻ ﻣﻦ اﻟﺮﻗﻢ ﻣﺎذا ﺗﺠﺪ ؟؟‬ ‫اﻟﮭﺪف ﻣﻦ اﻟﻤﺤﺎﺿﺮة اﻟﺴﺎﺑﻌﺔ‪:‬‬ ‫‪49‬‬ ‫اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﯾﺔ ‪.‬‬ ‫‪ 1-3‬ﺟﻤﻞ اﻟﺪوران‬ ‫ﻛﺜﯿﺮا ﻣﺎ ﻧﺤﺘﺎج ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ إﻟﻰ ﺗﻜﺮار أﻣﺮ ﻣﻌﯿﻦ ﻣﻮﺟﮫ إﻟﻰ اﻟﺤﺎﺳﺐ ﻋﺪداً ﻣﻦ اﻟﻤﺮات ‪،‬‬ ‫وﺗﻮﻓﺮ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﻋﺪة وﺳﺎﺋﻞ ﺗﻤﻜﻦ اﻟﻤﺒﺮﻣﺞ ﻣﻦ أداء ھﺬا اﻟﺘﻜﺮار‪.‬وﻋﺎدة ﻣﺎ ﺗﺴﻤﻰ ھﺬه‬ ‫اﻟﻮﺳﺎﺋﻞ ﺑﺎﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﯾﺔ وﯾﻮﺟﺪ اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﯾﺔ اﻟﺘﻲ ﺳﻮف ﻧﺘﻨﺎوﻟﮭﺎ ﺑﺎﻟﺸﺮح‬ ‫وھﻲ‪:‬‬ ‫‪ -1‬اﻟﺤﻠﻘﺔ )‪(for Loop‬‬ ‫‪ -2‬اﻟﺤﻠﻘﺔ )‪(while loop‬‬ ‫‪ -3‬اﻟﺤﻠﻘﺔ )‪(do-while Loop‬‬ ‫‪4-1 -1‬اﻟﺤﻠﻘﺔ )‪(for loop‬‬ ‫ﺗﺴﺘﺨﺪم اﻟﺤﻠﻘﺔ ‪ for‬ﻟﺘﻜﺮار أﻣﺮ ﻣﻌﯿﻦ )أو ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷواﻣﺮ( ﻋﺪدا ﻣﻦ اﻟﻤﺮات‪.‬‬ ‫واﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ ﻟﮭﺬه اﻟﺤﻠﻘﺔ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬ ‫ﻧﻼﺣﻆ أن ھﺬه اﻟﺤﻠﻘﺔ ﺗﺘﻜﻮن ﻣﻦ ﺛﻼث أﻗﺴﺎم ھﻲ‪:‬‬ ‫‪ -1‬اﻟﻘﯿﻤﺔ اﻻﺑﺘﺪاﺋﯿﺔ ‪. initialization‬‬ ‫ﻧﻀﻊ ﻓﻲ ھﺬا اﻟﺠﺰء ﻣﺘﻐﯿﺮ وﻧﻌﻄﯿﮫ اﻟﻘﯿﻤﺔ اﻻﺑﺘﺪاﺋﯿﺔ اﻟﺘﻲ ﯾﺒﺪأ ﻣﻨﮭﺎ اﻟﺘﻜﺮار‪.‬‬ ‫‪ -2‬اﻟﺸﺮط ‪Condition‬‬ ‫ھﻨﺎ ﻧﻀﻊ اﻟﺸﺮط اﻟﺬي ﯾﺘﻮﻗﻒ ﻋﻨﺪه اﻟﻌﺪ‪.‬‬ ‫‪ -3‬ﻣﻘﺪار اﻟﺨﻄﻮة ‪increment‬‬ ‫ھﻨﺎ ﻧﻀﻊ ﻣﻘﺪار اﻟﺰﯾﺎدة ﻓﻲ ﺣﺎﻟﺔ اﻟﻌﺪ اﻟﺘﺼﺎﻋﺪي أو اﻟﻨﻘﺼﺎن ﻓﻲ ﺣﺎﻟﺔ اﻟﻌﺪ اﻟﺘﻨﺎزﻟﻲ‪.‬‬ ‫وﻧﻼﺣﻆ ھﻨﺎ أن ﺟﻤﻠﺔ ‪ for‬ﻟﮭﺎ ﻗﻮس ﺑﺪاﯾﺔ وﻗﻮس ﻧﮭﺎﯾﺔ وﯾﺘﻢ وﺿﻊ اﻷﻗﻮاس ﻓﻲ ﺣﺎﻟﺔ ﺗﻜﺮار‬ ‫أﻛﺜﺮ ﻣﻦ ﺟﻤﻠﺔ ﻛﻤﺎ ﯾﻤﻜﻦ اﻻﺳﺘﻐﻨﺎء ﻋﻦ ھﺬه اﻷﻗﻮاس ﻓﻲ ﺣﺎﻟﺔ ﺗﻜﺮار ﺟﻤﻠﺔ واﺣﺪة‪.‬‬ ‫ﻣﺜﺎل )‪(14‬‬ ‫‪49‬‬ ‫ﻧﻔﺬ ﺑﺮﻧﺎﻣﺞ ﺑﻠﻐﺔ اﻟﺠﺎﻓﺎ ﯾﻘﻮم ﺑﺎﻟﻌﺪ ﻣﻦ )‪ 1‬إﻟﻰ ‪. (20‬‬ ‫ﺧﻄﻮات اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬ ‫ﻓﻲ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺗﻢ اﺳﺘﺨﺪام ﻣﺘﻐﯿﺮ ‪ a‬ﻣﻦ ﻧﻮع ‪ integer‬ﻓﯿﺘﻢ زﯾﺎدة ﻗﯿﻤﺘﮫ ﻛﻞ ﻣﺮة ﺑﻤﻘﺪار واﺣﺪ‪.‬‬ ‫واﻟﻘﯿﻤﺔ اﻻﺑﺘﺪاﺋﯿﺔ ﻟﮫ داﺧﻞ اﻟﺤﻠﻘﺔ ‪ a=1‬ﺣﺘﻰ ﯾﺼﻞ اﻟﻌﺪ إﻟﻰ ‪.20‬ﺗﻨﺘﮭﻲ اﻟﺤﻠﻘﺔ وﯾﻨﺘﮭﻲ اﻟﺒﺮﻧﺎﻣﺞ‬ ‫و ﻓﻲ ﻛﻞ ﺧﻄﻮة زﯾﺎدة ﯾﺘﻢ طﺒﺎﻋﺔ ﻗﯿﻤﺘﮭﺎ ﻋﻠﻰ اﻟﺸﺎﺷﺔ ﻋﻦ طﺮﯾﻖ أﻣﺮ اﻟﻄﺒﺎﻋﺔ‪.‬‬ ‫وﺗﻜﻮن اﻷرﻗﺎم ﻓﻲ ﺷﺮﯾﻂ ﺗﺤﺖ ﺑﻌﻀﮭﺎ ﻋﻠﻰ اﻟﺸﺎﺷﺔ‪.‬ﻟﻤﺎذا ؟؟‬ ‫ﺛﻢ ﻓﻜﺮ ﻛﯿﻒ ﯾﻤﻜﻦ طﺒﺎﻋﺔ اﻟﻤﺨﺮﺟﺎت ﻣﺘﺠﺎورة أو ﻋﻠﻰ ﺳﻄﺮ واﺣﺪ ﺑﯿﻨﮭﺎ ﻣﺴﺎﻓﺎت ﻣﺘﺴﺎوﯾﺔ‪.‬‬ ‫ﻣﺜﺎل )‪(15‬‬ ‫اﻟﻤﻄﻠﻮب ﻋﻤﻞ ﻋﺪاد ﺗﺼﺎﻋﺪي ﯾﺒﺪأ اﻟﻌﺪ ﻣﻦ اﻟﻘﯿﻤﺔ )‪ (1‬ﺣﺘﻰ اﻟﻘﯿﻤﺔ )‪ (x‬ﻋﻠﻰ أن ﯾﺘﻢ إدﺧﺎل‬ ‫ﻗﯿﻤﺔ ﻧﮭﺎﯾﺔ اﻟﻌﺪ ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ‪.‬‬ ‫وﻓﻲ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ اﺳﺘﺨﺪﻣﻨﺎ ﻋﺒﺎرة اﻹدﺧﺎل ﻛﻤﺎ اﺳﺘﺨﺪﻣﻨﺎھﺎ ﻓﻲ اﻟﺒﺮاﻣﺞ اﻟﺴﺎﺑﻘﺔ‪ ,‬وﻋﻦ طﺮﯾﻘﮭﺎ‬ ‫ﺗﻢ إدﺧﺎل رﻗﻢ ﻧﮭﺎﯾﺔ اﻟﻌﺪ وﺗﻢ وﺿﻌﮫ ﻓﻲ اﻟﻤﺘﻐﯿﺮ )‪ (x‬ﺛﻢ وﺿﻌﻨﺎه ﻓﻲ اﻟﺠﺰء اﻟﺨﺎص ﺑﺎﻟﺸﺮط ﻓﻲ‬ ‫اﻟﺤﻠﻘﺔ ‪.‬وﻧﻼﺣﻆ ھﻨﺎ أن اﻟﻤﺘﻐﯿﺮ )‪ (a‬ﻗﺪ ﺗﻢ ﺗﻌﺮﯾﻔﮫ وإﻋﻄﺎؤه ﻗﯿﻤﺔ اﺑﺘﺪاﺋﯿﺔ داﺧﻞ اﻟﺤﻠﻘﺔ ‪int‬‬ ‫)‪.(a=1‬‬ ‫ﺧﻄﻮات اﻟﺒﺮﻧﺎﻣﺞ ‪:‬‬ ‫‪49‬‬ ‫ﻣﺜﺎل )‪(16‬‬ ‫ﻋﻤﻞ ﺑﺮﻧﺎﻣﺞ ﯾﻮﺿﺢ ﺗﻜﺮار أﻛﺜﺮ ﻣﻦ ﺟﻤﻠﺔ داﺧﻞ اﻟﺤﻠﻘﺔ ‪.for‬‬ ‫وﻓﻲ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺗﻢ اﺳﺘﺨﺪام أﻛﺜﺮ ﻣﻦ ﺟﻤﻠﺔ ﯾﺮاد ﺗﻜﺮارھﺎ داﺧﻞ اﻟﺤﻠﻘﺔ وﻟﺬﻟﻚ ﺗﻢ اﺳﺘﺨﺪام‬ ‫ﻗﻮﺳﻲ ﺑﺪاﯾﺔ وﻧﮭﺎﯾﺔ ﻟﻠﺤﻠﻘﺔ وھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻟﻤﺨﺮﺟﺎت ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬ ‫‪49‬‬ ‫‪-1-4-2‬اﻟﺤﻠﻘﺔ )‪(while loop‬‬ ‫ﻓﻲ ھﺬه اﻟﺤﻠﻘﺔ اﻟﺘﻜﺮارﯾﺔ ﻧﺤﺘﺎج إﻟﻰ اﻟﺸﺮط ﻓﻘﻂ وطﺎﻟﻤﺎ ﻛﺎن ھﺬا اﻟﺸﺮط ﻣﺘﺤﻘﻘﺎ اﺳﺘﻤﺮت‬ ‫اﻟﺤﻠﻘﺔ ﻓﻲ اﻟﺘﻜﺮار واﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ ﻟﮭﺎ ﻛﺎﻵﺗﻲ‪:‬‬ ‫وﻧﻼﺣﻆ ھﻨﺎ أن اﻟﺸﺮط ﯾﺄﺗﻲ أوﻻً ﻗﺒﻞ ﺗﻨﻔﯿﺬ اﻟﺤﻠﻘﺔ‪.‬‬ ‫ﻣﺜﺎل )‪(17‬‬ ‫أﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﻌﻤﻠﯿﺔ اﻟﻌﺪ ﻣﻦ )‪ 0‬إﻟﻰ ‪ ( 10‬ﺑﺎﺳﺘﺨﺪام اﻟﺤﻠﻘﺔ ‪ while loop‬ﻣﻊ طﺒﺎﻋﺔ‬ ‫اﻟﻨﺘﺎﺋﺞ ﻋﻠﻰ اﻟﺸﺎﺷﺔ‪.‬‬ ‫وﻧﻼﺣﻆ ﻓﻲ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ أﻧﮫ ﻻﺑﺪ ﻣﻦ إﻋﻄﺎء ﻗﯿﻤﺔ اﺑﺘﺪاﺋﯿﺔ ﻟﻠﻌﺪاد ‪. ( a=0)int‬وﻧﻼﺣﻆ ﻛﺬﻟﻚ‬ ‫أﻧﮫ ﻓﻲ ﺟﻤﻠﺔ ‪ while‬ﻻﺑﺪ ﻣﻦ وﺟﻮد اﻷﻗﻮاس‪,‬ﻷن اﻟﺠﻤﻠﺔ ﺑﻄﺒﯿﻌﺘﮭﺎ ﺗﺘﻜﻮن ﻣﻦ أﻛﺜﺮ ﻣﻦ‬ ‫ﺳﻄﺮ‪.‬ﻛﺬﻟﻚ ﯾﺘﻢ زﯾﺎدة ﻗﯿﻤﺔ )‪ (a‬ﺑﻤﻘﺪار واﺣﺪ ﻋﻦ طﺮﯾﻖ اﻟﺼﯿﻐﺔ )‪ (++a‬وﺑﻌﺪ أن ﯾﺘﻢ زﯾﺎدة‬ ‫ﻗﯿﻤﺔ ‪ a‬ﺑﻤﻘﺪار واﺣﺪ ﯾﺘﻢ اﻟﺘﺤﻘﻖ ﻣﻦ اﻟﺸﺮط ﻛﻞ ﻣﺮة وﺳﺘﻜﻮن ﻧﺘﯿﺠﺔ اﻟﺒﺮﻧﺎﻣﺞ طﺒﺎﻋﺔ اﻷﻋﺪاد‬ ‫ﻣﻦ )‪ 0‬إﻟﻰ ‪. (10‬‬ ‫‪49‬‬ ‫‪-1-4-3‬اﻟﺤﻠﻘﺔ )‪(do – while‬‬ ‫ﺗﺨﺘﻠﻒ ھﺬه اﻟﺤﻠﻘﺔ ﻋﻦ اﻟﺤﻠﻘﺎت اﻟﺴﺎﺑﻘﺔ ﻓﻲ ﻣﻜﺎن وﺿﻊ اﻟﺸﺮط‪ ،‬ﺣﯿﺚ ﯾﻜﺘﺐ اﻟﺸﺮط ﺑﻌﺪ‬ ‫اﻟﻌﺒﺎرات اﻟﻤﻄﻠﻮب ﺗﻜﺮارھﺎ وﺗﻜﻮن ﺻﯿﻐﺘﮭﺎ اﻟﻌﺎﻣﺔ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫ﺑﺈﻣﻜﺎﻧﻨﺎ اﻟﻘﻮل أن اﻟﺤﻠﻘﺔ )‪ (do-while‬ﺗﻌﻨﻲ ﻗﻢ ﺑﺎﻟﺪﺧﻮل ﻓﻲ اﻟﻜﺘﻠﺔ ‪ do‬وﻗﻢ ﺑﺘﻨﻔﯿﺬ اﻷواﻣﺮ‪.‬وﻓﻲ‬ ‫ﺣﺎﻟﺔ اﻻﻧﺘﮭﺎء ﻗﻢ ﺑﺎﺧﺘﺒﺎر اﻟﺘﻌﺒﯿﺮ اﻟﺸﺮطﻲ اﻟﻤﻮﺟﻮد ﻓﻲ آﺧﺮ اﻟﻜﺘﻠﺔ‪ ,‬وﻓﻲ ﺣﺎﻟﺔ ﺻﺤﺔ اﻟﺘﻌﺒﯿﺮ ﻗﻢ‬ ‫ﺑﺎﻟﺮﺟﻮع ﻣﺮة أﺧﺮى إﻟﻰ ﻣﻜﺎن اﻟﻜﻠﻤﺔ ‪.do‬‬ ‫ﻣﺜﺎل )‪(18‬‬ ‫ﯾﻤﻜﻦ ﺗﻄﺒﯿﻖ ﻧﻔﺲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻓﻲ ﺣﻠﻘﺔ ‪ while‬وھﻮ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﯾﻘﻮم ﺑﺎﻟﻌﺪ ﻣﻦ )‪ 0‬إﻟﻰ‬ ‫‪ ( 10‬وﻟﻜﻦ ھﺬه اﻟﻤﺮة ﺑﺎﺳﺘﺨﺪام اﻟﺤﻠﻘﺔ )‪ (do-while‬ﻛﺎﻵﺗﻲ ‪:‬‬ ‫وﻧﻼﺣﻆ ھﻨﺎ أﻧﮫ ﻓﻲ ﻛﻞ ﻣﺮة ﯾﻘﻮم اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﻟﺘﺤﻘﻖ ﻣﻦ اﻟﺸﺮط ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﺤﻠﻘﺔ‪ ,‬وھﺬا ﯾﻌﻨﻲ أﻧﮫ إذا ﻟﻢ‬ ‫ﯾﺘﺤﻘﻖ اﻟﺸﺮط ﻓﺴﻮف ﯾﺘﻢ ﺗﻜﺮار اﻟﺤﻠﻘﺔ ﻣﺮة واﺣﺪة ﻓﻘﻂ‪.‬‬ ‫‪49‬‬ ‫اﻟﮭﺪف ﻣﻦ اﻟﻤﺤﺎﺿﺮة اﻟﺜﺎﻣﻨﺔ‪:‬‬ ‫‪.1‬اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﺪوال‪.‬‬ ‫‪.2‬ﻣﺰاﯾﺎ اﺳﺘﺨﺪام اﻟﺪوال‪.‬‬ ‫‪.3‬اﻟﺘﻌﺮف ﻋﻠﻰ أﻧﻮاﻋﮭﺎ ‪.‬‬ ‫‪ 1-5‬اﻟﺪوال ‪methods‬‬ ‫وھﻲ ﻋﺒﺎرة ﻋﻦ طﺮق ودوال ﻣﻦ ﺗﻌﺮﯾﻒ )ﺗﺼﻤﯿﻢ( اﻟﻤﺒﺮﻣﺞ أو ﺗﻜﻮن ﺟﺎھﺰة ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬ ‫واﻟﻐﺮض ﻣﻨﮭﺎ ھﻮ ﺗﺴﮭﯿﻞ ﻋﻤﻠﯿﺔ اﻟﺒﺮﻣﺠﺔ ﻓﻲ اﻷﺷﯿﺎء اﻟﺘﻲ ﺗﺘﻜﺮر أﻛﺜﺮ ﻣﻦ ﻣﺮة ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬ ‫‪ ‬اﻟﮭﺪف ﻣﻦ اﻟﺪوال‬ ‫ﻓﻲ ﺣﺎﻟﺔ ﺗﻜﺮار ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺳﻄﻮر اﻷواﻣﺮ أﻛﺜﺮ ﻣﻦ ﻣﺮة ﻓﻲ ﻣﻮاﺿﻊ ﻣﺨﺘﻠﻔﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﻓﺈن أواﻣﺮ اﻟﺘﻜﺮار ﻟﻦ ﺗﻜﻮن ذات ﻣﻨﻔﻌﺔ‪.‬وﻟﺬﻟﻚ ﯾﺘﻢ ﻛﺘﺎﺑﺔ ھﺬه اﻟﺠﻤﻞ ﻣﻨﻔﺼﻠﺔ ﻋﻦ اﻟﺒﺮﻧﺎﻣﺞ‬ ‫اﻟﺮﺋﯿﺴﻲ ‪.‬‬ ‫‪ ‬ﻣﺰاﯾﺎ اﺳﺘﺨﺪام اﻟﺪوال‬ ‫‪ -1‬ﻋﺪم اﻟﺤﺎﺟﺔ إﻟﻰ ﺗﻜﺮار اﻟﺘﻌﻠﯿﻤﺎت داﺧﻞ اﻟﺒﺮﻧﺎﻣﺞ ﺣﯿﺚ ﯾﺘﻢ إﻧﺸﺎء اﻟﺪاﻟﺔ ﻣﺮة واﺣﺪة وﯾﻤﻜﻦ‬ ‫اﺳﺘﺪﻋﺎﺋﮭﺎ أﻛﺜﺮ ﻣﻦ ﻣﺮة ﻋﻨﺪ اﻟﺤﺎﺟﺔ إﻟﯿﮭﺎ ‪.‬‬ ‫‪ -2‬ﺑﺎﺳﺘﺨﺪام اﻟﺪوال ﯾﺼﺒﺢ اﻟﺒﺮﻧﺎﻣﺞ أﻛﺜﺮ وﺿﻮﺣﺎ‪.‬‬ ‫‪ -3‬ﺑﺎﺳﺘﺨﺪام اﻟﺪوال اﻟﺠﺎھﺰة ﯾﻤﻜﻦ ﺗﻮﻓﯿﺮ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻮﻗﺖ واﻟﺠﮭﺪ‪.‬‬ ‫‪ ‬ھﻨﺎك ﻧﻮﻋﺎن ﻣﻦ اﻟﺪوال ﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﻤﺎ‪:‬‬ ‫‪ -1‬دوال ﺟﺎھﺰة ﯾﻤﻜﻦ أن ﺗﻮﻓﺮھﺎ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ‪.‬‬ ‫‪ -2‬دوال ﯾﻤﻜﻦ ﺗﻌﺮﯾﻔﮭﺎ ﻋﻦ طﺮﯾﻖ اﻟﻤﺴﺘﺨﺪم‪.‬‬ ‫‪ 5-1 -1‬دوال ﺟﺎھﺰة ﯾﻤﻜﻦ إن ﺗﻮﻓﺮھﺎ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ‪.‬‬ ‫ﻣﺜﻞ اﻟﺪوال اﻟﺮﯾﺎﺿﯿﺔ ﺑﺄﻧﻮاﻋﮭﺎ واﻟﺠﺪول ﺷﻜﻞ )‪ (1-15‬اﻵﺗﻲ ﯾﺒﯿﻦ اﻟﺪوال اﻟﺤﺴﺎﺑﯿﺔ اﻟﺠﺎھﺰة‬ ‫ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ‪:‬‬ ‫‪49‬‬ ‫ﺷﻜﻞ )‪(1-15‬‬ ‫اﻟﺠﺪول ﺷﻜﻞ )‪ (1-16‬ﯾﺒﯿﻦ اﻟﻤﻜﺘﺒﺎت اﻟﺨﺎﺻﺔ ﺑﺎﻟﺠﺎﻓﺎ وﻣﺎ ﺗﻘﺪﻣﮫ ھﺬه اﻟﻤﻜﺘﺒﺎت ﻣﻦ ﺧﺪﻣﺎت ‪.‬‬ ‫اﻟﺘﻄﺒﯿﻘﺎت‬ ‫اﻟﺨﺪﻣﺎت ‪ /‬اﻟﻔﺌﺎت‬ ‫اﻟﻤﻜﺘﺒﺔ‬ ‫اﻟﺒﺮﻣﺠﺔ اﻟﺨﻮارزﻣﯿﺔ اﻟﻌﺎدﯾﺔ‪.‬‬ ‫‪ java.util‬ﺗﺤﺘﻮي ھﺬه اﻟﺒﺎﻗﺔ ﻋﻠﻰ ﻓﺌﺎت ﺗﻤﺜﻞ ھﯿﺎﻛﻞ ﺑﯿﺎﻧﺎت‬ ‫ﻋﺎﻣﺔ اﻻﺳﺘﻌﻤﺎل ﻣﺜﻞ اﻟﺼﻔﻮف و اﻟﻤﺠﻤﻮﻋﺎت و‬ ‫ﻏﯿﺮھﺎ‪.‬‬ ‫اﻟﺒﺮاﻣﺞ اﻟﺘﻲ ﺗﺘﻄﻠﺐ ﻣﻌﺎﻣﻠﺔ‬ ‫‪ java.io‬ﺗﺤﺘﻮي ھﺬه اﻟﺒﺎﻗﺔ ﻋﻠﻰ ﻓﺌﺎت ﺗﺘﺼﺮف ﻓﻲ ﻋﻤﻠﯿﺎت‬ ‫ﻓﻮرﯾﺔ ﻣﻊ اﻟﻤﺴﺘﺨﺪم‪.‬‬ ‫ﺗﺼﺪﯾﺮ و ﺗﻮرﯾﺪ اﻟﺒﯿﺎﻧﺎت‪.‬‬ ‫ﻛﻞ اﻟﺒﺮاﻣﺞ‪ /‬ﻛﻞ اﻟﺘﻄﺒﯿﻘﺎت‪.‬‬ ‫‪ java.lang‬ﺗﺤﺘﻮي ھﺬه اﻟﺒﺎﻗﺔ ﻋﻠﻰ اﻟﻔﺌﺎت اﻟﻤﺘﻌﻠﻘﺔ ﺑﺘﻨﻔﯿﺬ‬ ‫اﻟﺒﺮﻧﺎﻣﺞ و ﻣﺮاﻗﺒﺘﮫ‪ ،‬ﺑﻤﺎ ﻓﯿﮭﺎ اﻟﻔﺌﺎت اﻟﺘﻲ ﺗﻌﺎﻟﺞ‬ ‫أﺧﻄﺎء اﻟﺘﻨﻔﯿﺬ و ﺑﻌﺾ اﻟﻔﺌﺎت اﻟﻌﺎﻣﺔ‪.‬ﻧﻈﺮا‬ ‫ﻷھﻤﯿﺘﮭﺎ‪ ،‬ﻓﺈن ھﺬه اﻟﺒﺎﻗﺔ ﯾﻘﻊ ﺗﻮرﯾﺪھﺎ ﺿﻤﻨﯿﺎ ﻓﻲ‬ ‫ﻛﻞ ﺑﺮﻧﺎﻣﺞ‪.‬‬ ‫‪49‬‬ ‫اﻟﺘﻄﺒﯿﻘﺎت اﻟﮭﻨﺪﺳﯿﺔ و ﺗﻄﺒﯿﻘﺎت‬ ‫‪ java.math‬ﺗﺤﺘﻮي ھﺬه اﻟﺒﺎﻗﺔ ﻋﻠﻰ ﻓﺌﺎت ﺗﻘﻮم ﺑﻌﻤﻠﯿﺎت‬ ‫اﻟﺮﯾﺎﺿﯿﺎت‪.‬‬ ‫ﺣﺴﺎﺑﯿﺔ‪ ،‬ﺑﺄي دﻗﺔ ﯾﻄﻠﺒﮭﺎ اﻟﻤﺴﺘﺨﺪم‪.‬‬ ‫ﺗﻄﺒﯿﻘﺎت اﻟﺘﺼﺮف اﻟﺘﻲ ﺗﺘﻄﻠﺐ‬ ‫‪ java.sql‬ﺗﺤﺘﻮي ھﺬه اﻟﺒﺎﻗﺔ ﻋﻠﻰ ﻓﺌﺎت ﺗﺨﺘﺺ ﻓﻲ ﻋﻤﻠﯿﺎت‬ ‫ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎت‪.‬‬ ‫ﻋﻠﻰ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‪.‬‬ ‫ﺗﻄﺒﯿﻘﺎت ﺗﺘﻄﻠﺐ واﺟﮭﺎت رﺳﻮﻣﯿﺔ‬ ‫‪ java.awt‬ﺗﺤﺘﻮي ھﺬه اﻟﺒﺎﻗﺔ ﻋﻠﻰ ﻓﺌﺎت ﺗﺨﺘﺺ ﻓﻲ اﻟﺮﺳﻢ و‬ ‫ﻣﻊ اﻟﻤﺴﺘﺨﺪم‪.‬‬ ‫ﻓﻲ إﻧﺠﺎز واﺟﮭﺎت رﺳﻮﻣﯿﺔ‪.‬‬ ‫ﺗﻄﺒﯿﻘﺎت ﺗﺘﻄﻠﺐ واﺟﮭﺎت رﺳﻮﻣﯿﺔ‬ ‫‪ java.swing‬ﺗﻤﺪد ھﺬه اﻟﺒﺎﻗﺔ إﻣﻜﺎﻧﯿﺎت و ﻗﺪرات اﻟﺒﺎﻗﺔ اﻟﺴﺎﺑﻘﺔ‪.‬‬ ‫ﻣﻊ اﻟﻤﺴﺘﺨﺪم‪.‬‬ ‫ﺗﻄﺒﯿﻘﺎت ﺗﺘﻄﻠﺐ إﺟﺮاءات أﻣﻨﯿﺔ‪.‬‬ ‫‪ java.securit‬ﺗﺤﺘﻮي ھﺬه اﻟﺒﺎﻗﺔ ﻋﻠﻰ ﻓﺌﺎت ﺗﺨﺘﺺ ﻓﻲ ﺗﻨﻔﯿﺬ‬ ‫‪ y‬إﺟﺮاءات أﻣﻨﯿﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ‪ ،‬ﻣﺜﻞ ﻣﺮاﻗﺒﺔ‬ ‫اﻟﻤﺴﺘﺨﺪﻣﯿﻦ و ﺻﯿﺎﻧﺔ اﻟﻮارد و ﻏﯿﺮ ذﻟﻚ‪.‬‬ ‫ﺷﻜﻞ )‪(1-16‬‬ ‫ﯾﻤﻜﻦ اﺳﺘﺪﻋﺎء اﻟﺪوال ﺑﻜﺘﺎﺑﺔ اﺳﻢ اﻟﻔﺼﯿﻠﺔ)اﻟﻔﺌﺔ( ﻣﺘﺒﻮﻋﺎً ﺑﻨﻘﻄﺔ ﺑﻌﺪھﺎ اﺳﻢ اﻟﻄﺮﯾﻘﺔ ﺛﻢ ﻗﺎﺋﻤﺔ‬ ‫اﻟﻤﻌﺎﻣﻼت داﺧﻞ أﻗﻮاس داﺋﺮﯾﺔ ﻛﻤﺎ ﯾﻠﻲ‪:‬‬ ‫)‪Class_Name.method_Name(Argument List‬‬ ‫ﻓﻤﺜﻼ إذا أردﻧﺎ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺠﺬر أﻟﺘﺮﺑﯿﻌﻲ ﻟﻠﻌﺪد)‪ (25‬ﻓﯿﻤﻜﻦ ﻛﺘﺎﺑﺔ اﻟﺼﯿﻐﺔ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫; ))‪System.out.print(Math.sqrt (25.0‬‬ ‫ﺗﻘﻮم ھﺬه اﻟﺠﻤﻠﺔ ﺑﺎﺳﺘﺪﻋﺎء اﻟﺪاﻟﺔ )‪ (sqrt‬اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻔﺼﯿﻠﺔ )‪ (Math‬واﻟﺘﻲ ﺗﺄﺧﺬ ﻣﻌﺎﻣﻞ‬ ‫واﺣﺪ ﻣﻦ ﻧﻮع )‪ (Double‬وﻧﺘﯿﺠﺔ ﺗﻨﻔﯿﺬ ھﺬه اﻟﺠﻤﻠﺔ ﺳﯿﻜﻮن طﺒﺎﻋﺔ )‪. (5.0‬‬ ‫‪49‬‬ ‫ﻣﺜﺎل )‪: (19‬‬ ‫اﻟﻤﻄﻠﻮب ﻋﻤﻞ ﺑﺮﻧﺎﻣﺞ ﯾﺴﺘﻘﺒﻞ ﻗﯿﻤﺔ ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ﺛﻢ ﯾﻘﻮم ﺑﺈﯾﺠﺎد اﻟﺠﺬر اﻟﺘﺮﺑﯿﻌﻲ وﻣﺮﺑﻊ‬ ‫ھﺬا اﻟﺮﻗﻢ وذﻟﻚ ﺑﺎﺳﺘﺨﺪام اﻟﺪوال اﻟﺠﺎھﺰة ﻓﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ‪.‬‬ ‫ﺧﻄﻮات اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻵﺗﻲ ‪:‬‬ ‫ﻓﻲ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺗﻢ اﻹﻋﻼن ﻋﻦ ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع ‪.(double number) double‬‬ ‫ﺛﻢ ﯾﺘﻢ إدﺧﺎل اﻟﺮﻗﻢ ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ وﻓﻲ ﺳﻄﺮي اﻟﻄﺒﺎﻋﺔ‪.‬اﻟﺴﻄﺮ اﻷول ﯾﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻟﺠﺬر‬ ‫اﻟﺘﺮﺑﯿﻌﻲ أﻣﺎ اﻟﺴﻄﺮ اﻟﺜﺎﻧﻲ ﻓﯿﻘﻮم ﺑﻄﺒﺎﻋﺔ ﻣﺮﺑﻊ ھﺬا اﻟﺮﻗﻢ ‪.‬‬ ‫وﻋﻨﺪ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺗﻈﮭﺮ اﻟﻤﺨﺮﺟﺎت ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬ ‫‪49‬‬ ‫‪ -1-5-2‬اﻟﺪوال ﯾﻤﻜﻦ ﺗﻌﺮﯾﻔﮭﺎ ﻋﻦ طﺮﯾﻖ اﻟﻤﺴﺘﺨﺪم ‪:‬‬ ‫اﻟﺸﻜﻞ اﻟﻌﺎم ﻟﻠﺪاﻟﺔ‬ ‫وﻓﯿﻤﺎ ﯾﻠﻲ ﺷﺮح اﻟﺸﻜﻞ اﻟﻌﺎم ﻟﻠﺪاﻟﺔ‪:‬‬ ‫‪ ‬طﺮﯾﻘﺔ اﻟﻮﺻﻮل ﻟﻠﺪاﻟﺔ‬ ‫وﯾﻮﺟﺪ ﺛﻼث طﺮق ﻧﺬﻛﺮھﺎ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬ ‫‪: public -1‬أي ﻋﺎﻣﺔ أي ﺗﺴﺘﻄﯿﻊ اﻟﻮﺻﻮل اﻟﯿﮭﺎ ﻣﻦ ﺧﺎرج اﻟﻔﺼﯿﻠﺔ وﻣﻦ ﺧﺎرج اﻟﺒﺮﻧﺎﻣﺞ‬

Use Quizgecko on...
Browser
Browser