ﺍﻟﺩﺭﺱ ﺍﻻﻭل: ﻤﻘﺩﻤﺔ Javaﺍﻟﺠﺎﻓﺎ ﻫﻰ ﺍﺤﺩﻯ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﺍﻟﺘﻰ ﺍﺼﺒﺤﺕ ﺸﺎﺌﻌﺔ ﺍﻻﺴﺘﺨﺩﺍﻡ ﻓﻰ ﺍﻵﻭﻨﺔ ﺍﻻﺨﻴﺭﺓ ﻭﺫﻟﻙ ﻟﻤﻴﺯﺍﺘﻬﺎ ﺍ...
6 downloads
148 Views
2MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ﺍﻟﺩﺭﺱ ﺍﻻﻭل: ﻤﻘﺩﻤﺔ Javaﺍﻟﺠﺎﻓﺎ ﻫﻰ ﺍﺤﺩﻯ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﺍﻟﺘﻰ ﺍﺼﺒﺤﺕ ﺸﺎﺌﻌﺔ ﺍﻻﺴﺘﺨﺩﺍﻡ ﻓﻰ ﺍﻵﻭﻨﺔ ﺍﻻﺨﻴﺭﺓ ﻭﺫﻟﻙ ﻟﻤﻴﺯﺍﺘﻬﺎ ﺍﻟﻌﺩﻴﺩﺓ ﻭﻫﻰ ﻤﻥ ﺘﻁﻭﻴﺭ ﺸﺭﻜﺔ ﺴﻥ ﻤﺎﻴﻜﺭﻭﺴﻴﺴﺘﻡ . Sun Microsystems ﻭﻟﻜﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻗﺒل ﺍﻥ ﻨﺒﺩﺃ ﻓﻰ ﺍﻟﺘﺤﺩﺙ ﻋﻥ ﺍﻟﺠﺎﻓﺎ ﺘﻌﺎﻟﻰ ﺍﻭﻻ ﻨﻘﻭﻡ ﺒﺘﻘﺴﻴﻡ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ. ﺘﻨﻘﺴﻡ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﺍﻟﻰ ﺜﻼﺙ ﻤﺴﺘﻭﻴﺎﺕ: ﺍﻻﻭل Simple Language : ﻭﻫﻰ ﺍﺒﺴﻁ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﻭﻻﺘﺤﺘﺎﺝ ﺍﻟﻰ ﻤﺘﺭﺠﻡ ﺍﻟﺫﻯ ﺴﻴﻘﻭﻡ ﺒﺘﺤﻭﻴل ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﻰ ﻤﺎ ﻴﺴﻤﻰ ﻟﻐﺔ ﺍﻻﻟﻪ ﻭﻫﻭ ﻤﺎ ﻴﻔﻬﻤﺔ ﺍﻟﻜﻤﺒﻴﻭﺘﺭ ﻭﻫﻰ ﺘﻜﻭﻥ ﻟﻐﺔ ﺒﺴﻴﻁﺔ ﻓﻰ ﺍﻭﺍﻤﺭﻫﺎ ﻓﻰ ﺘﻌﻠﻤﻬﺎ ﻭﻤﻥ ﺍﻤﺜﻠﺘﻬﺎ ).(HTML ﺍﻟﺜﺎﻨﻰ Base Programming Language : ﻭﻫﻰ ﺍﻟﻠﻐﺎﺕ ﺍﻟﺘﻰ ﺘﻌﺘﻤﺩ ﻓﻰ ﺍﻭﺍﻤﺭﻫﺎ ﻋﻠﻰ ﻟﻐﺎﺕ ﺍﺨﺭﻯ ﺍﺴﺎﺴﻴﺔ ﻭﻤﻥ ﺍﻤﺜﻠﺘﻬﺎ )ASP ﻭﻫﻰ ﺘﻌﺘﻤﺩ ﻋﻠﻰ ﻓﺠﻭل ﺒﻴﺴﻙ ﻭ ﻓﻰ ﺒﻰ ﺴﻜﺭﻴﺒﺕ ( ) JSPﻭﻫﻰ ﺘﻌﺘﻤﺩ ﻋﻠﻰ ﺍﻟﺠﺎﻓﺎ(. ﺍﻟﺜﺎﻟﺙ Full Programming Language : ﻭﻫﺫﻩ ﻫﻰ ﺍﻟﻠﻐﺎﺕ ﺍﻻﺴﺎﺴﻴﺔ ﻭﻤﻥ ﺍﻤﺜﻠﺘﻬﺎ ) (c++ ,VB,Javaﺴﻰ ++ﻭ ﻓﺠﻭل ﺒﻴﺴﻙ ﻭ ﺍﻟﺠﺎﻓﺎ. Programming Langue
Full Programming Langue
Base Programming Langue
Simple Langue
ﺍﺫﻥ ﺴﻨﻘﻭﻡ ﻫﻨﺎ ﺒﺸﺭﺡ ﻟﻐﻪ ﺍﺴﺎﺴﻴﺔ ﻭﻫﻰ ﻤﻥ ﺍﻫﻡ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ .
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻨﻰ : ﺍﻫﻡ ﻤﺯﺍﻴﺎ ﺍﻟﺠﺎﻓﺎ ﻟﻜﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺘﻌﺎﻟﻰ ﻨﺘﻌﺭﻑ ﻟﻤﺎﺫﺍ ﺍﻟﺠﺎﻓﺎ ﻤﻥ ﺍﻫﻡ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﻭﻤﺎ ﺍﻟﺫﻯ ﻤﻴﺯﻫﺎ ﻋﻥ ﻏﻴﺭﻫﺎ ﻤﻥ ﺍﻟﻠﻐﺎﺕ؟ ﺍﻭﻻ :ﺘﻨﺘﻤﻰ ﺍﻟﻰ ﻟﻐﺎﺕ ﺍﻭﺒﺠﻜﺕ ﺍﻭﺭﻴﻨﺘﻴﺩ )(Object Oriented Programming ﻭﻫﻭ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﺭﺘﺒﺎﻁ ﺒﻴﻥ ﺍﻟﻁﺭﻕ ﻭﺍﻟﺨﺼﺎﺌﺹ ﻟﻜﺎﺌﻥ ﻭﺘﻘﻭﻡ ﺍﻟﻭﻅﺎﺌﻑ ﺒﺎﺩﺍﺀ ﻭﻅﻴﻔﺔ ﻤﻌﻴﻨﺔ ﻭﻴﺘﻡ ﻓﻴﻬﺎ ﺘﻘﺴﻴﻡ ﺍﻟﻤﺸﺎﻜل ﺍﻟﻜﺒﻴﺭﺓ ﺍﻟﻰ ﻋﺩﺓ ﻤﺸﺎﻜل ﺼﻐﻴﺭﺓ ﻭﺤل ﺍﻯ ﻤﺸﻜﻠﻪ ﻴﻨﻘﺴﻡ ﺍﻟﻰ ﺜﻼﺙ ﻤﺭﺍﺤل ﺍ -ﺘﺤﻠﻴل ﺍﻟﻤﺸﻜﻠﺔ ﻭﺘﺤﺩﻴﺩ ﻁﺭﻴﻘﺔ ﺤل ﻫﺫﻩ ﺍﻟﻤﺸﻜﻠﺔ ﻭﻤﺎﺫﺍ ﺘﺤﺘﺎﺝ ﻟﺤﻠﻬﺎ.
-2ﺘﺼﻤﻴﻡ ﻋﻤﻠﻴﺔ ﺍﻟﺘﺤﻠﻴل ﺍﻟﺴﺎﺒﻘﺔ ﺒﺼﻭﺭﺓ ﺘﺴﺘﻁﻴﻊ ﻤﻌﻬﺎ ﻓﻬﻡ ﺍﻟﻤﺸﻜﻠﺔ ﻭﻁﺭﻴﻘﺔ ﺤﻠﻬﺎ ﻓﻰ ﺨﻁﻭﺍﺕ ﻤﺘﺴﻠﺴﻠﺔ ﻭﻭﺍﻀﺤﺔ . -3ﺍﺨﻴﺭﺍ ﻜﺘﺎﺒﺔ ﻜﻭﺩ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺎﻟﻠﻐﺔ ﺍﻟﺘﻰ ﺍﺨﺘﺭﺘﻬﺎ . ﺜﺎﻨﻴﺎ :ﻴﻤﻜﻥ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﺠﺎﻓﺎ ﺘﻨﻔﻴﺫ ﻋﻤﻠﻴﺎﺕ ﻤﺨﺘﻠﻔﺔ ﻓﻰ ﻨﻔﺱ ﺍﻟﻭﻗﺕ ﺫﺍﺘﻪ ﻤﻥ ﺍﻟﻁﺒﻴﻌﻰ ﺍﻥ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺨﻁﻭﺍﺕ ﺍﻯ ﺒﺭﻨﺎﻤﺞ ﺒﻁﺭﻴﻘﺔ ﻤﺘﺴﻠﺴﻠﺔ ﺍﻯ ﺒﻌﺩ ﺘﻨﻔﻴﺫ ﺨﻁﻭﺓ ﻴﻨﺘﻘل ﺍﻟﻰ ﺘﻨﻔﻴﺫ ﺍﻟﺨﻁﻭﺓ ﺍﻟﺘﺎﻟﻴﺔ ﻟﻜﻥ ﻓﻰ ﺍﻟﺠﺎﻓﺎ ﻴﻤﻜﻥ ﺘﻨﻔﻴﺫ ﺨﻁﻭﺍﺕ ﻤﺨﺘﻠﻔﺔ ﻓﻰ ﻨﻔﺱ ﺍﻟﻭﻗﺕ . ﺜﺎﻟﺜﺎ :ﺍﺩﺍﺭﺓ ﺍﻟﻌﻤﻠﻴﺎﺕ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ ﺘﻠﻘﺎﺌﻴﺎ ﻓﻰ ﺍﻟﻠﻐﺎﺕ ﺍﻻﺨﺭﻯ ﻤﺜل ﺴﻰ ++ﻤﺜﻼ ﻴﺘﻡ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻭﺍﻟﻜﺎﺌﻥ ﻴﺩﻭﻴﺎ ﺍﻯ ﻤﻥ ﺨﻼل ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭ ﺍﻟﻤﺒﺭﻤﺞ ﻟﻜﻥ ﻓﻰ ﺍﻟﺠﺎﻑ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺫﺍﻜﺭﺓ ﻴﺘﻡ ﺘﻠﻘﺎﺌﻴﺎ ﺩﻭﻥ ﺘﺩﺨل ﻤﻥ ﺍﻟﻤﺒﺭﻤﺞ ﻭﺒﺫﻟﻙ ﺘﻜﻭﻥ ﺍﻜﺜﺭ ﺍﻤﺎﻨﺎ ﻤﻥ ﺍﻟﻠﻐﺎﺕ ﺍﻻﺨﺭﻯ ﺭﺍﺒﻌﺎ :ﺍﻻﻤﺎﻥ ﺍﻟﺘﺎﻡ ﻋﻨﺩﻤﺎ ﺘﻘﻭﻡ ﺒﺘﺤﻤﻴل ﺍﻯ ﺒﺭﻨﺎﻤﺞ ﻤﻥ ﻋﻠﻰ ﺸﺒﻜﺔ ﻓﺎﻨﻪ ﻴﻤﻜﻥ ﻻﺤﺩ ﺍﻟﻘﺭﺍﺼﻨﺔ ﺍﻥ ﻴﻘﻭﻡ ﺒﺎﻟﺘﺤﻜﻡ ﻓﻰ ﺠﻬﺎﺯﻙ ﻤﻥ ﺨﻼل ﻜﻭﺩ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺫﻯ ﺘﻘﻭﻡ ﺒﺘﺤﻤﻴﻠﺔ ﻻﻨﻪ ﻴﻤﻜﻨﺔ ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻭﺍﻟﻜﺎﺌﻥ ﺍﻟﻤﻭﺠﻭﺩﻴﻥ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ ﻭﻟﻜﻥ ﻓﻰ ﺍﻟﺠﺎﻓﺎ ﻫﺫﺍ ﻤﺴﺘﺤﻴل ﺍﻥ ﻴﺤﺩﺙ ﻜﻤﺎ ﺫﺍﻜﺭﻨﺎ ﻓﻰﺍﻟﻤﻴﺯﺓ ﺍﻟﺴﺎﺒﻘﺔ ﺍﻴﻀﺎ ﻓﻰ ﺤﺎﻟﺔ ﻭﺠﻭﺩ ﻓﻴﺭﻭﺱ ﻓﻰ ﺠﻬﺎﺯﻙ ﻓﻨﻪ ﺍﺜﻨﺎﺀ ﺘﺸﻐﻴل ﺍﻯ ﺒﺭﻨﺎﻤﺞ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ ﻴﺘﻡ ﺍﻨﺘﻘﺎل ﺍﻟﻔﻴﺭﻭﺱ ﺍﻟﻴﻪ ﻭﻜﻥ ﻓﻰ ﺍﻟﺠﺎﻓﺎ ﻟﻥ ﻴﻨﺘﻘل ﺍﻟﻴﻪ ﻻﻨﻪ ﻻﻴﺴﺘﻁﻴﻊ ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ ﻓﻰﻫﺫﻩ ﺍﻟﺤﺎﻟﻪ ﺍﻴﻀﺎ ﻻﻥ ﺍﻟﻤﻠﻑ ﺍﻟﺫﻯ ﻴﺘﻡ ﺘﺤﻤﻴﻠﻪ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ ﻤﻥ ﺍﻟﻨﻭﻉ classﻭﻜﻤﺎ ﺴﻨﻌﺭﻑ ﻓﻰ ﺍﻟﻤﻴﺯﻩ ﺍﻟﺘﺎﻟﻴﺔ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻻﻴﻤﻜﻥ ﺍﻟﺘﻐﻴﺭ ﻓﻴﻪ. ﺨﺎﻤﺴﺎ :ﻻﺘﻌﺘﻤﺩ ﻋﻠﻰ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﺘﻌﺎﻟﻰ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﺎﺨﺫ ﺍﻭﻻ ﻤﺜﺎل ﻋﻠﻰ ﻟﻐﻪ ﺍﺨﺭﻯ ﻤﺜل ﺴﻰ ++ﺒﻌﺩ ﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ )ﻜﻭﺩ( ﻴﺘﻡ ﺍﺴﺘﺨﺩﺍﻡ ﻤﺎ ﻴﺴﻤﻰ ﺍﻟﻤﺘﺭﺠﻡ ) (compilerﻟﺘﺤﻭﻴل ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﻰ ﻟﻐﺔ ﺍﻻﻟﺔ ) machine (codeﻭﻫﺫﺍ ﺍﻟﻤﻠﻑ ﺍﻟﺠﺩﻴﺩ ﺍﻟﻨﺎﺘﺞ ﻋﻥ ﺍﻟﺘﺭﺠﻤﺔ ﻻﻴﻌﻤل ﺍﻟﻰ ﻋﻠﻰ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﺍﻟﺫﻯ ﺘﺭﺠﻡ ﻓﻴﻪ ﺒﻤﻌﻨﻰ ﺍﺫﺍ ﺘﻡ ﻋﻤل ﺍﻟﺘﺭﺠﻤﺔ ﻟﺒﺭﻨﺎﻤﺞ ﻜﺘﺏ ﺒﻠﻐﺔ ﺴﻰ ++ﺘﺤﺕ ﻨﻅﺎﻡ ﺘﺸﻐﻴل ﻭﻴﻨﺩﻭﺯ ﻓﺎﻥ ﺍﻟﻤﻠﻑ ﺍﻟﻨﺎﺘﺞ ﺍﻟﺫﻯ ﺒﻠﻐﺔ ﺍﻻﻟﻪ ﻻﻴﻌﻤل ﺍﻻ ﺘﺤﺕ ﺍﻟﻭﻴﻨﺩﻭﺯ ﻭﺍﺫﺍ ﺍﺭﺩﻨﺎ ﺘﺸﻐﻴﻠﻪ ﺘﺤﺕ ﻨﻅﺎﻡ ﺘﺸﻐﻴل ﻴﻭﻨﻜﺱ ﻴﻠﺯﻡ ﺍﻋﺎﺩﺓ ﺍﻟﺘﺭﺠﻤﺔ ﺘﺤﺕ ﻫﺫﺍ ﺍﻟﻨﻅﺎﻡ Machine code
C++ Compiler
ﺍﻤﺎ ﻓﻰ ﺍﻟﺠﺎﻓﺎ ﻓﻴﺘﺤﻭل ﺍﻟﺒﺭﻨﺎﻤﺞ )ﻜﻭﺩ( ﺍﻟﻰ ﻤﻠﻑ ﻻﻴﻤﻜﻥ ﻗﺭﺍﺀﺘﻪ ﻴﺴﻤﻰ ﻤﻠﻑ classﺜﻡ ﻴﺘﺤﻭل ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﺍﻟﻰ ﻤﻠﻑ ﺒﻠﻐﺔ ﺍﻻﻟﻪ ﻭﺍﻟﻤﻠﻑ classﻫﺫﺍ ﻴﻤﻜﻥ ﺘﺸﻐﻴﻠﻪ ﺘﺤﺕ ﺍﻯ ﻨﻅﺎﻡ ﺘﺸﻐﻴل ﺩﻭﻥ ﻋﻤل ﺘﺭﺠﻤﺔ ﻟﻠﺒﺭﻨﺎﻤﺞ ﻤﺭﻩ ﺍﺨﺭﻯ Machine file
Java file JDK Class file JVM
JDKﻫﻭ ﺍﻟﻤﺘﺭﺠﻡ ﺍﻟﺫﻯ ﻴﺴﺘﺨﺩﻡ ﻟﺘﺤﻭﻴل ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﻤﻜﺘﻭﺏ ﺒﻠﻐﺔ ﺍﻟﺠﺎﻓﺎ ﺍﻟﻰ ﻤﻠﻑ ﺍﻤﺘﺩﺍﺩﻩ class
ﻭﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻫﻭ ﺍﻟﺫﻯ ﻴﻤﻜﻥ ﺘﺸﻐﻴﻠﻪ ﻋﻠﻰ ﺍﻯ ﻨﻅﺎﻡ ﺘﺸﻐﻴل JVMﻫﻭ ﺍﻟﻤﺘﺭﺠﻡ ﺍﻟﺫﻯ ﻴﺤﻭل ﻤﻠﻑ classﺍﻟﻰ ﻤﻠﻑ ﺒﻠﻐﺔ ﺍﻻﻟﻪ ﺴﺎﺩﺴﺎ :ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺠﺎﻓﺎ ﻓﻰ ﺍﻻﻨﺘﺭﻨﺕ ﻴﻤﻜﻥ ﻋﻤل ﺍﻟﺘﻁﺒﻴﻕ ﺍﻭ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻋﻠﻰ ﺍﻻﻨﺘﺭﻨﺕ ﻭﻓﻰ ﻫﺫﻩ ﺍﻟﺤﺎﻟﻪ ﻴﺴﻤﻰ ﺠﺎﻓﺎ ﺍﺒﻠﻴﺕ (java )applet
ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺍﺫﺍ ﻭﺠﺩﺕ ﻫﺫﻩ ﺍﻟﻤﻴﺯﺍﺕ ﻤﺠﺘﻤﻌﻪ ﻓﻰ ﻟﻐﺔ ﺒﺭﻤﺠﺔ ﻓﺎﻋﻠﻡ ﺍﻨﻬﺎ ﺍﻟﺠﺎﻓﺎ
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻟﺙ: ﺍﻋﺩﺍﺩ ﺍﻟﻜﻤﺒﻴﻭﺘﺭ ﻟﺘﺸﻐﻴل ﺍﻟﺠﺎﻓﺎ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺘﺤﺘﺎﺝ ﺍﻟﻰ ﺘﺤﻤﻴل ﻤﺎﻴﺴﻤﻰ ) (Java 2 Platformﻭﻴﻤﻜﻨﻙ ﺘﺤﻤﻴﻠﻪ ﻤﺠﺎﻨﺎ ﻤﻥ java.sun.comﻗﻡ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺒﺘﺤﻤﻴل ﺍﺤﺩﻯ ﺍﻻﺼﺩﺍﺭﺍﺕ ﺍﻟﺘﻰ ﺘﺘﻨﺎﺴﺏ ﻤﻊ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﺍﻟﺫﻯ ﺘﺴﺘﺨﺩﻤﺔ ﻭﺴﻨﻘﻭﻡ ﻫﻨﺎ ﺒﺸﺭﺡ ﻋﻤل ﺍﻋﺩﺍﺩ Java 2 Platform, Standard Edition 1.3ﺒﻌﺩ ﺘﺤﻤﻴﻠﻪ ﻤﻥ ﺍﻟﻤﻭﻗﻊ ﺍﻟﺫﻯ ﺫﻜﺭﻨﺎﻩ ﻜﻤﺜﺎل ﺴﻴﻜﻭﻥ ﻤﺜﺎﻟﻨﺎ ﺨﻼل ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﻭﻴﻨﺩﻭﺯ -1ﺒﻌﺩ ﺘﺤﻤﻴل ﺍﻟﻤﻠﻑ ﻤﻥ ﺍﻟﻤﻭﻗﻊ ﺴﺘﻅﻬﺭ ﻫﺫﻩ ﺍﻻﻴﻘﻭﻨﺔ ﺍﻀﻐﻁ ﻤﺭﺘﻴﻥ ﻋﻠﻴﻬﺎ )(Double Click -2ﺴﺘﻅﻬﺭ ﻫﺫﻩ ﺍﻟﻨﺎﻓﺫﺓ
ﺍﻨﺘﻅﺭ ﻗﻠﻴﻼ ﺒﻌﺩ ﻅﻬﻭﺭﻫﺎ -3ﺴﺘﻅﻬﺭ ﺍﻟﻨﺎﻓﺫﻩ ﺍﻟﺘﺎﻟﻴﻪ ﺍﻨﺘﻅﺭ ﺍﻴﻀﺎ ﺒﻌﺩﻫﺎ ﻗﻠﻴﻼ
-4ﺴﺘﻅﻬﺭ ﻫﺫﻩ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻀﻐﻁ ﻋﻠﻰ Nextﻓﻴﻬﺎ
-5ﺘﻅﻬﺭ ﺍﻟﻨﺎﻓﺫﻩ ﺍﻟﺘﺎﻟﻴﺔ ﻭﻫﻰ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﺘﻔﺎﻗﻴﺔ ﺒﻴﻨﻙ ﻭﺒﻴﻥ ﺸﺭﻜﺔ ﺴﻥ ﻤﻴﻜﺭﻭﺴﻴﺴﺘﻴﻡ ﺍﻀﻐﻁ Yesﻟﻜﻰ ﺘﺴﺘﻁﻴﻊ ﺍﻻﺴﺘﻤﺭﺍﺭ
-6ﺘﻅﻬﺭ ﻨﺎﻓﺫﺓ ﺘﺨﺒﺭﻙ ﺒﺎﺴﻡ ﺍﻟﻤﺠﻠﺩ ﺍﻟﺫﻯ ﺴﻴﺘﻡ ﺘﺠﻤﻴل ﺍﻟﻤﻠﻔﺎﺕ ﺒﻪ ﻭﻤﻜﺎﻥ ﻫﺫﺍ ﺍﻟﻤﺠﻠﺩ ﻓﺎﺫﺍ ﺍﺭﺩﺕ ﺘﻐﻴﺭ ﺍﺴﻡ ﺍﻟﻤﺠﻠﺩ ﺍﻭ ﻤﻜﺎﻨﻪ ﺍﻀﻐﻁ Browseﻭﻟﻜﻥ ﻴﻔﻀل ﺍﻥ ﺘﺩﻋﻪ ﻜﻤﺎ ﻫﻭ ﻭﺍﻀﻐﻁ Next
-7ﺘﻅﻬﺭ ﻨﺎﻓﺫﻩ ﺘﺨﺒﺭﻙ ﺒﺎﻟﻤﻠﻔﺎﺕ ﻭﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﺘﻰ ﺴﻴﺘﻡ ﺍﻨﺯﺍﻟﻬﺎ ﻋﻠﻰ ﺍﻟﺠﻬﺎﺯ ﺍﻀﻐﻁ Next
ﻟﻼﺴﺘﻤﺭﺍﺭ
-8ﺴﺘﻅﻬﺭ ﺍﻟﻨﺎﻓﺫﻩ ﺍﻟﺘﺎﻟﻴﺔ ﺍﻟﺘﻰ ﺘﻭﻀﺢ ﻋﻤﻠﻴﺔ ﺍﻨﺯﺍل ﺍﻟﻤﻠﻔﺎﺕ ﺍﻨﺘﻅﺭ ﺤﺘﻰ ﺘﺼل ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﻰ %100
-9ﺘﻅﻬﺭ ﻨﺎﻓﺫﻩ ﺘﺨﺒﺭﻙ ﺍﻥ ﺘﻨﺘﻅﺭ ﻗﻠﻴﻼ ﺤﺘﻰ ﻴﺘﻡ ﺍﻻﻨﺘﻬﺎﺀ ﻤﻥ ﻋﻤﻠﻴﺔ ﺍﻻﻋﺩﺍﺩ
-10ﺍﺨﻴﺭﺍ ﺍﻀﻐﻁ Finishﻻﻨﻬﺎﺀ ﻋﻤﻠﻴﺔ ﺍﻻﻋﺩﺍﺩ
ﺍﻻﻥ ﺍﻫﻨﺌﻙ ﺒﺎﻨﻬﺎﺀ ﺍﻟﺨﻁﻭﺓ ﺍﻻﻭﻟﻰ ﻨﺤﻭ ﺍﺤﺘﺭﺍﻑ ﺍﻟﺠﺎﻓﺎ ﺒﻨﺠﺎﺡ
ﺍﻟﺩﺭﺱ ﺍﻟﺭﺍﺒﻊ: ﺍﻟﺒﺭﻨﺎﻤﺞ ﻻﺸﻙ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺍﻥ ﺍﻯ ﺒﺭﻨﺎﻤﺞ ﻴﻤﺭ ﺒﻌﺩﺩ ﻤﻥ ﺍﻟﻤﺭﺍﺤل ﻤﻨﺫ ﺍﻥ ﻜﺎﻥ ﻓﻜﺭﺓ ﺍﻭ ﻤﺸﻜﻠﺔ ﻟﺩﻯ ﺍﺤﺩ ﻤﺴﺘﺨﺩﻤﻰﺍﻟﻜﻤﺒﻴﻭﺘﺭ ﺍﻟﻰ ﺍﻥ ﻴﻜﺘﺏ ﺜﻡ ﻴﻭﻀﻊ ﻤﺤل ﺍﻟﺘﻨﻔﻴﺫ ﻭﻴﺴﻤﻰ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻓﻰ ﻫﺫﻩ ﺍﻟﺤﺎﻟﺔ ﺘﻁﺒﻴﻕ ) (applicationﻭﺍﻟﺘﻁﺒﻴﻕ ﻫﻭ ﻋﺒﺎﺭﺓ ﻋﻥ ﺒﺭﻨﺎﻤﺞ ﻜﺘﺏ ﻟﺤل ﻤﺸﻜﻠﺔ ﻤﺤﺩﺩﺓ. ﻭﻟﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﻠﻐﺔ ﺍﻟﺠﺎﻓﺎ ﻴﻜﺘﺏ ﺩﺍﺨل ﺍﻯ ﻤﺤﺭﺭ ﻨﺼﻭﺹ ﻤﺜل ﺍﻟﻤﻔﻜﺭﺓ ﻤﺜﻼ )(notepad ﻭﻴﺤﻔﻅ ﺍﻟﻤﻠﻑ ﺒﺎﻤﺘﺩﺍﺩ .javaﻭﻴﺴﻤﻰ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﺒﻤﻠﻑ ﺍﻟﻤﺼﺩﺭ ). (source file ﻭﻴﻤﻜﻥ ﺒﺩل ﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺩﺍﺨل ﻤﻌﺎﻟﺞ ﻨﺼﻭﺹ ﺍﻥ ﻴﻜﺘﺏ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻤﺤﺭﺭ ﺨﺎﺹ ﺒﻠﻐﺔ ﺍﻟﺠﺎﻓﺎ ﻭﻴﺴﻤﻰ ) (editorﻭﻫﻭ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﺩﺍﺓ ﻤﺴﺎﻋﺩﺓ ﺘﻴﺴﺭ ﻟﻠﻤﺒﺭﻤﺞ ﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺘﺨﺯﻴﻥ ﻤﺎ ﻜﺘﺏ ﻓﻰ ﻤﻠﻑ ﻭﺘﺴﻬﻴل ﺍﺴﺘﺭﺠﺎﻋﺔ ﻭﺘﻌﺩﻴﻠﻪ ﻭﻨﺴﺨﺔ ﺍﻴﻀﺎ ﻭﻴﻭﺠﺩ ﺒﻌﺽ ﺍﻟﻤﺤﺭﺭﺍﺕ ﻴﻤﻜﻥ ﺍﻥ ﺘﻘﻭﻡ ﺒﻌﻤﻠﻴﺔ ﺍﻟﺘﺭﺠﻤﺔ ﺍﻴﻀﺎ ﻭﻴﻤﻜﻨﻙ ﻋﺯﻴﺯﺉ ﺍﻟﻘﺎﺭﺉ ﺍﺜﻨﺎﺀ ﺘﻌﻠﻤﻙ ﻤﻌﻨﺎ ﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺩﺍﺨل ﺍﻟﻤﻔﻜﺭﺓ ﺍﻭ ﺍﻻﺴﺘﻌﺎﻨﻪ ﺒﺎﺤﺩ ﻤﺤﺭﺭﺍﺕ ﺍﻟﺠﺎﻓﺎ . ﻭﺍﻟﺨﻁﻭﺓ ﺍﻟﺘﺎﻟﻴﺔ ﻟﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ )ﻤﻠﻑ ﺍﻟﻤﺼﺩﺭ( ﻫﻰ ﻋﻤﻠﻴﺔ ﺍﻟﺘﺭﺠﻤﺔ ﺍﻟﺘﻰ ﻴﺘﻡ ﺘﺤﻭﻴل ﻤﻠﻑ ﺍﻟﻤﺼﺩﺭ ﻓﻴﻬﺎ ﺍﻟﻰ ﻤﻠﻑ ﺒﺎﻤﺘﺩﺍﺩ .classﻜﻤﺎ ﺸﺭﺤﻨﺎ ﻓﻰ ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺒﻕ. ﻭﻟﻐﺔ ﺍﻟﺠﺎﻓﺎ ﺘﺘﻜﻭﻥ ﻤﻥ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺤﺯﻡ ) (Packagesﻭﻫﺫﻩ ﺍﻟﺤﺯﻡ ﺘﺘﻜﻭﻥ ﻤﻥ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻜﺎﺌﻥ ) (Opjectsﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻴﺘﻜﻭﻥ ﻤﻥ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺩﻭﺍل ) (Methodsﻭﻫﺫﻩ ﺍﻟﺩﻭﺍل ﻫﻰ ﺍﻭﺍﻤﺭ ﺍﻟﺠﺎﻓﺎ ﺍﻟﺘﻰ ﺘﺴﺘﺨﺩﻡ ﻓﻰ ﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ . ﺍﻯ ﺍﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﻠﻐﺔ ﺍﻟﺠﺎﻓﺎ ﻋﺒﺎﺭﺓ ﻋﻥ ﺩﺍﻟﺔ ﺭﺌﻴﺴﻴﺔ ﺘﻨﺎﺩﻯ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺩﻭﺍل ﺍﻻﺨﺭﻯ ﻭﻜل ﺩﺍﻟﻪ ﻫﻰ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻻﻭﺍﻤﺭ. ﺍﻟﺩﺭﺱ ﺍﻟﺨﺎﻤﺱ: ﺍﻟﺩﺍﻟﺔ ﺍﻟﺭﺌﻴﺴﻴﺔ ﻭﻫﻨﺎﻙ ﺩﺍﻟﺔ ﺭﺌﻴﺴﻴﺔ ﻫﻰ ﺍﻟﺩﺍﻟﺔ )( mainﻭﻫﻰ ﺍﻟﺩﺍﻟﺔ ﺍﻟﺘﻨﻔﻴﺫﻴﺔ ﻓﻰ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﻻ ﻴﻤﻜﻥ ﺘﺸﻐﻴل ﺍﻯ ﺒﺭﻨﺎﻤﺞ ﺩﻭﻥ ﻭﺠﻭﺩ ﺍﻟﺩﺍﻟﺔ ﺍﻟﺭﺌﻴﺴﻴﺔ ﻓﻴﻪ ﺍﺫﻥ ﻓﺎﻯ ﺒﺭﻨﺎﻤﺞ ﻴﺘﻜﻭﻥ ﻤﻥ ﺩﺍﻟﺔ ﻭﺍﺤﺩﺓ ﻋﻠﻰ ﺍﻻﻗل ﻫﻰ )( mainﻭﻴﻤﻜﻥ ﺍﻥ ﻴﻜﻭﻥ ﻫﻨﺎﻙ ﺩﻭﺍل ﺍﺨﺭﻯ ﺘﻌﺭﻑ ﻗﺒل ﺍﻭ ﺒﻌﺩ )( mainﻭﻫﺫﻩ ﺍﻟﺩﻭﺍل ﻟﺘﻨﻔﻴﺫﻫﺎ ﻴﺘﻡ ﺍﺴﺘﺩﻋﺎﺌﻬﺎ ﺩﺍﺨل ﺍﻟﺩﺍﻟﺔ )( mainﻜﻤﺎ ﺴﻨﺭﻯ ﻓﻴﻤﺎ ﺒﻌﺩ . ﺘﺘﻜﻭﻥ ﺍﻟﺩﺍﻟﺔ ﻋﺎﻤﺔ ﺒﻤﺎ ﻓﻰ ﺫﻟﻙ ﺍﻟﺩﺍﻟﺔ ﺍﻟﺭﺌﻴﺴﻴﺔ )(main -1ﺍﻻﻋﻼﻡ ﻋﻥ ﺍﻟﺩﺍﻟﺔ ﻭﻫﻭ ﺒﻤﺜﺎﺒﺔ ﻋﻨﻭﺍﻥ ﺍﻟﺩﺍﻟﺔ ﻭﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﺴﻡ ﺍﻟﺩﺍﻟﺔ ﻭﻗﺎﺌﻤﺔ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻟﺘﻰ ﺴﺘﺩﺨل ﺍﻟﻰ ﺍﻟﺩﺍﻟﺔ ﺍﻭ ﺴﺘﺨﺭﺝ ﻤﻨﻬﺎ . -2ﺘﻌﺭﻴﻑ ﺍﻟﺩﺍﻟﺔ ﻭﻫﻭ ﻴﺸﻤل ﺍﺴﺎﺴﺎ ﺠﺴﻡ ﺍﻟﺩﺍﻟﺔ ﻭﻴﻭﻀﻊ ﺒﻴﻥ ﻗﻭﺴﻲ ﻓﺌﺔ } { ﻭﻴﺤﻭﻯ ﻫﺫﺍ ﺍﻟﺠﺴﻡ ﺍﻟﻌﺒﺎﺭﺍﺕ ﺍﻟﺘﻰ ﺘﺸﻤل ﺍﻻﻭﺍﻤﺭ ﻭﺴﻨﻔﺼﻠﻬﺎ ﻓﻴﻤﺎ ﺒﻌﺩ . ﻭﻴﻜﻭﻥ ﺸﻜل ﺍﻟﺩﺍﻟﺔ ﺍﻟﺭﺌﻴﺴﻴﺔ ﻫﻜﺫﺍ )public static void main(String []arg {
ﺍﻟﻌﺒﺎﺭﺍﺕ
}
ﻭﺴﻨﻌﺭﻑ ﻓﻴﻤﺎ ﺒﻌﺩ ﻤﺎﻫﻰ ﺍﻟﻜﻠﻤﺎﺕ ﻗﺒل .main
ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺩﺱ: ﺤﺭﻭﻑ ﺍﻟﺠﺎﻓﺎ ﺘﺘﺎﻟﻑ ﺤﺭﻭﻑ ﺍﻟﺠﺎﻑ ﻤﻤﺎ ﻴﻠﻰ : -1ﺍﻟﺤﺭﻭﻑ ﺍﻻﺒﺠﺩﻴﺔ ) (lettersﻭﻫﻰ ﺍﻟﺤﺭﻭﻑ ﺍﻟﻜﺒﻴﺭﺓ ) (Capital lettersﻤﻥ Aﺍﻟﻰ Zﻭﻜﺫﻟﻙ ﺍﻟﺤﺭﻭﻑ ﺍﻟﺼﻐﻴﺭﺓ ) (Small lettersﻤﻥ aﺍﻟﻰ z -2ﺍﻻﺭﻗﺎﻡ ﺍﻟﻌﺩﺩﻴﺔ ) (Digitsﻭﻫﻰ ﺍﻻﺭﻗﺎﻡ ﻤﻥ 0ﺍﻟﻰ 9 -3ﺍﻟﺤﺭﻭﻑ ﺍﻟﺨﺎﺼﺔ ) (Special Charactersﻭﻫﻰ ﺘﻠﻙ ﺍﻟﺤﺭﻭﻑ ﺍﻟﺘﻰ ﻟﻴﺴﺕ ﺒﺎﻋﺩﺍﺩ ﺍﻭ ﺒﺤﺭﻭﻑ ﺍﺒﺠﺩﻴﺔ ﻭﻟﻜﻥ ﺘﻜﻭﻥ ﻋﻼﻤﺎﺕ ﺭﻤﺯﻴﺔ ﻭﻤﻨﻬﺎ ﺍﻟﻤﻌﻨﻰ ﺍﻟﻌﻼﻤﺔﺍﻟﺭﻤﺯﻴﺔ ﺍﻟﺠﻤﻊ + ﺍﻟﻁﺭﺡ ﺍﻟﻘﺴﻤﺔ / ﺍﻟﻀﺭﺏ * ﺍﺸﺎﺭﺓ ﺍﻟﻤﺴﺎﻭﺍﻩ = ﻋﻼﻤﺔ ﺍﻟﻨﺴﺒﺔ % ﻋﻼﻤﺔ ﺍﻟﺘﻌﺠﺏ ! ﺸﺭﻁﺔ ﻤﺎﺌﻠﺔ ﻟﻠﺨﻠﻑ \ ﻋﻼﻤﺔ ﺘﻨﺼﻴﺹ " ' ﻋﻼﻤﺔ ﺘﻨﺼﻴﺹ ﻤﻔﺭﺩﺓ . ﺍﻟﻨﻘﻁﺔ , ﻓﺎﺼﻠﺔ ; ﻓﺎﺼﻠﺔ ﻤﻨﻘﻭﻁﺔ ﻗﻭﺱ ﺩﺍﺌﺭﻯ ﻴﻤﻴﻨﻰ ) ﻗﻭﺱ ﺩﺍﺌﺭﻯ ﻴﺴﺎﺭﻯ ( ] ﻗﻭﺱ ﻤﺭﺒﻊ ﻴﻤﻴﻨﻰ [ ﻗﻭﺱ ﻤﺭﺒﻊ ﻴﺴﺎﺭﻯ < ﻋﻼﻤﺔ ﺍﺼﻐﺭ ﻤﻥ > ﻋﻼﻤﺔ ﺍﻜﺒﺭ ﻤﻥ ? ﻋﻼﻤﺔ ﺍﺴﺘﻔﻬﺎﻡ : ﺍﻟﺸﺎﺭﺤﺔ ﻜﻤﺎ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺨﻠﻴﻁ ﻤﻥ ﻫﺫﻩ ﺍﻟﺭﻤﻭﺯ ﻓﻌﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل \nﻴﻌﻨﻰ ﺴﻁﺭ ﺠﺩﻴﺩ
ﻭﻴﻌﺭﻑ ﻤﺜل ﻫﺫﺍ ﺍﻟﺨﻠﻁ ﻟﻠﺭﻤﻭﺯ ﺒﺘﺴﻠﺴﻼﺕ ﺍﻭ ﺘﺘﺎﺒﻌﺎﺕ ﺍﻟﻬﺭﻭﺏ ) (escape sequencesﻭﺴﻨﺎﻗﺸﻬﺎ ﻻﺤﻘﺎ ﻭﻟﻜﻥ ﺒﺒﺴﺎﻁﺔ ﺒﺎﻟﺭﻏﻡ ﻤﻥ ﺍﻥ ﺍﻟﺭﻤﺯ ﺍﻟﺴﺎﺒﻕ ﻴﺘﻜﻭﻥ ﻤﻥ ﺭﻤﺯﻴﻥ \ ﻭ nﻭﻟﻜﻨﻪ ﻴﻌﺘﺒﺭ ﺭﻤﺯ ﻭﺍﺤﺩ.
ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺒﻊ: ﺍﻟﻜﻠﻤﺎﺕ ﺍﻟﻤﺤﺠﻭﺯﺓ ﺍﻟﻜﻠﻤﺎﺕ ﺍﻟﻤﺤﺠﻭﺯﺓ ) (reserved wordsﺍﻭ ﺍﻟﻜﻠﻤﺎﺕ ﺍﻟﺭﺌﻴﺴﻴﺔ ) (main wordsﻭﻫﻰ ﺫﺍﺕ ﻤﻌﺎﻨﻰ ﻨﻤﻁﻴﺔ ﺍﻭ ﻗﻴﺎﺴﻴﺔ ﺴﺎﺒﻘﺔ ﺍﻟﺘﻌﺭﻴﻑ ﻓﻰ ﺍﻟﺠﺎﻓﺎ ﻭﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻟﻠﻐﺭﺽ ﺍﻟﻤﺤﺩﺩ ﻟﻬﺎ ﻓﻘﻁ ﻭﻻﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻜﻤﻌﺭﻓﺎﺕ ﻴﻌﺭﻓﻬﺎ ﺍﻟﻤﺒﺭﻤﺞ ﻜﻤﺎ ﻻ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻜﻤﺘﻐﻴﺭﺍﺕ ﻭﺫﻟﻙ ﺤﺘﻰ ﻻﻴﺤﺩﺙ ﺒﺴﺒﺒﻬﺎ ﺍﺭﺘﺒﺎﻙ ﺍﺜﻨﺎﺀ ﻋﻤﻠﻴﺔ ﺍﻟﺘﺭﺠﻤﺔ ﻭﻫﻰ if for int do else for asm ada
, , , , , , , ,
break struct const default double while near pascal
, , , , , , , ,
sizeof case switch union void short signed huge
, , , , , , , ,
extern static goto continue register volatile enum fortran
, , , , , , , ,
auto float char typeof long return while entry
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻤﻥ : ﺍﻟﻤﻌﺭﻓﺎﺕ : ﺍﻟﻤﻌﺭﻓﺎﺕ ) (identifiersﻫﻰ ﺘﻠﻙ ﺍﻻﺴﻤﺎﺀ ﺍﻟﺘﻰ ﺘﻌﻁﻰ ﻟﻌﻨﺎﺼﺭ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻤﺜل : ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ,ﺍﻟﺩﻭﺍل ,ﺍﻟﻤﻨﻅﻭﻤﺎﺕ ﺍﻤﺎ ﺸﺭﻭﻁ ﺍﻟﻤﻌﺭﻑ : -1ﺍﻥ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺤﺭﻭﻑ ﺍﺒﺠﺩﻴﺔ ﻭﺍﺭﻗﺎﻡ ﻭﻋﻼﻤﺔ ﺍﻟﺸﺭﻁﺔ ﺍﻟﺘﺤﺘﻴﺔ )_( ) (under scoreﺒﺎﻯ ﺘﺭﺘﻴﺏ -2ﻤﻥ ﺍﻟﻀﺭﻭﺭﻯ ﺍﻥ ﻴﻜﻭﻥ ﺍﻭل ﺭﻤﺯ ﻓﻰ ﺍﻟﻤﻌﺭﻑ ﺤﺭﻓﺎ ﺍﺒﺠﺩﻴﺎ ﻭﻴﺴﻤﺢ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﺤﺭﻭﻑ ﺍﻟﺼﻐﻴﺭﺓ ﺍﻭ ﺍﻟﻜﺒﻴﺭﺓ )ﺍﻻﺴﺘﺨﺩﺍﻡ ﺍﻟﺸﺎﺌﻊ ﻴﻔﻀل ﺍﺴﺘﺨﺩﺍﻡ ﺤﺭﻭﻑ ﺼﻐﻴﺭﺓ ﻟﻤﻌﻅﻡ ﺍﻨﻭﺍﻉ ﺍﻟﻤﻌﺭﻓﺎﺕ( ﻴﻤﻜﻥ ﻜﺫﻟﻙ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺸﺭﻁﺔ ﺍﻟﺘﺤﺘﻴﺔ )_( ﻭﺘﻌﺘﺒﺭ ﻤﺜل ﺍﻟﺤﺭﻑ ﻓﻰ ﺒﺩﺍﻴﺔ ﺍﻟﻤﻌﺭﻑ ﻭﻟﻜﻥ ﻴﻨﺩﺭ ﺤﺩﻭﺙ ﻫﺫﺍ -3ﻴﺠﺏ ﺍﻥ ﻴﻜﻭﻥ ﺍﻟﻤﻌﺭﻑ ﺨﺎﻟﻴﺎ ﻤﻥ ﺍﻟﺭﻤﻭﺯ ﺍﻟﺨﺎﺼﺔ ﻤﺎﻋﺩﺍ )_( -4ﻻ ﺘﺴﺘﺨﺩﻡ ﺍﻟﺤﺭﻭﻑ ﺍﻟﺼﻐﻴﺭﺓ ﻭﺍﻟﺤﺭﻭﻑ ﺍﻟﻜﺒﻴﺭﺓ ﺒﺎﻟﺘﺒﺎﺩل )ﺍﻯ ﺍﻥ ﺍﻟﺤﺭﻭﻑ ﺍﻟﻜﺒﻴﺭﺓ ﻟﻴﺴﺕ ﻤﻜﺎﻓﺌﺔ ﻟﻠﺤﺭﻭﻑ ﺍﻟﺼﻐﻴﺭﺓ ﺍﻟﻤﻨﺎﻅﺭﻩ ﻟﻬﺎ( ﺍﻯ valueﻟﻴﺴﺕ ﻫﻰ ﻨﻔﺴﻬﺎ VALUE -5ﻴﻔﻀل ﺍﻥ ﻴﻜﻭﻥ ﻟﻠﻤﻌﺭﻑ ﺍﻟﻁﻭل ﺍﻟﻤﻨﺎﺴﺏ ﻭﺍﻥ ﻴﻜﻭﻥ ﻭﺍﻀﺤﺎ ﻭﺫﺍ ﻤﻌﻨﻰ ﻭﻤﺩﻟﻭل -6ﻴﻔﻀل ﺍﻥ ﻴﻜﻭﻥ ﺍﺴﻡ ﺍﻯ ﺩﺍﻟﻪ ﺍﻭ ﻤﺘﻐﻴﺭ ﻴﺒﺩﺃ ﺒﺤﺭﻑ ﺼﻐﻴﺭ ﻭﺍﺫﺍ ﻜﺎﻥ ﻤﻜﻭﻥ ﻤﻥ ﻜﻠﻤﺘﻴﻥ ﺘﺒﺩﺃ ﺍﻻﻭﻟﻰ ﺒﺤﺭﻑ ﺼﻐﻴﺭ ﻭﺍﻟﺜﺎﻨﻴﺔ ﺘﺒﺩﺃ ﺒﺠﺭﻑ ﻜﺒﻴﺭ -7ﺍﺴﻡ ﺍﻟﻜﺎﺌﻥ ﻴﺒﺩﺃ ﺒﺤﺭﻑ ﻜﺒﻴﺭ ﻭﺍﺫﺍ ﻜﺎﻥ ﻤﻜﻭﻥ ﻤﻥ ﻜﻠﻤﺘﻴﻥ ﺘﻜﻭﻥ ﺒﺩﺍﻴﺔ ﻜﻼ ﻤﻨﻬﻤﺎ ﺤﺭﻑ ﻜﺒﻴﺭ
ﺍﻤﺜﻠﻪ ﺼﺤﻴﺤﺔ ﻟﻠﻤﻌﺭﻓﺎﺕ: tax_rate Name
, ,
Y15 REAL
, ,
X , area10 Sum_4 , total_value _temperature
ﺍﻤﺜﻠﺔ ﻋﻠﻰ ﺍﺴﻤﺎﺀ ﻤﻌﺭﻓﺎﺕ ﻏﻴﺭ ﺼﺤﻴﺤﺔ ,
order-no
,
last name
,
th
5 ""a
, ,
&address char
ﺍﻟﺩﺭﺱ ﺍﻟﺘﺎﺴﻊ: ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ) (commentsﻫﻰ ﻋﺒﺎﺭﺓ ﻋﻥ ﺒﻌﺽ ﺍﻻﻭﺍﻤﺭ ﺍﻻﻴﻀﺎﺤﻴﺔ ﻭﻻ ﻴﻜﻭﻥ ﻟﻬﺎ ﺍﻯ ﺘﺄﺜﻴﺭ ﻻﻨﻬﺎ ﻻﺘﻌﺘﺒﺭ ﺠﺯﺀ ﻤﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ . ﻭﺘﻭﻀﻊ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﻓﻰ ﺍﻯ ﻤﻜﺎﻥ ﺩﺍﺨل ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﻤﻤﻜﻥ ﺍﻥ ﻴﺨﻠﻭ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻤﻨﻬﺎ ﻭﻴﺒﺩﺍ ﺍﻟﺘﻌﻠﻴﻕ ﺍﻥ ﻭﺠﺩ ﺒﺎﻟﻌﻼﻤﺔ * /ﻭﻴﻨﺘﻬﻰ ﺒﺎﻟﻌﻼﻤﺔ ﺍﻟﺭﻤﺯﻴﺔ */ﻭﻫﺫﺍ ﻴﻌﻨﻰ ﺍﻥ ﻤﺎ ﻴﻘﻊ ﻤﻥ ﺴﻁﻭﺭ ﺒﻴﻥ ﺍﻟﻌﻼﻤﺘﻴﻥ ﺍﻨﻤﺎ ﻫﻭ ﻤﺨﺼﺹ ﻟﻠﻤﻼﺤﻅﺎﺕ ﻭﻫﺫﺍ ﺸﺄﻨﻪ ﺍﻥ ﻴﻔﻴﺩ ﻓﻰ ﺘﻌﺭﻴﻑ ﺍﻟﺴﻤﺎﺕ ﺍﻻﺴﺎﺴﻴﺔ ﻟﻠﺒﺭﻨﺎﻤﺞ ﺍﻭﻓﻰ ﺘﻭﻀﻴﺢ ﺍﻟﻤﻨﻁﻕ ﺍﻟﻤﺸﻤﻭل ﻓﻰ ﺍﻟﺴﻤﺎﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻟﻠﺒﺭﻨﺎﻤﺞ ﻜﻤﺎ ﻴﻔﻴﺩ ﻓﻰ ﺍﻋﺎﺩﺓ ﻗﺭﺍﺀﺓ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺘﻌﺩﻴﻠﻪ . ﻭﻟﻠﻤﺒﺭﻤﺞ ﺍﻥ ﻴﻜﺘﺏ ﻤﺎ ﻴﺸﺎﺀ ﻤﻥ ﻤﻼﺤﻅﺎﺕ ﺒﻴﻥ ﺍﻟﻌﻼﻤﺘﻴﻥ ﻗﺩ ﺘﺫﻜﺭﻩ ﺒﻤﻀﻤﻭﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺍﻟﻐﺭﺽ ﻤﻨﻪ ﺍﻭ ﺒﻌﺽ ﺍﻟﺨﻁﻭﺍﺕ ﻜﻤﺎ ﺘﻔﻴﺩ ﺍﻴﻀﺎ ﻓﻰ ﺍﻟﺸﺭﺡ . ﻭﻗﺩ ﻴﺤﺘﻭﻯ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻋﻠﻰ ﺍﻯ ﻋﺩﺩ ﻤﻥ ﺴﻁﻭﺭ ﺍﻟﻤﻼﺤﻅﺎﺕ ﻓﻬﻰ ﻻ ﺘﻬﻡ ﺍﻟﻤﺘﺭﺠﻡ . ﻭﺍﺫﺍ ﻜﺎﻥ ﺍﻟﺘﻌﻠﻴﻕ ﺴﻁﺭ ﻭﺍﺤﺩ ﻓﻘﻁ ﻴﻤﻜﻥ ﺍﻥ ﺘﻜﻭﻥ ﻋﻼﻤﺔ ﺍﻟﺘﻌﻠﻴﻕ ﻫﻰ . //
ﺍﻟﺩﺭﺱ ﺍﻟﻌﺎﺸﺭ : ﺘﺴﻠﺴﻼﺕ ﺍﻟﻬﺭﻭﺏ ﻫﻨﺎﻙ ﺒﻌﺽ ﺭﻤﻭﺯ ﺍﻟﺤﺭﻭﻑ ﺍﻟﺨﺎﺼﺔ ﻋﺯﻴﺯﺉ ﺍﻟﻘﺎﺭﺉ ﻭﻴﻁﻠﻕ ﻋﻠﻴﻬﺎ ﺍﺤﻴﺎﻨﺎ ﺤﺭﻭﻑ ﺍﻟﻬﺭﻭﻑ ) (escape characterﻭﺤﺭﻑ ﺍﻟﻬﺭﻭﺏ ﻫﻭ ﺤﺭﻑ ﻴﺴﺘﺨﺩﻡ ﻟﻠﺩﻻﻟﺔ ﻋﻠﻰ ﺍﻥ ﺍﻟﺤﺭﻭﻑ ﺍﻟﺘﺎﻟﻴﺔ ﻟﻪ ﻟﻬﺎ ﻤﻌﻨﻰ ﺨﺎﺹ ﺒﺎﺨﺘﺼﺎﺭ ﺤﺭﻭﻑ ﺍﻟﻬﺭﻭﺏ ﻫﻰ ﺤﺭﻭﻑ ﻟﻬﺎ ﻫﺩﻑ ﻤﻌﻴﻥ ﻭﺘﺒﺩﺃ ﺩﺍﺌﻤﺎ \ ﺸﺭﻁﺔ ﻤﺎﺌﻠﺔ ﺍﻟﻰ ﺍﻟﺨﻠﻑ ﻭﺒﻌﺩﻫﺎ ﻴﺎﺘﻰ ﺍﻟﺤﺭﻑ ﺍﻭ ﺍﻟﺭﻤﺯ ﻭﺍﻻﺜﻨﻴﻥ ﻤﻌﺎ ﻴﻤﺜﻼﻥ ﺭﻤﺯ ﻭﺍﺤﺩ ﻓﻘﻁ . ﻨﻭﺭﺩ ﻓﻴﻤﺎ ﻴﻠﻰ ﺘﺴﻠﺴﻼﺕ ﺍﻟﻬﺭﻭﺏ ﺍﻟﺸﺎﺌﻌﺔ ﺍﻻﺴﺘﺨﺩﺍﻡ ﺍﻟﺭﻤﺯ ﺍﻟﻭﻅﻴﻔﺔ \b ﺍﻟﻌﻭﺩﺓ ﻤﺴﺎﻓﺔ ﻟﻠﺨﻠﻑ \n ﺴﻁﺭ ﺠﺩﻴﺩ \r ﺍﻟﺒﺩﺀ ﻤﻥ ﺍﻭل ﺍﻟﺴﻁﺭ \t ﺍﻟﺘﻘﺩﻡ 7ﻤﺴﺎﻓﺎﺕ "\ ﻟﻜﺘﺎﺒﺔ ﻋﻼﻤﺔ ﺍﻟﺘﻨﺼﻴﺹ '\ ﻟﻜﺘﺎﺒﺔ ﻋﻼﻤﺔ ﺍﻟﺘﻨﺼﻴﺹ ﺍﻟﻔﺭﺩﻴﺔ ?\ ﻟﻜﺘﺎﺒﺔ ﻋﻼﻤﺔ ﺍﻻﺴﺘﻔﻬﺎﻡ \\ ﻟﻜﺘﺎﺒﺔ ﺸﺭﻁﺔ ﻤﺎﺌﻠﺔ ﻟﻠﺨﻠﻑ
ﺍﻟﺩﺭﺱ ﺍﻟﺤﺎﺩﻯ ﻋﺸﺭ: ﺍﻟﺜﻭﺍﺒﺕ ﻴﻭﺠﺩ ﻓﻰ ﻟﻐﺔ ﺍﻟﺠﺎﻓﺎ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻨﻭﺍﻉ ﺍﻟﺜﻭﺍﺒﺕ ﻭﺴﻨﺘﻨﺎﻭل ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻫﺫﻩ ﺍﻻﻨﻭﺍﻉ ﺒﺸﺊ ﻤﻥ ﺍﻟﺘﻔﺼﻴل. -1ﺜﻭﺍﺒﺕ ﺼﺤﻴﺤﺔ integer constant ﻫﻰ ﺘﻠﻠﻙ ﺍﻻﻋﺩﺍﺩ ﺫﺍﺕ ﺍﻟﻘﻴﻡ ﺍﻟﺼﺤﻴﺤﺔ ﺍﻟﺘﻰ ﺘﺤﻭﻯ ﺘﺴﻠﺴﻼ ﻤﻥ ﺍﻻﺭﻗﺎﻡ ﺴﻭﺍﺀ ﻜﺎﻨﺕ ﺍﻋﺩﺍﺩ ﺴﺎﻟﺒﺔ ﺍﻭ ﺍﻋﺩﺍﺩ ﻤﻭﺠﺒﺔ ﺍﻭ ﺼﻔﺭ. ﻭﻴﺠﺏ ﺍﻻ ﻴﺤﺘﻭﻯ ﺍﻟﺜﺎﺒﺕ ﺍﻟﺼﺤﻴﺢ ﻋﻠﻰ ﻨﻘﻁﺔ ﻋﺸﺭﻴﺔ ﺍﻭ ﺍﺴﻴﺔ. ﻴﺴﺒﻕ ﺍﻟﻌﺩﺩ ﺍﻟﺴﺎﻟﺏ ﺒﺎﺸﺎﺭﺓ – ﻟﺒﻴﺎﻥ ﺍﻨﻪ ﻋﺩﺩ ﺴﺎﻟﺏ ﻻﻴﺘﻜﻭﻥ ﺍﻟﻌﺩﺩ ﺍﻟﺼﺤﻴﺢ ﻤﻥ ﺍﻯ ﺭﻤﺯ ﺨﺎﺹ ﺍﻭ ﺤﺭﻑ ﺍﺒﺠﺩﻯ ﻻ ﻴﻜﻭﻥ ﺍﻟﺭﻗﻡ ﺍﻻﻭل ﺼﻔﺭ -2ﺜﻭﺍﺒﺕ ﻤﺘﺤﺭﻜﺔ ﺍﻟﻨﻘﻁﺔ floating point ﺍﻟﺜﺎﺒﺕ ﺍﻟﻤﺘﺤﺭﻙ ﺍﻟﻨﻘﻁﺔ ﻫﻭ ﻋﺩﺩ ﻟﻼﺴﺎﺱ 10ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻋﻼﻤﺔ ﻋﺸﺭﻴﺔ ﺍﻭ ﻋﻠﻰ ﺍﺱ ﺍﻭ ﻋﻠﻰ ﻜل ﻤﻨﻬﻤﺎ ﻭﻻ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻯ ﺭﻤﺯ ﺍﻭ ﺤﺭﻑ ﻭﻗﺩ ﻴﻜﻭﻥ ﺍﻟﻌﺩﺩ ﻤﻭﺠﺒﺎ ﺍﻭ ﺴﺎﻟﺒﺎ ﻭﻴﺭﻤﺯ ﻟﻼﺴﺎﺱ 10ﺒﺤﺭﻑ eﺍﻭ Eﻭﻴﻤﻜﻥ ﺍﻥ ﻴﻜﻭﻥ ﺍﻻﺱ ﺴﺎﻟﺏ ﺍﻭ ﻤﻭﺠﺏ ﻭﻟﻜﻥ ﻴﺠﺏ ﺍﻻ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻋﻼﻤﺔ ﻋﺸﺭﻴﺔ ﻓﻤﺜﻼ ﺍﻟﺭﻗﻡ 40000ﻴﻤﻜﻥ ﺍﻥ ﻴﻜﺘﺏ 4e5 ﻗﺩ ﻴﺨﻀﻊ ﺍﺤﻴﺎﻨﺎ ﺜﺎﺒﺕ ﺍﻟﻨﻘﻁﺔ ﺍﻟﻤﺘﺤﺭﻜﺔ ﺍﻟﻰ ﻋﻤﻠﻴﺎﺕ ﺘﻘﺭﻴﺏ ﻓﻤﺜﻼ ﺍﻟﻌﺩﺩ )(0.9999999999999 ﻨﺠﺩ ﺍﻨﻪ ﻴﺘﻡ ﺘﻘﺭﻴﺒﻪ ﺍﻟﻰ 1 ﻭﻻﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻗﻴﻡ ﻤﺘﺤﺭﻜﺔ ﺍﻟﻨﻘﻁﺔ ﻓﻰ ﺍﻏﺭﺍﺽ ﺍﻟﻌﺩ ﺍﻭ ﺍﻟﻔﻬﺭﺴﺔ . -3ﺜﻭﺍﺒﺕ ﺤﺭﻓﻴﺔ character constants ﻓﻴﻤﺎ ﻴﻠﻰ ﺍﻤﺜﻠﻪ ﻟﺒﻌﺽ ﺍﻟﺜﻭﺍﺒﺕ ﺍﻟﺤﺭﻓﻴﺔ 65
,
''\n
,
''5
,
''a
. ﺍﻯ ﺍﻥ ﺍﻟﺜﻭﺍﺒﺕ ﺍﻟﺤﺭﻓﻴﺔ ﻴﻤﻜﻥ ﺍﻥ ﺘﻜﻭﻥ ﺭﻗﻡ ﺍﻭ ﺤﺭﻑ ﺍﻭ ﺭﻤﺯ ﻤﻥ ﻤﺘﺴﻠﺴﻼﺕ ﺍﻟﻬﺭﻭﺏ ﺍﻤﺎ ﺍﻟﺭﻗﻡ ﺍﻻﺨﻴﺭ 65ﻓﻬﻭ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﻟﺤﺭﻑ ' 'Aﺍﻯ ﺍﻥ ﺍﻟﺜﺎﺒﺕ ﺍﻟﺤﺭﻓﻰ ﻴﻤﻜﻥ ﺍﻥ ﻴﻜﻭﻥ ﺭﻗﻡ ﻭﻫﺫﺍ ﺍﻟﺭﻗﻡ ﺴﻴﺘﻡ ﺘﺤﻭﻴﻠﻪ ﺍﻟﻰ ﺍﻟﺭﻗﻡ ﺍﻟﻤﻨﺎﻅﺭ ﻟﻪ ﻓﻰ ASCIIﺍﻯ ﺍﻻﺴﻜﻰ ﻜﻭﺩ ﻭﻫﻭ ﺍﻥ ﺍﻟﺤﺭﻑ ﻴﺘﻡ ﺘﻤﺜﻴﻠﻪ ﺒﺭﻗﻡ ﻤﻜﻭﻥ ﻤﻥ 7ﺒﺕ -4ﺜﻭﺍﺒﺕ ﺍﻟﺴﻠﺴﻠﺔ string constant ﻴﺤﺘﻭﻯ ﺜﺎﺒﺕ ﺍﻟﺴﻠﺴﻠﺔ ﻋﻠﻰ ﺍﻯ ﻋﺩﺩ ﻤﻥ ﺍﻟﺭﻤﻭﺯ ﺍﻭ ﺍﻟﻔﺭﻏﺎﺕ ﻭﺘﻜﻭﻥ ﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ ﻋﻼﻤﺘﻰ ﺘﻨﺼﻴﺹ " " .
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻨﻰ ﻋﺸﺭ : ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺍﻥ ﺍﻟﺠﺎﻓﺎ ﻏﻨﻴﺔ ﺒﺎﻟﻤﺘﻐﻴﺭﺍﺕ ﻤﻥ ﺍﻻﻨﻭﺍﻉ ﺍﻟﻤﺨﺘﻠﻔﺔ . ﻭﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻫﻰ ﻤﻌﺭﻓﺎﺕ ﺍﻭ ﺍﺴﻤﺎﺀ ﺭﻤﺯﻴﺔ ﻴﺨﺼﺹ ﻟﻬﺎ ﺍﻤﺎﻜﻥ ﺘﺨﺯﻴﻥ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ ﻭﺍﻟﺘﻰ ﺘﺘﺤﻭل ﻗﻴﻤﺘﻬﺎ ﻭﺘﺘﻐﻴﺭ ﻤﻥ ﻗﻴﻤﺔ ﺍﻟﻰ ﺍﺨﺭﻯ ﺤﻴﺙ ﻴﻤﻜﻥ ﺍﻟﺭﺠﻭﻉ ﺍﻟﻰ ﺍﻟﻘﻴﻤﺔ ﻋﻥ ﻁﺭﻴﻕ ﺍﻻﺴﻡ ﺍﻟﻤﻌﻁﻰ ﻟﻬﺎ ﻭﺫﻟﻙ ﺍﺜﻨﺎﺀ ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺩﻭﻥ ﺍﻥ ﻴﺘﻐﻴﺭ ﻨﻭﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ )ﺴﻴﺘﻡ ﺸﺭﺡ ﻓﻴﻤﺎ ﺒﻌﺩ ﻨﻭﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ( ﻭﻴﻠﺯﻡ ﺍﻻﻋﻼﻥ ﻋﻥ ﻨﻭﻉ ﺍﻟﻤﺘﻐﻴﺭ ﺼﺭﺍﺤﺔ ﻗﺒل ﺍﺴﺘﺨﺩﺍﻤﻪ ﻓﻰ ﺍﻟﺒﺭﻨﺎﻤﺞ . ﻭﻓﻰ ﺍﻟﻐﺎﻟﺏ ﻤﺎ ﻴﺘﻡ ﺍﻻﻋﻼﻥ ﻋﻥ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻭﺘﻭﻀﻴﺢ ﻨﻭﻋﻬﺎ ﻓﻰ ﻤﺴﺘﻬل ﺍﻟﺒﺭﻨﺎﻤﺞ . ﻨﺘﻨﺎﻭل ﺍﻻﻥ ﺒﺸﺊ ﻤﻥ ﺍﻟﺘﻔﺼﻴل ﺍﻟﻤﺘﻐﻴﺭﺍﺕ -1ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻟﺼﺤﻴﺤﺔ :ﻭﻫﻰ ﺘﻠﻙ ﺍﻟﺘﻰ ﻴﺨﺯﻥ ﻓﻴﻬﺎ ﺍﻟﻼﻋﺩﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ ﺍﻟﺴﺎﻟﺒﺔ ﺍﻭ ﺍﻟﻤﻭﺠﺒﺔ ﻴﻭﺠﺩ ﻤﻨﻬﺎ ﻨﻭﻋﺎﻥ ﺍﻋﺩﺍﺩ ﺼﺤﻴﺤﺔ ﺼﻐﻴﺭﺓ ﺍﻭ ﻋﺩﺩ ﻁﻭﻴل ﺼﺤﻴﺢ ﻭﺍﻻﺨﻴﺭﺓ ﻤﺨﺼﺼﺔ ﻟﻼﺭﻗﺎﻡ ﺍﻟﻜﺒﻴﺭﺓ ﺠﺩﺍ -2ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻤﺘﺤﺭﻜﺔ ﺍﻟﻨﻘﻁﺔ :ﻭﻫﻰ ﺘﻠﻙ ﺍﻟﺘﻰ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﻋﻼﻤﺔ ﻋﺸﺭﻴﺔ ﺍﻭ ﺍﻟﻌﺩﺩ ﺍﻟﺫﻯ ﺒﻪ ﻗﻴﻤﺔ ﻜﺴﺭﻴﺔ ﺍﻭ ﺒﻤﻌﻨﻰ ﺍﺩﻕ ﺍﻻﻋﺩﺍﺩ ﺍﻟﺤﻘﻴﻘﻴﺔ -3ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻤﺯﺩﻭﺠﺔ ﺍﻟﺩﻗﺔ :ﻭﻫﻰ ﻨﻔﺱ ﻤﺘﺤﺭﻜﺔ ﺍﻟﻨﻘﻁﺔ ﻭﻟﻜﻥ ﺍﻟﻘﻴﻡ ﺍﻟﻤﻤﺜﻠﺔ ﻟﻠﻤﺘﻐﻴﺭﺍﺕ ﻤﺯﺩﻭﺠﺔ ﺍﻟﺩﻗﺔ ﻤﺩﺍﻫﺎ ﻴﻜﻭﻥ ﺍﻜﺒﺭ ﻤﻥ ﻤﺘﺤﺭﻜﺔ ﺍﻟﻨﻘﻁﺔ -4ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻤﻥ ﺍﻟﻨﻭﻉ ﺍﻟﺤﺭﻓﻰ :ﻭﺘﺘﻀﻤﻥ ﺍﻻﻋﻼﻥ ﻋﻥ ﺍﻟﺤﺭﻭﻑ ﺍﻭ ﺍﻟﺭﻤﻭﺯ ﻜﻤﺎ ﺸﺭﺤﻨﺎ ﻓﻰ ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺒﻕ
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻟﺙ ﻋﺸﺭ : ﻨﻭﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ )ﺍﻟﻤﺘﻐﻴﺭﺍﺕ( Data Typeﻭﻫﻰ ﺍﻻﻨﻭﺍﻉ ﺍﻟﺘﻰ ﺴﺘﺴﺘﺨﺩﻡ ﻓﻰ ﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ. ﻟﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭ :ﻴﻜﺘﺏ ﺍﻭﻻ ﻨﻭﻉ ﺍﻟﻤﺘﻐﻴﺭ ﺜﻡ ﺍﺴﻡ ﺍﻟﻤﺘﻐﻴﺭ ﺒﻌﺩ ﺫﻟﻙ ﻭﻴﻤﻜﻥ ﺍﻻﻋﻼﻥ ﻋﻥ ﺍﻜﺜﺭ ﻤﻥ ﻤﺘﻐﻴﺭ ﺒﻨﻔﺱ ﺍﻟﻨﻭﻉ ﻓﻰ ﺴﻁﺭ ﻭﺍﺤﺩ ﺒﻜﺘﺎﺒﺔ ﺍﻟﻨﻭﻉ ﺜﻡ ﺍﺴﻤﺎﺀ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ . ﻭﺴﻴﺘﻡ ﺘﻭﻀﻴﺢ ﺫﻟﻠﻙ ﻓﻰ ﺍﻤﺜﻠﻪ ﺒﻌﺩ ﺫﻟﻙ. ﻟﻜﻥ ﺘﻌﺎﻟﻰ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﺘﻌﺭﻑ ﻋﻠﻰ ﺍﻨﻭﺍﻉ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ boolean -1ﻭﻫﻭ ﻴﺄﺨﺫ ﺍﻟﻘﻴﻡ ﺼﻔﺭ ﺍﻭ ﻭﺍﺤﺩ ﻭﻴﻜﻭﻥ ﺤﺠﻤﺔ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ 1 bitﻭﻴﺴﺘﺨﺩﻡ ﻓﻰ ﺤﺎﻟﺔ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺘﻜﻭﻥ ﺍﺤﺩﻯ ﻗﻴﻤﺘﻴﻥ ﻤﻌﻠﻭﻤﺘﻴﻥ ﻤﺜﻼ )ﻨﻌﻡ ﻭ ﻻ( ﻭﺒﻤﻌﻨﻰ ﺍﺩﻕ ﺘﻜﻭﻥ ﻗﻴﻡ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ) (true or falseﻭﺍﻟﻘﻴﻤﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﻓﻰ ﺤﺎﻟﺔ ﺍﻻﻋﻼﻥ ﻋﻥ ﻤﺘﻐﻴﺭ ﻭﻋﺩﻡ ﺇﻋﻁﺎﺅﻩ ﻗﻴﻤﺔ ﺍﻯ ﺍﻥ ﺍﻟﻘﻴﻤﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﺘﻜﻭﻥ false
byte -2ﻭﻫﻭ ﺍﻟﺘﻰ ﺘﻜﻭﻥ ﻗﻴﺎﻤﻬﺎ ﺍﻋﺩﺍﺩ ﺼﺤﻴﺤﺔ ﺴﺎﻟﺒﺔ ﺍﻭ ﻤﻭﺠﺒﺔ ﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ -128ﻜﺤﺩ ﺍﺩﻨﻰ ﻭ 127ﻜﺤﺩ ﺍﻗﺼﻰ ﻭﺤﺠﻤﻬﺎ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ 8 bitﺍﻯ ) ( 1 byteﻤﺜﻼ )(100-,6-,10,20 char -3ﻭﻫﻰ ﺍﻟﺘﻰ ﺘﻜﻭﻥ ﻗﻴﻤﻬﺎ ﻋﺒﺎﺭﺓ ﻋﻥ ﺤﺭﻑ ﻭﺍﺤﺩ ﺍﻭ ﻗﻴﻤﺔ ﻻﺤﺩﻯ ﻤﺘﺴﻠﺴﻼﺕ ﺍﻟﻬﺭﻭﺏ ﺍﻭ ﺭﻗﻡ ﻭﻫﺫﺍ ﺍﻟﺭﻗﻡ ﻴﻌﺒﺭ ﻋﻥ ﺤﺭﻑ ﻭﻟﻜﻥ ﺒﻨﻅﺎﻡ ﺍﻻﺴﻜﻰ ﻜﻭﺩ ﺤﻴﺙ ﻓﻰ ﻫﺫﺍ ﺍﻟﻨﻅﺎﻡ ﻜل ﺤﺭﻑ ﻴﻤﺜل ﺒﺭﻗﻡ ﻤﻌﻴﻥ ﻭﺤﺠﻤﻬﺎ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ 16 bitﺍﻯ ) ( 2 byteﻤﺜﻼ )(a , n , \t , 56 , 126 short -4ﻭﺘﻜﻭﻥ ﻗﻴﻤﻬﺎ ﺍﻋﺩﺍﺩ ﺼﺤﻴﺤﺔ ﻤﻭﺠﺒﺔ ﺍﻭ ﺴﺎﻟﺒﺔ ﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ -32768ﻜﺤﺩ ﺍﺩﻨﻰ ﻭ 32767ﻜﺤﺩ ﺍﻗﺼﻰ ﻭﺤﺠﻤﻬﺎ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ ﻴﻜﻭﻥ 16 bit int -5ﻭﻫﻰ ﺘﻤﺜل ﺒﻘﻴﻡ ﺼﺤﻴﺤﺔ ﻤﻭﺠﺒﺔ ﺍﻭ ﺴﺎﻟﺒﺔ ﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ -2147483648ﻜﺤﺩ ﺍﺩﻨﻰ ﻭ 2147483647ﻜﺤﺩ ﺍﻗﺼﻰ ﻭﺘﺴﺘﻐل ﻤﻥ ﺍﻟﺫﺍﻜﺭﺓ ﺤﺠﻡ 32 bitﺍﻯ 4 byteﻤﺜﻼ )(218888-,20000,50000 float -6ﻭﻫﻰ ﺘﻤﺜل ﺒﻘﻴﻡ ﺍﻻﻋﺩﺍﺩ ﺤﻘﻴﻘﻴﺔ ﺍﻯ ﺍﻋﺩﺍﺩ ﺒﻬﺎ ﻋﻼﻤﺔ ﻋﺸﺭﻴﺔ ﺍﻭ ﻋﺩﺍﺩ ﻜﺴﺭﻴﺔ ﺍﻭ ﺍﻋﺩﺍﺩ ﺍﺴﻴﺔ ﻭﺘﻨﺤﺼﺭ ﻫﺫﻩ ﺍﻟﻘﻴﻡ ﺒﻴﻥ +/-3.40282347E+38و +/-1.40239846E-45ﻭﺤﺠﻤﻬﺎ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ ﻴﻜﻭﻥ 32 bitﻤﺜﻼ ) (88.65 , 222.357 , 2.555ﻭﻜﻤﺎ ﺫﻜﺭﻨﺎ ﻤﻥ ﻗﺒل ﺍﻥ ﺍﻟﺤﺭﻑ e ﺼﻐﻴﺭ ﺍﻭ ﻜﺒﻴﺭ ﻴﻤﺜل ﺍﻻﺴﺎﺱ 10ﻤﺜﻼ ) ( 5e2ﻫﻰ ﺍﻟﺭﻗﻡ )(500 double -7ﻫﻰ ﺘﻤﺜل ﺍﻴﻀﺎ ﻤﺜل floatﻭﻟﻜﻥ ﺍﻟﻔﺭﻕ ﺍﻥ doubleﺍﻟﻘﻴﻡ ﺘﻜﻭﻥ ﺍﻜﺒﺭ ﺒﻜﺜﻴﺭ ﻭﻫﻰ ﺘﻨﺤﺼﺭ ﺒﻴﻥ +/-1.8e308ﻭ +/-4.9e-324ﻭﺤﺠﻡ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﻤﺴﺘﻐل ﻴﻜﻭﻥ 64 bitﺍﻯ 8 byte long -8ﻭﻫﻰ ﺘﻤﺜل ﺍﻻﻋﺩﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ ﺍﻟﺴﺎﻟﺒﺔ ﺍﻭ ﺍﻟﻤﻭﺠﺒﺔ ﻭﻟﻜﻥ ﺘﻜﻭﻥ ﺍﻋﺩﺍﺩ ﻜﺒﻴﺭﺓ ﺠﺩﺍ ﺠﺩﺍ ﻭﺍﻟﺠﺩﻭل ﺍﻻﺘﻰ ﻤﻠﺨﺹ ﺍﻟﺸﺭﺡ ﺍﻟﺴﺎﺒﻕ Min and Max values
Size )(bits
Default value
Contains
Type
Not Applicable \u0000 to \uFFFF -128 to 127 -32768 to 32767 -2147483648 to 2147483647 -9223372036854775808 to 9223372036854775807 +/-3.40282347E+38 to +/-1.40239846E-45 +/-1.79769313486231570E+308 to +/-4.94065645841246544E-324
1 16 8 16 32 64 32 64
false \u0000 0 0 0 0.0 0.0
true or false Unicode character signed integer signed integer signed integer signed integer IEEE754 flt. pt. IEEE754 flt. pt.
boolean char byte short int long float double
ﺍﻟﺩﺭﺱ ﺍﻟﺭﺍﺒﻊ ﻋﺸﺭ : ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﺍﻟﺜﻨﺎﺌﻴﺔ ﺍﻟﻤﺅﺜﺭﺍﺕ operatorsﻫﻰ ﺘﻠﻙ ﺍﻻﺸﺎﺭﺍﺕ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ . ﻭﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ ﻴﺘﻡ ﺍﺩﺍﺀ ﻋﻤﻠﻴﺎﺕ ﺤﺴﺎﺒﻴﺔ ﻋﻠﻴﻬﺎ ﺒﻭﺍﺴﻁﺔ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺘﺴﻤﻰ ﻋﻭﺍﻤل ﺍﻭ ﻋﻨﺎﺼﺭ . ﻭﺘﺘﻁﻠﺏ ﺒﻌﺽ ﺍﻟﻤﺅﺜﺭﺍﺕ ﻋﺎﻤﻠﻴﻥ ﻟﺫﻟﻙ ﺴﻤﻴﺕ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﺍﻟﺜﻨﺎﺌﻴﺔ . ﻭﻫﻰ ﻋﺒﺎﺭﺓ ﻋﻥ ﺨﻤﺴﺔ ﻤﺅﺜﺭﺍﺕ ﺤﺴﺎﺒﻴﺔ ﺜﻨﺎﺌﻴﺔ ﻭﻫﻰ : +ﻭﺍﻟﻐﺭﺽ ﻤﻨﻬﺎ ﻋﻤﻠﻴﺔ ﺍﻟﺠﻤﻊ ﺒﻴﻥ ﺍﻟﻌﻭﺍﻤل :ﻭﺍﻟﻐﺭﺽ ﻤﻨﻬﺎ ﻋﻤﻠﻴﺔ ﺍﻟﻁﺭﺡ ﺒﻴﻥ ﺍﻟﻌﻭﺍﻤل* :ﻭﺍﻟﻐﺭﺽ ﻤﻨﻬﺎ ﻀﺭﺏ ﺍﻟﻌﻭﺍﻤل
: /ﻭﺍﻟﻐﺭﺽ ﻤﻨﻬﺎ ﺍﻟﻘﺴﻤﺔ ﺒﻴﻥ ﺍﻟﻌﻭﺍﻤل ﻭﻋﻨﺩ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﺍ ﺍﻟﻤﺅﺜﺭ ﻨﺤﺘﺭﺱ ﺤﻴﺙ ﻴﻤﻜﻥ ﺍﻥ ﻴﻜﻭﻥ ﺍﻟﻌﺎﻤﻠﻴﻥ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﺍﻋﺩﺍﺩ ﺼﺤﻴﺤﺔ ﻭﻴﻨﺘﺞ ﻋﻥ ﺍﻟﻌﻤﻠﻴﺔ ﻋﺩﺩ ﻋﺸﺭﻯ ﻤﺜﺎل a=15 , b=4 a/b=3.75ﻫﺫﻩ ﻫﻰ ﺍﻻﺠﺎﺒﺔ ﺍﻟﻤﺘﻭﻗﻌﺔ ﻭﻟﻥ ﺍﻟﻨﺎﺘﺞ ﺴﻴﻜﻭﻥ ﻏﻴﺭ ﺫﻟﻙ ﺤﻴﺙ ﺍﻥ ﺍﻟﻌﺎﻤﻼﻥ a,bﺍﻋﺩﺍﺩ ﺼﺤﻴﺤﺔ ﻓﻴﻜﻭﻥ ﺍﻟﻨﺎﺘﺞ ﻋﺩﺩ ﺼﺤﻴﺢ ﻓﻴﻜﻭﻥ ﺍﻟﻨﺎﺘﺞ 3ﻓﻘﻁ ﺩﻭﻥ ﺍﻟﻌﺩﺩ ﺍﻟﻜﺴﺭﻯ ﺍﻭ ﺍﻟﻌﺸﺭﻯ ﻭﻟﻜﻥ ﻤﺎﺫﺍ ﻟﻭ ﺍﺭﺍﺩﻨﺎ ﺍﻟﻘﺴﻤﺔ ﺍﻟﺼﺤﻴﺤﺔ ﻓﻰ ﻫﺫﻩ ﺍﻟﺤﺎﻟﺔ ﻴﺠﺏ ﺍﻥ ﻴﻜﻭﻥ ﺍﺤﺩ ﺍﻟﻌﺎﻤﻠﻴﻥ ﻋﺩﺩ ﻋﺸﺭﻯ ﺒﻤﻌﻨﻰ ﺍﻥ ﺘﻜﻭﻥ a=15.0ﺍﻭ b=4.0ﻭﻫﻰ ﻨﻔﺱ ﺍﻟﻘﻴﻡ ﺍﻟﻘﺩﻴﻤﺔ ﻭﻟﻜﻥ ﺍﺨﺘﻠﻑ ﻨﻭﻋﻬﺎ ﻭﻓﻰ ﻫﺫﻩ ﺍﻟﺤﺎﻟﺔ ﻴﻜﻭﻥ ﺍﻟﻨﺎﺘﺞ 3.75ﻟﺫﻟﻙ ﺍﺤﺘﺭﺱ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻋﻨﺩ ﺍﺴﺘﺨﺩﺍﻤﻙ ﻫﺫﺍ ﺍﻟﻤﺅﺜﺭ. : %ﻭﻴﻜﻭﻥ ﻨﺎﺘﺞ ﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﺔ ﻫﻭ ﺒﺎﻗﻰ ﺍﻟﻘﺴﻤﺔ ﻭﻨﻼﺤﻅ ﻫﻨﺎ ﺍﻨﻪ ﻴﺠﺏ ﺍﻥ ﺘﻜﻭﻥ ﺍﻟﻌﻭﺍﻤل ﺍﻋﺩﺍﺩ ﺼﺤﻴﺤﺔ ﻟﻀﻤﺎﻥ ﺼﺤﺔ ﺍﻟﻨﺎﺘﺞ ﻭﺘﻜﻭﻥ ﺍﺸﺎﺭﺓ ﺍﻟﻨﺎﺘﺞ ﻫﻰ ﻨﻔﺱ ﺍﺸﺎﺭﺓ ﺍﻟﻌﺎﻤل ﺍﻻﻴﺴﺭ ﻤﺜﺎل a=11 , b=2 a%b = 1ﺍﻴﻀﺎ a%-b=1ﻭﻟﻜﻥ – a%b = -1 ﻋﺯﻴﺯﺉ ﺍﻟﻘﺎﺭﺉ ﻴﺠﺏ ﺍﻻﺨﺫ ﻓﻰ ﺍﻻﻋﺘﺒﺎﺭ ﻟﻜل ﻫﺫﻩ ﺍﻟﻤﻼﺤﻅﺎﺕ ﻋﻨﺩ ﺍﺴﺘﺨﺩﺍﻤﻙ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﺍﻟﺜﻨﺎﺌﻴﺔ .
ﺍﻟﺩﺭﺱ ﺍﻟﺨﺎﻤﺱ ﻋﺸﺭ : ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻻﺤﺎﺩﻴﺔ ﻫﻰ ﺘﻠﻠﻙ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﺘﻰ ﺘﻌﻤل ﻋﻠﻰ ﻋﺎﻤل ﻭﺍﺤﺩ ﻭﻴﻜﻭﻥ ﺍﻟﻨﺎﺘﺞ ﻗﻴﻤﺔ ﺠﺩﻴﺩﻩ ﻭﺍﻜﺜﺭ ﻫﺫﻩ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺸﻴﻭﻋﺎ ﻭﺍﺴﺘﺨﺩﺍﻤﺎ ﺍﺸﺎﺭﺓ ﺍﻟﺴﺎﻟﺏ ) (-ﺍﻟﺘﻰ ﺘﺤﺩﺩ ﺍﺸﺎﺭﺓ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻭ ﺍﻟﺭﻗﻡ : ++ﻭﻴﺴﻤﻰ ﻫﺫﺍ ﺍﻟﻤﺅﺜﺭ ﻤﺅﺜﺭ ﺍﻟﺯﻴﺎﺩﺓ increment operatorﻭﻴﺴﺘﺨﺩﻡ ﻟﺯﻴﺎﺩﺓ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ ﺒﻭﺍﺤﺩ ﻤﺜﻼ a=a+1ﻨﺎﺘﺞ ﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﺔ ﻫﻭ ﻨﻔﺴﻪ ﻨﺎﺘﺞ a++ﻴﻌﻨﻰ ﺍﺫﺍ ﻜﺎﻨﺕ a=5ﺍﺫﻥ a++ﺘﺠﻌل a=6
ﻭﻴﻤﻜﻥ ﻭﻀﻊ ﺍﻟﻤﻭﺜﺭ ﻗﺒل ﺍﻟﻌﺎﻤل ﺍﻭ ﺒﻌﺩﻩ ﻭﻟﻜﻥ ﺒﺎﻟﺘﺎﻜﻴﺩ ﻫﻨﺎﻙ ﻓﺭﻕ ﺒﻴﻨﻬﻡ ﻻﺤﻅ ﻤﻌﻰ ﺍﺫﺍ ﻜﺎﻨﺕ a=5 b=(a++)*3ﻴﻜﻭﻥ ﻨﺎﺘﺞ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻥ b=15ﻫﻨﺎ ﻟﻡ ﺘﺘﻡ ﺍﻟﺯﻴﺎﺩﺓ ﻭﻟﻜﻥ ﺍﺫﺍ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﻤﺘﻐﻴﺭ aﻓﻰ ﻋﻤﻠﻴﺔ ﺤﺴﺎﺒﻴﺔ ﺒﻌﺩ ﺫﻟﻙ ﺴﺘﻜﻭﻥ ﻗﻴﻤﺘﻪ 6 ﺍﻤﺎ b=(++a)*3ﻴﻜﻭﻥ ﻨﺎﺘﺞ ﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﺔ b=18ﻫﻨﺎ ﻻﻥ ﺍﻟﺯﻴﺎﺩﺓ ﺘﻤﺕ ﻋﻠﻰ ﺍﻟﻤﺘﻐﻴﺭ a ﺍﺫﻥ ﺍﺫﺍ ﻜﺎﻥ ﺍﻟﻤﺅﺜﺭ ﻗﺒل ﺍﻟﻌﺎﻤل ﻓﺘﺘﻡ ﺍﻟﺯﻴﺎﺩﺓ ﻓﻰ ﻨﻔﺱ ﺍﻟﺴﻁﺭ ﺍﻭ ﻓﻰ ﻨﻔﺱ ﺍﻟﺨﻁﻭﺓ ﻓﻰ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻟﻜﻥ ﺍﺫﺍ ﻜﺎﻥ ﺍﻟﻤﺅﺜﺭ ﺒﻌﺩ ﺍﻟﻌﺎﻤل ﻓﺘﺘﻡ ﺍﻟﺯﻴﺎﺩﺓ ﺒﻌﺩ ﺍﻻﻨﺘﻬﺎﺀ ﻤﻥ ﻫﺫﻩ ﺍﻟﺨﻁﻭﺓ : -ﻴﺴﻤﻰ ﻫﺫﺍ ﺍﻟﻤﺅﺜﺭ ﻤﺅﺜﺭ ﺍﻟﻨﻘﺼﺎﻥ decrement operatorﻭﻴﺴﺘﺨﺩﺍﻡ ﻻﻨﻘﺎﺹ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭﺒﻭﺍﺤﺩ a=a-1ﻨﺎﺘﺞ ﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﺔ ﻫﻭ ﻨﻔﺴﻪ ﻨﺎﺘﺞ a--ﻴﻌﻨﻰ ﺍﺫﺍ ﻜﺎﻨﺕ a=5ﺍﺫﻥ a--ﺘﺠﻌل a=4 ﻭﻴﻤﻜﻥ ﻭﻀﻊ ﺍﻟﻤﻭﺜﺭ ﻗﺒل ﺍﻟﻌﺎﻤل ﺍﻭ ﺒﻌﺩﻩ ﻭﻟﻜﻥ ﺒﺎﻟﺘﺎﻜﻴﺩ ﻫﻨﺎﻙ ﻓﺭﻕ ﺒﻴﻨﻬﻡ ﻭﺘﻡ ﺸﺭﺡ ﺍﻟﻔﺭﻕ ﻤﻥ ﻗﺒل ﻓﻰ ﺍﻟﻤﺅﺜﺭ ﺍﻟﺴﺎﺒﻕ
ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺩﺱ ﻋﺸﺭ : ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﻌﻼﻗﻴﺔ ﺍﻭ ﺍﻟﻤﻨﻁﻘﻴﺔ
ﻫﻰ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﺸﺎﺭﺍﺕ ﺍﻟﻤﻘﺎﺭﻨﺔ ﻭﺘﺴﺘﺨﺩﻡ ﻟﻠﻤﻘﺎﻨﺔ ﺒﻴﻥ ﻋﺎﻤﻠﻴﻥ ) ﻤﺘﻐﻴﺭﺍﻥ ( ﻭﺘﻭﺠﺩ ﻨﺘﻴﺠﺔ ﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﺔ ﻫﻰ trueﺍﻭ falseﻭﻫﺫﻩ ﺍﻟﻤﺅﺜﺭﺍﺕ ﻫﻰ ﻜﻤﺎ ﻴﻠﻰ : < :ﻭﻫﻰ ﺘﻤﺜل ﺍﻗل ﻤﻥ <= :ﺍﻗل ﻤﻥ ﺍﻭ ﻴﺴﺎﻭﻯ > :ﺍﻜﺒﺭ ﻤﻥ >= :ﺍﻜﺒﺭ ﻤﻥ ﺍﻭ ﻴﺴﺎﻭﻯ ﻤﺜﻼ a=5 , b=6 z=a
ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺒﻊ ﻋﺸﺭ : ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﻤﻨﻁﻘﻴﺔ ﻫﺫﻩ ﺍﻟﻤﺅﺜﺭﺍﺕ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺘﺴﺘﺨﺩﻡ ﻤﻊ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﻌﻼﻗﻴﺔ ﻭﻴﻜﻭﻥ ﺍﻴﻀﺎ ﺍﻟﻨﺎﺘﺞ ﻤﻨﻬﺎ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﺤﺩﻯ ﺍﻟﻨﺘﻴﺠﺘﻴﻥ trueﺍﻭ . falseﻭﻫﺫﻩ ﺍﻟﻤﺅﺜﺭﺍﺕ ﻫﻰ : && :andﻭﻫﻰ ﻋﺒﺎﺭﺓ ﻋﻥ ﻤﺅﺜﺭ ﺜﻨﺎﺌﻰ ﻴﻜﻭﻥ ﻨﺎﺘﺞ ﺍﻟﺘﻌﺒﻴﺭ trueﺍﺫﺍ ﻜﺎﻥ ﻜل ﻤﻥ ﺍﻟﻌﻨﺼﺭﻴﻥ ﺼﺤﻴﺤﺎ ﻓﻘﻁ ﻭﻴﻤﻜﻥ ﺍﻥ ﻴﻜﻭﻥ ﻋﻠﻰ ﻫﺫﺍ ﺍﻟﺸﻜل & ﻤﺜﻼ a=5 , b=6 : ) ( a > 0 ) && ( a< bﻴﻜﻭﻥ ﻨﺎﺘﺞ ﻫﺫﺍ ﺍﻟﺘﻌﺒﻴﺭ trueﺤﻴﺙ ﺍﻥ ﻨﺎﺘﺞ a>0ﺼﺤﻴﺢ ﻭﺍﻴﻀﺎ ﻨﺎﺘﺞ a
ﻭﻴﻤﻜﻥ ﺘﻠﺨﻴﺹ ﺍﻟﺸﺭﺡ ﻓﻰ ﺍﻟﺠﺩﻭل ﺍﻻﺘﻰ: ﺍﻟﻤﺅﺜﺭ ﻨﺎﺘﺞ ﺍﻟﺘﻌﺒﻴﺭ ﺍﻻﻭل || ﺼﺤﻴﺢ) ( true || ﺨﻁﺄ ) ( false || ﺼﺤﻴﺢ ) ( true || ﺨﻁﺄ ) ( false
ﺍﻟﻨﺘﻴﺠﻪ ﺍﻟﻨﻬﺎﺌﻴﺔ ﺼﺢ ) ( true ﺼﺢ ) ( true ﺼﺢ ) ( true ﺨﻁﺄ ) ( false
ﻨﺎﺘﺞ ﺍﻟﺘﻌﺒﻴﺭ ﺍﻟﺜﺎﻨﻰ ﺼﺤﻴﺢ) ( true ﺼﺤﻴﺢ) ( true ﺨﻁﺄ ) ( false ﺨﻁﺄ ) ( false
! : notﻫﺫﺍ ﺍﻟﻤﺅﺜﺭ ﺍﺤﺎﺩﻯ ﺍﻯ ﻴﻨﻔﻰ ﻗﻴﻤﺔ ﺍﻟﺘﻌﺒﻴﺭ ﺍﻟﻤﻨﻁﻘﻰ ﺒﺎﺨﺘﺼﺎﺭ ﺍﺫﺍ ﻜﺎﻥ ﺍﻟﺘﻌﺒﻴﺭ ﺼﺤﻴﺤﺎ ﻴﺠﻌﻠﻪ ﺨﻁﺄ ﻭﺍﺫﺍ ﻜﺎﻥ ﺨﻁﺄ ﻴﻜﻭﻥ ﺼﺤﻴﺤﺎ ﻭﻴﻤﻜﻥ ﺘﻠﺨﻴﺹ ﺍﻟﺸﺭﺡ ﻓﻰ ﺍﻟﺠﺩﻭل ﺍﻻﺘﻰ: ﺍﻟﻤﺅﺜﺭ ﻨﺎﺘﺞ ﺍﻟﺘﻌﺒﻴﺭ ! ﺼﺤﻴﺢ) ( true ! ﺨﻁﺄ ) ( false
ﺍﻟﻨﺘﻴﺠﻪ ﺍﻟﻨﻬﺎﺌﻴﺔ ﺨﻁﺄ ) ( false ﺼﺢ ) ( true
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻤﻥ ﻋﺸﺭ : ﻤﺅﺜﺭ ﺍﻟﺘﺤﺩﻴﺩ ﻭﻤﺅﺜﺭﺍﺕ ﺍﻟﺘﺤﺩﻴﺩ ﺍﻟﻤﺭﻜﺒﺔ ﺘﻀﻡ ﺍﻟﺠﺎﻓﺎ ﻋﺩﺓ ﻤﺅﺜﺭﺍﺕ ﺘﺤﺩﻴﺩ ﻤﺨﺘﻠﻔﺔ ﺘﺴﺘﺨﺩﻡ ﺠﻤﻴﻌﻬﺎ ﻓﻰ ﻋﻤل ﺘﻌﺒﻴﺭﺍﺕ ﺘﺤﺩﻴﺩ assignment expressionﺘﺤﺩﺩ ﻓﻴﻪ ﺘﻌﺒﻴﺭ ﻻﺤﺩ ﺍﻟﻤﻌﺭﻓﺎﺕ ﻭﻋﺎﺩﺓ ﻤﺎ ﻴﺸﺎﺭ ﺍﻟﻰ ﺘﻌﺒﻴﺭﺍﺕ ﺍﻟﺘﺤﺩﻴﺩ ﺒﺎﻨﻬﺎ ﻋﺒﺎﺭﺍﺕ ﺘﺤﺩﻴﺩ . assignment ststment ﺍﻭﻻ ﻤﺅﺜﺭ ﺍﻟﺘﺤﺩﻴﺩ ) = ( ﺘﻜﻭﻥ ﺍﻟﺼﻴﻐﺔ ﺍﻟﻌﺎﻤﺔ ﻟﺘﻌﺒﻴﺭﺍﺕ ﺍﻟﺘﺤﺩﻴﺩ ﻫﻜﺫﺍ identifier = expressionﺤﻴﺙ ﻴﻤﺜل ﺍﻟﻁﺭﻑ ﺍﻻﻴﺴﺭ ﺍﺴﻡ ﺍﻟﻤﺘﻐﻴﺭ ﺒﻴﻨﻤﺎ ﻴﻤﺜل ﺍﻟﻁﺭﻑ ﺍﻻﻴﻤﻥ ﺜﺎﺒﺕ ﺍﻭ ﻤﺘﻐﻴﺭ ﺍﻭ ﺘﻌﺒﻴﺭ .ﻭﺍﺫﺍ ﻜﺎﻥ ﺘﻌﺒﻴﺭ ﻓﺎﻨﻪ ﻴﻨﺘﺞ ﻋﻥ ﺘﻨﻔﻴﺫ ﺍﻟﺘﻌﺒﻴﺭ ﺍﻟﺴﺎﺒﻕ ﺤﺴﺎﺏ ﻗﻴﻤﺔ ﺍﻟﺘﻌﺒﻴﺭ ﺍﻟﻤﻭﺠﻭﺩ ﻋﻠﻰ ﺍﻟﻁﺭﻑ ﺍﻻﻴﻤﻥ ﻤﻥ ﻤﺅﺜﺭ ﺍﻟﺘﺤﺩﻴﺩ ﻭﺘﺨﺯﻴﻥ ﺍﻟﻨﺎﺘﺞ ﻓﻰ ﺍﻟﻤﺘﻐﻴﺭ ) ﺍﻟﻤﻌﺭﻑ ( ﺍﻟﻤﻭﺠﻭﺩ ﻋﻠﻰ ﺍﻟﻴﺴﺎﺭ . ﻭﻴﺴﻤﺢ ﻓﻰ ﺍﻟﺠﺎﻓﺎ ﺒﺎﻟﺘﺤﺩﻴﺩﺍﺕ ﺍﻟﻤﺘﻌﺩﺩﺓ ﻭﺘﻨﻔﻴﺫ ﺍﻟﺘﺤﺩﻴﺩ ﻴﻜﻭﻥ ﻤﻥ ﺍﻟﻴﻤﻴﻥ ﺍﻟﻰ ﺍﻟﻴﺴﺎﺭ ﻤﺜﻼ j = k =6 ﻓﺎﻥ ﻫﺫﺍ ﺍﻟﺘﻌﺒﻴﺭ ﻴﻌﻨﻰ ﺍﻥ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ kﺴﺘﺼﺒﺢ 6ﺜﻡ ﺒﻌﺩ ﺫﻟﻙ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ jﺘﺼﺒﺢ . 6 ﺘﺫﻜﺭ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺍﻟﻔﺭﻕ ﺒﻴﻥ = ﻭ == ﺜﺎﻨﻴﺎ ﻤﺅﺜﺭﺍﺕ ﺍﻟﺘﺤﺩﻴﺩ ﺍﻟﻤﺭﻜﺒﺔ ﺍﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻤﺅﺜﺭﺍﺕ ﺍﻟﺘﺤﺩﻴﺩ ﺍﻟﻤﺭﻜﺒﺔ ﻫﻭ ﻋﺒﺎﺭﺓ ﻋﻥ ﻁﺭﻴﻘﺔ ﻤﺨﺘﺼﺭ ﻟﺘﻌﺒﻴﺭﺍﺕ ﺍﻟﺘﺤﺩﻴﺩ ﺍﻭ ﺍﻟﺘﺨﺼﻴﺹ ﻭﻫﺫﻩ ﺍﻟﻤﺅﺜﺭﺍﺕ ﻫﻰ : =%
,
=/
,
=*
,
=-
,
ﻭﻨﻼﺤﻅ ﺍﻥ ﻫﺫﻩ ﺍﻟﻤﺅﺜﺭﺍﺕ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﻭﺒﺠﻭﺍﺭﻫﺎ ﻤﺅﺜﺭ ﺍﻟﺘﺤﺩﻴﺩ ﻴﺴﺎﻭﻯ ﻭﻟﻜﻥ ﻤﺎﺫﺍ ﺘﻤﺜل ﻫﺫﻩ ﺍﻻﺨﺘﺼﺎﺭﺍﺕ ؟ y=6 , x=5 ﻓﻤﺎ ﻫﻰ ﻗﻴﻤﺔ xﻫﻨﺎ x = x + y ﺘﻜﻭﻥ ﻗﻴﻤﺔ xﻫﻰ x = 5 + 6ﺍﻯ ﺍﻥ x = 11 ﻴﻤﻜﻥ ﻜﺘﺎﺒﺔ ﺍﻟﺘﻌﺒﻴﺭ x = x + yﺒﻬﺫﻩ ﺍﻟﺼﻭﺭﺓ x + = y
=+
ﻭﻫﻜﺫﺍ ﺒﺎﻟﻨﺴﺒﺔ ﻟﺒﺎﻗﻰ ﻫﺫﻩ ﺍﻟﻤﺅﺜﺭﺍﺕ ﻭﺍﻟﺠﺩﻭل ﺍﻟﺘﺎﻟﻰ ﻴﻭﻀﺢ ﺍﻟﺸﺭﺡ ﻴﻜﺎﻓﺊ ﺍﻟﺘﻌﺒﻴﺭ ﺍﻟﺘﻌﺒﻴﺭ x=x+y x=x-y x=x*y x=x/y x=x%y
x += y x -= y x *= y x /= y x %= y
ﺍﻟﺩﺭﺱ ﺍﻟﺘﺎﺴﻊ ﻋﺸﺭ : ﺍﻭﻟﻭﻴﺎﺕ ﺘﻨﻔﻴﺫ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﺫﺍ ﺍﺠﺘﻤﻊ ﺍﻜﺜﺭ ﻤﻥ ﻤﺅﺜﺭ ﻓﻰ ﻋﻤﻠﻴﺔ ﻭﺍﺤﺩ ﻓﻼﻯ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻻﺴﺒﻘﻴﺔ ﻓﻰ ﺍﻟﺘﻨﻔﻴﺫ ﻭﻤﻥ ﺍﻯ ﺍﺘﺠﺎﻩ ﻴﺒﺩﺃ ﺘﻨﻔﻴﺫ ﻫﺫﺍ ﺍﻟﻤﺅﺜﺭ ؟ ﻴﻭﻀﺢ ﺍﻟﺠﺩﻭل ﺍﻻﺘﻰ ﺍﻻﺴﺒﻘﻴﺔ ﻭﺍﻟﻤﺼﺎﺤﺒﺔ ) ﺍﺘﺠﺎﺓ ﺘﻨﻔﻴﺫ ﺍﻟﻤﺅﺜﺭ ﻋﻠﻰ ﺍﻟﻌﻤﻠﻴﺔ ( ﻭﺫﻟﻙ ﻤﻥ ﺍﻻﻋﻠﻰ ﺍﻟﻰ ﺍﻻﺴﻔل ﺍﻯ ﺍﻥ ﺍﻻﺴﺒﻘﻴﻪ ﻟﻤﺎ ﻓﻰ ﺒﺩﺍﻴﺔ ﺍﻟﺠﺩﻭل ﺍﻟﻤﺼﺎﺤﺒﻪ ﺍﻟﻤﺅﺜﺭ ﻓﺌﺔ ﺍﻟﻤﺅﺜﺭ ! , , ++ , -ﻤﻥ ﺍﻟﻴﻤﻴﻥ ﺍﻟﻰ ﺍﻟﻴﺴﺎﺭ ﻤﺅﺜﺭﺍﺕ ﺍﺤﺎﺩﻴﺔ % , / , * ﻤﻥ ﺍﻟﻴﺴﺎﺭ ﺍﻟﻰ ﺍﻟﻴﻤﻴﻥ ﻀﺭﺏ ﻭﻗﺴﻤﺔ ﻭﺒﺎﻗﻰ ﺍﻟﻘﺴﻤﺔ + , ﻤﻥ ﺍﻟﻴﺴﺎﺭ ﺍﻟﻰ ﺍﻟﻴﻤﻴﻥ ﺠﻤﻊ ﻭﻁﺭﺡ => , > , =< , < ﻤﻥ ﺍﻟﻴﺴﺎﺭ ﺍﻟﻰ ﺍﻟﻴﻤﻴﻥ ﻤﺅﺜﺭﺍﺕ ﻋﻼﻗﻴﺔ ) ﻤﻨﻁﻘﻴﺔ ( =! , = = ﻤﻥ ﺍﻟﻴﺴﺎﺭ ﺍﻟﻰ ﺍﻟﻴﻤﻴﻥ ﻤﺅﺜﺭﺍﺕ ﺍﻟﺘﺴﺎﻭﻯ && And ﻤﻥ ﺍﻟﻴﺴﺎﺭ ﺍﻟﻰ ﺍﻟﻴﻤﻴﻥ Or ﻤﻥ ﺍﻟﻴﺴﺎﺭ ﺍﻟﻰ ﺍﻟﻴﻤﻴﻥ || ﻤﺅﺜﺭﺍﺕ ﺍﻟﺘﺤﺩﻴﺩ = + = , - = , * = , / = , % = ,ﻤﻥ ﺍﻟﻴﻤﻴﻥ ﺍﻟﻰ ﺍﻟﻴﺴﺎﺭ
ﺍﻟﺩﺭﺱ ﺍﻟﻌﺸﺭﻭﻥ : ﻋﻤﻠﻴﺎﺕ ﺍﻟﺘﺤﻭﻴل ﻭﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﻪ ﻫﻰ ﻋﺒﺎﺭﺓ ﻋﻥ ﺘﺤﻭﻴل ﺍﻟﻤﺘﻐﻴﺭ ﻤﻥ ﻨﻭﻉ ﺒﻴﺎﻥ ﺍﻟﻰ ﻨﻭﻉ ﺒﻴﺎﻥ ﺍﺨﺭ ﻭﺘﺴﻤﻰ data type castingﻭﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﻨﻭﻉ booleanﻻﻴﻤﻜﻥ ﺘﺤﻭﻴﻠﻪ ﺍﻟﻰ ﺍﻯ ﻨﻭﻉ ﺍﺨﺭ ﺍﻭ ﺘﺤﻭﻴل ﻨﻭﻉ ﺍﺨﺭ ﺍﻟﻴﻪ. ﻭﻓﻰ ﺍﻟﻐﺎﻟﺏ ﻋﻤﻠﻴﺔ ﺍﻟﺘﺤﻭﻴل ﺘﺘﻡ ﻤﻥ ﺍﻟﻨﻭﻉ ﺍﻻﺼﻐﺭ ﺍﻟﻰ ﺍﻟﻨﻭﻉ ﺍﻻﻜﺒﺭ ﻓﻤﺜﻼ ﻴﻤﻜﻥ ﺘﺤﻭﻴل ﻤﺘﻐﻴﺭ ﻤﻥ ﺍﻟﻨﻭﻉ charﺍﻟﻰ intﻤﺜﻼ ' int i , char c='Aﺍﻻﻥ ﺍﺫﺍ ﻭﻀﻌﻨﺎ i=cﻓﺎﻥ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ iﺘﺼﺒﺢ 65ﻭﻫﺫﺍ ﻫﻭ ﺍﻟﺭﻗﻡ ﺍﻟﻤﻨﺎﻅﺭ ﻟﻠﺤﺭﻑ Aﻓﻰ ﺍﻻﺴﻜﻰ ﻜﻭﺩ ﻭﻫﻨﺎ ﺘﻡ ﺘﺤﻭﻴل ﺍﻟﺒﻴﺎﻥ ﻤﻥ charﺍﻟﻰ int
ﺍﻴﻀﺎ ﻴﻤﻜﻥ ﺘﺤﻭﻴل ﻤﻥ ﺍﻟﻨﻭﻉ charﺍﻟﻰ floatﻤﺜﻼ ' float f , char c='Aﺍﻻﻥ ﺍﺫﺍ ﻭﻀﻌﻨﺎ f=c ﻓﺎﻥ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ fﺘﺼﺒﺢ 65.0ﻭﻫﻨﺎ ﻨﻼﺤﻅ ﺍﻟﻔﺭﻕ ﺒﻴﻥ ﺍﻟﻤﺜﺎﻟﻴﻥ ﺤﻴﺙ ﺍﻥ floatﺘﻤﺜل ﺍﻻﺭﻗﺎﻡ
ﺍﻟﻌﺸﺭﻴﺔ ﺍﻭ ﺍﻟﻜﺴﺭﻴﺔ . ﺍﻴﻀﺎ ﻴﻤﻜﻥ ﺘﺤﻭﻴل ﺍﻻﻋﺩﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ ﺒﺎﻨﻭﻋﻬﺎ ﺍﻟﻰ ﺍﻻﻋﺩﺍﺩ ﺍﻟﻌﺸﺭﻴﺔ ﺒﻤﻌﻨﻰ ﻴﻤﻜﻥ ﺘﺤﻭﻴل byte,int,short,longﺍﻟﻰ float , double
ﺍﻟﺩﺭﺱ ﺍﻟﺤﺎﺩﻯ ﻭﺍﻟﻌﺸﺭﻭﻥ : ﺍﻟﺘﻌﺒﻴﺭﺍﺕ ﻭﺍﻟﻌﺒﺎﺭﺍﺕ ﺍﻟﺘﻌﺒﻴﺭ expressionﻴﻤﺜل ﻋﻨﺼﺭ ﺒﻴﺎﻨﺎﺕ ﻤﻔﺭﺩ ) ﻤﺜل ﺍﻟﺭﻗﻡ ﺍﻭ ﺍﻟﺤﺭﻑ ( ﻭﻴﻤﻜﻥ ﺍﻥ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻤﺤﺘﻭﻯ ﻤﻔﺭﺩ ﻤﺜل ) ﺍﻟﺜﺎﺒﺕ ﺍﻭ ﺍﻟﻤﺘﻐﻴﺭ ( ﻜﺫﻟﻙ ﻴﻤﻜﻥ ﺒﻌﺽ ﺍﻟﺨﻠﻴﻁ ﺒﻴﻥ ﻫﺫﻩ ﺍﻟﻤﺤﺘﻭﻴﺎﺕ ﻤﺘﺼﻠﺔ ﺒﻌﻀﻬﺎ ﺒﺒﻌﺽ ﺒﻤﺅﺜﺭ ﺍﻭ ﺍﻜﺜﺭ ﻭﻴﻤﻜﻥ ﺍﻴﻀﺎ ﺍﻥ ﻴﻤﺜل ﺍﻟﺘﻌﺒﻴﺭ ﺸﺭﻭﻁﺎ ﻤﻨﻁﻘﻴﺔ . ﺍﻤﺎ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻭ ﺍﻟﺠﻤﻠﺔ statementﻓﺎﻨﻬﺎ ﺘﺘﺴﺒﺏ ﻓﻰ ﺍﺠﺭﺍﺀ ﺍﻟﻜﻤﺒﻴﻭﺘﺭ ﺍﻟﻰ ﻨﺸﺎﻁ ﻤﻌﻴﻥ ﻟﺫﺍ ﻓﻬﻰ ﺍﻻﻤﺭ ﺍﻟﻤﻭﺠﻪ ﺍﻟﻰ ﺍﻟﻜﻤﺒﻴﻭﺘﺭ ﻻﺩﻯ ﺸﺊ ﻤﻌﻴﻥ ﺍﻟﻤﻁﻠﻭﺏ ﺍﻟﻘﻴﺎﻡ ﺒﻪ ﻭﺘﻭﺠﺩ ﺜﻼﺙ ﻓﺌﺎﺕ ﻤﻥ ﺍﻟﻌﺒﺎﺭﺍﺕ : -1ﻋﺒﺎﺭﺍﺕ ﺍﻭ ﺠﻤل ﺘﻌﺒﻴﺭﺍﺕ ﻭﺘﺤﺘﻭﻯ ﻋﻠﻰ ﺘﻌﺒﻴﺭ ﻭﻴﺘﺴﺒﺏ ﺘﻨﻔﻴﺫ ﻋﺒﺎﺭﺓ ﺍﻟﺘﻌﺒﻴﺭ ﻓﻰ ﺘﻘﻭﻴﻡ ﺍﻟﺘﻌﺒﻴﺭ -2ﻋﺒﺎﺭﺍﺕ ﺍﻭ ﺠﻤل ﻤﺭﻜﺒﺔ ﻭﻫﻰ ﺘﻠﻙ ﺍﻟﺘﻰ ﺘﺘﻜﻭﻥ ﻤﻥ ﺍﻜﺜﺭ ﻤﻥ ﺠﻤﻠﺔ ﺍﻭ ﻋﺒﺎﺭﺓ ﻤﻔﺭﺩﺓ ﻴﻤﻜﻥ ﺍﻥ ﺘﻜﻭﻥ ﻋﺒﺎﺭﺍﺕ ﺘﻌﺒﻴﺭ ﺍﻭ ﻋﺒﺎﺭﺍﺕ ﻤﺭﻜﺒﺔ ﺍﻭ ﻋﺒﺎﺭﺍﺕ ﺘﺤﻜﻡ ﻭﻋﻠﻰ ﻫﺫﺍ ﺘﻘﺩﻡ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﻤﺭﻜﺒﺔ ﺍﻤﻜﺎﻨﻴﺔ ﺍﺩﺨﺎل ﻋﺒﺎﺭﺍﺕ ﺩﺍﺨل ﻋﺒﺎﺭﺍﺕ ﺍﺨﺭﻯ ﻭﺘﻜﻭﻥ ﺠﻤﻴﻊ ﻫﺫﻩ ﺍﻟﻌﺒﺎﺭﺍﺕ ﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ ﺯﺠﻴﻥ ﺍﻗﻭﺍﺱ ﺍﻟﻔﺌﺔ } { -3ﻋﺒﺎﺭﺍﺕ ﺍﻟﺘﺤﻜﻡ ﻭﺘﺴﺘﺨﺩﻡ ﻓﻰ ﺍﻨﺘﺎﺝ ﺴﻤﺎﺕ ﺒﺭﻨﺎﻤﺞ ﺨﺎﺼﺔ ﻤﺜل :ﺍﻻﺨﺘﺒﺎﺭﺍﺕ ﺍﻟﻤﻨﻁﻘﻴﺔ ﻭﺍﻟﺩﻭﺭﺍﺕ ﻭﺍﻟﺘﻔﺭﻴﻌﺎﺕ ﻭﻴﺘﻁﻠﺏ ﻤﻥ ﻋﺒﺎﺭﺍﺕ ﺍﻟﺘﺤﻜﻡ ﻭﺠﻭﺩ ﻋﺒﺎﺭﺍﺕ ﺩﺍﺨل ﻋﺒﺎﺭﺍﺕ ﺍﺨﺭﻯ ﻭﺴﻴﺘﻡ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺸﺭﺡ ﻫﺫﻩ ﺍﻟﻌﺒﺎﺭﺍﺕ ﺒﺎﻟﺘﻔﺼﻴل ﻓﻰ ﺩﺭﻭﺴﺔ ﻻﺤﻘﺔ
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻨﻰ ﻭﺍﻟﻌﺸﺭﻭﻥ : ﺘﺸﻐﻴل ﻤﺘﺭﺠﻡ ﺍﻟﺠﺎﻓﺎ ﻋﺯﻴﺯﻯﺍﻟﻘﺎﺭﺉ ﺫﻜﺭﻨﺎ ﻓﻰ ﺩﺭﻭﺱ ﺴﺎﺒﻘﺔ ﺍﻟﻤﺴﺎﺭ ﺍﻟﺫﻯ ﻴﺴﻠﻜﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺩﺍﻴﺔ ﻤﻥ ﻜﺘﺎﺒﺘﻪ ﺤﺘﻰ ﺘﺸﻐﻴﻠﻪ ﺍﻻﻥ ﺘﻌﺎﻟﻰ ﻨﺘﻌﺭﻑ ﻋﻠﻰ ﻁﺭﻴﻘﺔ ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﻤﻠﻑ classﻭﺘﺸﻐﻴل ﻫﺫﺍ ﺍﻟﻤﻠﻑ. ﺍﻭﻻ ﺒﻌﺩ ﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﺘﻡ ﺤﻔﻅ ﺍﻟﻤﻠﻑ ) ﻤﻠﻑ ﺍﻟﻤﺼﺩﺭ ( ﻓﻰ ﻫﺫﺍ ﺍﻟﻤﺴﺎﺭ c:\jdk1.3.0_02\binﺤﻴﺙ ﺍﻥ ﻫﺫﺍ ﺍﻟﻤﺠﻠﺩ ﻴﺘﻡ ﺇﻨﺸﺎﺅﻩ ﻋﻠﻰ ﺍﻟﺠﺯﺀ ﺴﻰ c:ﻤﻥ ﺍﻟﻬﺎﺭﺩ ﺒﻌﺩ ﺘﻨﺼﻴﺏ j2sdkﺍﻟﺫﻯ ﺘﻡ ﺘﺤﻤﻴﻠﻪ ﻤﻥ ﺍﻻﻨﺘﺭﻨﺕ ﻤﻥ ﻤﻭﻗﻊ ﺴﻥ ﻭﻴﺘﻡ ﺤﻔﻅ ﺍﻟﻤﻠﻑ ﺒﺎﻤﺘﺩﺍﺩ .java
)( filename.java
ﺜﺎﻨﻴﺎ ﻨﻘﻭﻡ ﺒﺘﺸﻐﻴل ﻤﺤﺙ ﺍﻟﺩﻭﺱ dosﻭﺘﺨﺘﻠﻑ ﻁﺭﻴﻘﺔ ﺘﺸﻐﻴﻠﻪ ﻋﻠﻰ ﺤﺴﺏ ﻨﻅﺎﻡ ﺘﺸﻐﻴل ﺍﻟﻭﻴﻨﺩﻭﺯ ﻓﺎﺫﺍ ﻜﺎﻥ ﺍﻟﻭﻴﻨﺩﻭﺯ ﺍﻟﻤﺴﺘﺨﺩﻡ 98ﺍﻭ ﻤﻴﻠﻴﻨﻴﻭﻡ ﻨﺘﺒﻊ ﺍﻻﺘﻰ : -1ﺍﻀﻐﻁ start -2ﺍﺨﺘﺭ programs -3ﺍﻀﻐﻁ ﻋﻠﻰ Ms-Dos Prompt
ﻨﺠﺩ ﻨﺎﻓﺫﺓ ﺍﻟﺩﻭﺱ ﻅﻬﺭﺕ ﺍﻤﺎﻤﻨﺎ
ﺍﻤﺎ ﺍﺫﺍ ﻜﺎﻥ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﻭﻴﻨﺩﻭﺯ ﺍﻜﺱ ﺒﻰ ﺍﻭ 2000ﺍﺘﺒﻊ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻻﺘﻴﺔ -1ﺍﻀﻐﻁ start -2ﺍﻀﻐﻁ Run -3ﺍﻜﺘﺏ cmdﺜﻡ ﺍﻀﻐﻁ ok ﺘﺠﺩ ﺍﻨﻪ ﺘﻡ ﻓﺘﺢ ﻨﺎﻓﺫﻩ ﺍﻟﺩﻭﺱ
ﺜﺎﻟﺜﺎ ﻭﻓﻰ ﺠﻤﻴﻊ ﺍﻟﺤﺎﻻﺕ ﻴﻜﻭﻥ ﻤﺤﺙ ﺍﻟﺩﻭﺱ ﻋﻨﺩ ﻤﺠﻠﺩ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﻟﻠﻭﻴﻨﺩﻭﺯ ﻓﺎﺘﺒﻊ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻻﺘﻴﺔ ﻟﻠﻭﻗﻑ ﻋﻨﺩ ﺍﻟﻤﺤﺙ c:\jdk1.3.0_02\bin -1ﺍﻜﺘﺏ cd..ﺜﻡ ﺍﻀﻐﻁ ﻤﻔﺘﺎﺡ ﺍﺩﺨﺎل ﻓﻰ ﻟﻭﺤﺔ ﺍﻟﻤﻔﺎﺘﻴﺢ -2ﺍﻜﺘﺏ cd jdk1.3.0_02ﺜﻡ ﺍﻀﻐﻁ ﻤﻔﺘﺎﺡ ﺍﺩﺨﺎل ﻓﻰ ﻟﻭﺤﺔ ﺍﻟﻤﻔﺎﺘﻴﺢ -3ﺍﻜﺘﺏ cd binﺜﻡ ﺍﻀﻐﻁ ﻤﻔﺘﺎﺡ ﺍﺩﺨﺎل ﻓﻰ ﻟﻭﺤﺔ ﺍﻟﻤﻔﺎﺘﻴﺢ
ﺭﺍﺒﻌﺎ ﺍﻻﻥ ﺴﻨﻘﻭﻡ ﺒﺘﺭﺠﻤﺔ ﻤﻠﻑ ﺍﻟﻤﺼﺩﺭ ﺍﻟﻰ ﻤﻠﻑ .class ﺍﻜﺘﺏ ﺍﻻﻥ javac filename.javaﺜﻡ ﺍﻀﻐﻁ ﻤﻔﺘﺎﺡ ﺍﺩﺨﺎل ﺍﻯ ﻨﻘﻭﻡ ﺒﻜﺘﺎﺒﺔ javacﻭﺒﻌﺩﻫﺎ ﻨﻜﺘﺏ
ﺍﺴﻡ ﻤﻠﻑ ﺍﻟﻤﺼﺩﺭ ﺒﺎﻤﺘﺩﺍﺩﻩ .ﺍﻻﻥ ﺍﺫﺍ ﻗﻤﺕ ﺒﻔﺘﺢ ﺍﻟﻤﺴﺎﺭ ﺍﻟﺴﺎﺒﻕ ﺴﺘﺠﺩ ﺍﻨﻪ ﺘﻡ ﺍﻨﺸﺎﺀ ﻤﻠﻑ ﺠﺩﻴﺩ ﺒﺎﻤﺘﺩﺍﺩ filename.classﻭﻫﺫﺍ ﻫﻭ ﺍﻟﻤﻠﻑ ﺍﻟﺫﻯ ﻴﻤﻜﻨﻙ ﺘﺸﻐﻴﻠﻪ ﺘﺤﺕ ﺍﻯ ﻨﻅﺎﻡ ﺘﺸﻐﻴل ﺩﻭﻥ ﺍﻟﺘﻘﻴﺩ ﺒﺎﻟﻨﻅﺎﻡ ﺍﻟﺫﻯ ﺘﻤﺕ ﺍﻟﺘﺭﺠﻤﺔ ﺘﺤﺘﻪ . ﺨﺎﻤﺴﺎ ﻓﻰ ﺍﻟﻨﻬﺎﻴﺔ ﻟﺘﺸﻐﻴل ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺫﻯ ﻗﻤﺕ ﺒﻜﺘﺎﺒﺘﻪ ﺍﻯ ﻤﻠﻑ ﺍﻟﻤﺼﺩﺭ ﺍﻜﺘﺏ java filename ﺍﻯ ﺍﻜﺘﺏ javaﺜﻡ ﺍﻜﺘﺏ ﺍﺴﻡ ﺍﻟﻤﻠﻑ ﺍﻟﺫﻯ ﺍﻤﺘﺩﺍﺩﻩ classﺩﻭﻥ ﻜﺘﺎﺒﺔ ﺍﻻﻤﺘﺩﺍﺩ .
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻟﺙ ﻭﺍﻟﻌﺸﺭﻭﻥ : ﺍﻭل ﺒﺭﻨﺎﻤﺞ ﺠﺎﻓﺎ ﺍﻻﻥ ﺘﻌﺎﻟﻰ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻘﻭﻡ ﺒﻌﻤل ﺍﻭل ﺒﺭﻨﺎﻤﺞ ﻟﻙ ﺒﻠﻐﺔ ﺍﻟﺠﺎﻓﺎ ﻭﺴﻴﻜﻭﻥ ﺒﺭﻨﺎﻤﺞ ﺒﺴﻴﻁ ﺠﺩﺍ ﻴﻘﻭﻡ ﺒﻁﺒﺎﻋﺔ ﻜﻠﻤﺔ Hello ﻗﻡ ﺒﻔﺘﺢ ﺍﻯ ﻤﺤﺭﺭ ﻨﺼﻭﺹ ﻭﻟﻴﻜﻥ ﻤﺜﻼ ﺍﻟﺩﻓﺘﺭ notepadﻭﻗﻡ ﺒﻜﺘﺎﺒﺔ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ class Hello { )public static void main(String []arg { ;)"System.out.println("Hello
} }
ﺍﻜﺘﺏ ﺍﻟﺤﺭﻭﻑ ﻜﻤﺎ ﻫﻰ ﺍﻯ ﻻﺘﻐﻴﺭ ﻓﻰ ﺤﺎﻟﺔ ﺍﻟﺤﺭﻭﻑ ﻜﺒﻴﺭﻩ ﺍﻭ ﺼﻐﻴﺭﻩ ﻭﻟﻥ ﺍﻜﺘﺒﻬﺎ ﻜﻤﺎ ﻫﻰ ﺍﻤﺎﻤﻙ ﻗﻡ ﺍﻻﻥ ﺒﺤﻔﻅ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻓﻰ ﺍﻟﻤﺠﻠﺩ binﺍﻟﻤﻭﺠﻭﺩ ﺩﺍﺨل ﺍﻟﻤﺠﻠﺩ jdk1.3.0_02ﻭﻫﺫﺍ ﺍﻟﻤﺠﻠﺩ ﺴﺘﺠﺩ ﻓﻰ ﺍﻟﺠﺯﺀ c:ﻤﻥ ﺍﻟﻬﺎﺭﺩ ﺩﻴﺴﻙ ﺍﻟﺨﺎﺹ ﺒﻙ. ﺍﺤﻔﻅ ﺍﻟﻤﻠﻑ ﺒﺎﺴﻡ Hello.javaﻭﻻﺘﻨﺴﻰ ﺍﻻﻤﺘﺩﺍﺩ . ﻗﻡ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺒﺎﺘﺒﺎﻉ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﻤﻭﺠﻭﺩﻩ ﻓﻰ ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺒﻕ ﺘﺠﺩ ﺍﻨﻪ ﺘﻡ ﻁﺒﺎﻋﺔ ﻜﻠﻤﺔ Hello
ﺘﻌﺎﻟﻰ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻔﺴﺭ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺨﻁﻭﻩ ﺨﻁﻭﻩ ﺍﻭﻻ class Helloﺍﻯ ﺒﺭﻨﺎﻤﺞ ﻟﻠﺠﺎﻓﺎ ﻴﺠﺏ ﺍﻥ ﻴﻜﺘﺏ ﺩﺍﺨل ﺯﻤﺭﻩ ﺍﻭ ﻤﺠﻤﻭﻋﺔ ﺍﻭ ﻓﺼل ﺘﺴﻤﻰ classﻓﻴﻠﺯﻡ ﺍﻭﻻ ﻜﺘﺎﺒﺔ ﻜﻠﻤﺔ classﻭﺒﻌﺩﻫﺎ ﺍﻻﺴﻡ ﺍﻟﺫﻯ ﺴﻴﻌﻁﻰ ﻟﻬﺫﺍ classﻭﻴﻔﻀل ﺩﺍﺌﻤﺎ ﺍﻥ ﻴﻜﻭﻥ ﺍﻭل ﺤﺭﻑ ﻓﻰ ﻫﺫﺍ ﺍﻻﺴﻡ ﻜﺒﻴﺭ capitalﻭﻴﺘﻡ ﺒﻌﺩ ﺫﻟﻙ ﻜﺘﺎﺒﺔ ﺒﺎﻗﻰ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺩﺍﺨل ﺍﻗﻭﺍﺱ ﺍﻟﻔﺌﺔ } { ﺜﺎﻨﻴﺎ ﺒﻌﺩ ﺫﻟﻙ ﺍﻟﺩﺍﻟﺔ ﺍﻻﺴﺎﺴﻴﺔ ﻟﻠﺘﺸﻐﻴل ﻭﻫﻰ mainﻭﻗﺩ ﺘﻡ ﺸﺭﺡ ﺍﻫﻤﻴﺘﻬﺎ ﻓﻰ ﺩﺭﺱ ﺴﺎﺒﻕ ﺜﺎﻟﺜﺎ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﻰ ﻫﻰ ﻤﺤﻭﺭ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻻﻥ ﻜﻤﺎ ﺍﺘﻔﻘﻨﺎ ﻤﻥ ﻗﺒل ﺍﻥ ﺍﻟﺠﺎﻓﺎ ﺘﺘﻜﻭﻥ ﻤﻥ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺤﺯﻡ packageﻭﻴﻭﺠﺩ ﺤﺯﻤﺔ ﺘﺴﺘﺩﻋﻰ ﺫﺍﺘﻴﺎ ﺩﻭﻥ ﺍﻥ ﺘﻘﻭﻡ ﺒﺎﺴﺘﺩﻋﺎﺌﻬﺎ ﺒﺨﻁﻭﻩ ﻓﻰ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻜﻤﺎ ﺴﻨﺘﻌﻠﻡ ﺒﻌﺩ ﺫﻟﻙ ﻫﺫﻩ ﺍﻟﺤﺯﻤﺔ ﻫﻰ java.langﻭﻴﻭﺠﺩ ﺒﺩﺍﺨﻠﻬﺎ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺩﻭﺍل ﺍﻭ ﺍﻟﻁﺭﻕ methodﻭﻤﻨﻬﺎ ﺍﻟﺘﻰ ﺍﺴﺘﺨﺩﻤﻨﻬﺎ ﺍﻻﻥ System.out.printlnﺒﻴﻥ ﺍﻟﻘﻭﺴﻴﻥ ﻜﺘﺒﻨﺎ ﺍﻟﺠﻤﻠﺔ ﺍﻟﻤﺭﺍﺩ ﻁﺒﺎﻋﺘﻬﺎ ﺒﻴﻥ ﻋﻼﻤﺎﺕ ﺘﻨﺼﻴﺹ ﺤﺘﻰ ﺘﻁﺒﻊ ﻜﻤﺎ ﻫﻰ .ﻭ Systemﻫﺫﺍ ﺍﺴﻡ ﺍﻟﻔﺼل classﻟﺫﻟﻙ ﻨﻼﺤﻅ ﺍﻥ ﺍﻭل ﺤﺭﻑ ﻜﺘﺏ ﻜﺒﻴﺭ capitalﻭﺒﺩﺍﺨﻠﻪ methodﺩﺍﻟﻪ ﺍﺴﻤﻬﺎ outﻭﺩﺍﺨﻠﻬﺎ ﺩﺍﻟﻪ ﺍﺨﺭﻯ ﺍﺴﻤﻬﺎ printlnﻭﻤﻥ ﻫﻨﺎ ﻨﻔﻬﻡ ﺍﻥ classﻴﺘﻜﻭﻥ ﻤﻥ ﻋﺩﺩ methodﻭ ﺍل methodﻴﻤﻜﻥ ﺍﻥ ﺘﺘﻜﻭﻥ ﻫﻰ ﺍﻻﺨﺭﻯ ﻤﻥ methodﻭﻓﻰ ﺍﻟﻨﻬﺎﻴﺔ ﺍﻟﺤﺯﻤﺔ ﺍﻭ packageﺘﺘﻜﻭﻥ ﻤﻥ ﻋﺩﺩﺓ class ﻭﺍﻻﻥ ﻨﺤﻥ ﻨﺴﺘﺨﺩﻡ ﺍﻟﺤﺯﻡ ﺍﻟﺘﻰ ﺘﺘﻜﻭﻥ ﻤﻨﻬﺎ ﺍﻟﺠﺎﻓﺎ. ﺒﺎﺨﺘﺼﺎﺭ : ﺍﻟﺤﺯﻤﺔ java.langﺘﺘﻜﻭﻥ ﻤﻥ ﻋﺩﺓ classﻭﻤﻥ ﻫﺫﻩ ﺍلSystem class ﻭﺩﺍﺨل Systemﺘﻭﺠﺩ ﺩﻭﺍل ﻭﻤﻨﻬﺎ out ﻭﺩﺍﺨل ﺍﻟﺩﺍﻟﺔ outﺘﻭﺠﺩ printlnﺍﻟﺘﻰ ﻫﻰ ﺨﺎﺼﺔ ﺒﺎﻟﻁﺒﺎﻋﺔ. ﻭﻻﺘﻨﺴﻰ ﺍﻥ ﺍﻟﺠﻤل ﻭﺍﻟﻌﺒﺎﺭﺍﺕ ﺘﻨﺘﻬﻰ ﺩﺍﺌﻤﺎ ; ﻓﺎﺼﻠﻪ ﻤﻨﻘﻭﻁﻪ
ﺍﻟﺩﺭﺱ ﺍﻟﺭﺍﺒﻊ ﻭﺍﻟﻌﺸﺭﻭﻥ :
ﺍﻻﻋﻼﻥ ﻋﻥ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺘﻌﺎﻟﻰ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻀﻊ ﺍﻨﻭﺍﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ ﺫﻜﺭﻨﺎﻫﺎ ﻭﻨﻌﻠﻥ ﺒﻬﺎ ﻋﻥ ﻤﺘﻐﻴﺭﺍﺕ ﺩﺍﺨل ﺒﺭﻨﺎﻤﺞ ﺒﺎﻟﺠﺎﻓﺎ. ﺍﺫﺍ ﻜﺎﻥ ﻟﺩﻴﻨﺎ ﻤﺘﻐﻴﺭ ﺍﺴﻤﻪ bﻭﻗﻴﻤﺔ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ 5ﻜﻴﻑ ﻴﻤﻜﻥ ﺍﻥ ﻨﻌﻠﻥ ﻋﻨﻪ ﺍﻭﻻ ﻨﻨﻅﺭ ﺍﻟﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺘﻰ ﺴﻴﺸﻴﺭ ﺍﻟﻴﻬﺎ bﻨﺠﺩﻫﺎ ﺭﻗﻡ ﺼﺤﻴﺢ ﻤﻭﺠﺏ ﺼﻐﻴﺭ ﺠﺩﺍ ﺍﺫﻥ ﻴﻜﻭﻥ ﻨﻭﻉ ﺍﻟﻤﺘﻐﻴﺭ bﺍﺤﺩﻯ ﺍﻨﻭﺍﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻻﻋﺩﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ ﻭﻟﻥ ﻨﻔﺽ ﺍﻥ ﻴﻜﻭﻥ byteﻓﻠﻤﺎﺫﺍ ﻓﻀﻠﺕ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻋﻥ ﺒﺎﻗﻰ ﺍﻻﻨﻭﺍﻉ ؟ ﻻﻥ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻴﺸﻴﺭ ﺍﻟﻰ ﻗﻴﻤﺔ ﺼﻐﻴﺭﺓ ﻓﻼ ﺩﺍﻋﻰ ﻟﺘﻌﺭﻴﻑ ﻨﻭﻉ ﻴﺴﺘﻐل ﻤﺴﺎﺤﺔ ﻜﺒﻴﺭﺓ ﻓﻰ ﺍﻟﺫﺍﻜﺭﺓ . ﻭﻟﻠﻼﻋﻼﻥ ﻋﻥ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻴﻜﻭﻥ ﻫﻜﺫﺍ ; byte b = 5
ﺴﻨﻜﺘﺏ ﺍﻻﻥ ﺒﺭﻨﺎﻤﺞ ﻨﻌﻠﻥ ﻓﻴﻪ ﻋﻥ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻭﻨﻁﺒﻌﻪ class DataType { )public static void main(String []arg { ;byte b=5 ;)System.out.println("byte b ="+b
} }
ﻗﻡ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺒﺘﺸﻴﻐل ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﻻﺤﻅ ﺍﻟﻨﺘﻴﺠﺔ !
ﻨﺴﺘﻨﺘﺞ ﺍﻴﻀﺎ ﺍﻨﻪ ﻟﻁﺒﺎﻋﺔ ﺠﻤﻠﻪ ﺒﺠﻭﺍﺭ ﺭﻗﻡ ﻴﺘﻡ ﺍﻟﺭﺒﻁ ﺒﻴﻨﻬﻡ ﺒﻌﻼﻤﺔ ﺯﺍﺌﺩ +ﻭﻫﻭ ﺍﺴﺘﺨﺩﺍﻡ ﻟﻬﺫﻩ ﺍﻻﺸﺎﺭﺓ ﻟﻡ ﻨﺫﻜﺭﻩ ﻤﻥ ﻗﺒل . ﻗﻡ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺒﻌﻤل ﺒﺭﻨﺎﻤﺞ ﺘﻌﻠﻥ ﻓﻴﻪ ﻋﻥ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻻﺘﻴﺔ ﻭﺘﻁﺒﻌﻬﺎ ﻫﺫﺍ ﻜﺘﺩﺭﻴﺏ ﻟﻙ ', c='G
d=105.55
,
L=1000000000
i=10000 ,
s=100 , state=false
ﺍﻟﺩﺭﺱ ﺍﻟﺨﺎﻤﺱ ﻭﺍﻟﻌﺸﺭﻭﻥ : ﻤﺜﺎل ﻋﻠﻰ ﺍﺴﺘﺨﺩﺍﻡ ﻤﺘﺴﻠﺴﻼﺕ ﺍﻟﻬﺭﻭﺏ ﻓﻰ ﻨﻬﺎﻴﺔ ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺒﻕ ﻜﺎﻥ ﻫﻨﺎﻙ ﺘﺩﺭﻴﺏ ﻟﻌﻤل ﺒﺭﻨﺎﻤﺞ ﻟﻠﻼﻋﻼﻥ ﻋﻥ ﻤﺘﻐﻴﺭﺍﺕ ﻭﻁﺒﺎﻋﺘﻬﺎ ', c='G
d=105.55
,
L=1000000000
i=10000 ,
s=100 , state=false
ﺘﻌﺎﻟﻰ ﻋﺯﻴﺯﺉ ﺍﻟﻘﺎﺭﺉ ﻨﻘﻭﻡ ﻤﻌﺎ ﺒﻌﻤل ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺤﻴﺙ ﻴﺘﻡ ﻁﺒﺎﻋﺔ ﻓﻰ ﺍﻟﺴﻁﺭ ﺍﻟﻭﺍﺤﺩ ﻤﺘﻐﻴﺭﺍﻥ ﺒﻴﻨﻬﻡ ﻤﺴﺎﻓﺔ . ﻜﻤﺎ ﺸﺭﺤﻨﺎ ﺴﻴﻜﻭﻥ ﺸﻜل ﺍﻟﺒﺭﻨﺎﻤﺞ ﻫﻜﺫﺍ class DataType { )public static void main(String []arg {
; short s=100 ; int i=10000 ;long L=1000000000 ; float d=105.55f ;'char c='G ;boolean state=false ;)"+"i="+i ;)"+"d="+d ;)"+"state="+state
"System.out.println("s ="+s+ "System.out.println("L ="+L+ "System.out.println("c ="+c+
} }
ﻟﻜﻥ ﻫﻨﺎﻙ ﺘﻜﺭﺍﺭ ﻟﻌﺒﺎﺭﺓ ﺍﻟﻁﺒﺎﻋﺔ ﻭﻴﻤﻜﻥ ﺍﻥ ﺘﻜﻭﻥ ﺍﻟﻤﺴﺎﻓﺎﺕ ﻏﻴﺭ ﻤﺘﺴﺎﻭﻴﺔ ﻓﺘﻌﺎﻟﻰ ﻨﺴﺘﺨﺩﻡ ﻤﺘﺴﻠﺴﻼﺕ ﺍﻟﻬﺭﻭﺏ ﻓﻴﻜﻭﻥ ﺸﻜل ﺍﻟﺒﺭﻨﺎﻤﺞ. class DataType { )public static void main(String []arg {
; short s=100 ; int i=10000 ;long L=1000000000 ; float d=105.55f ;'char c='G ;boolean state=false
"=System.out.println("s="+s+"\t"+"i="+i+"\n"+"L="+L+"\t"+"d="+d+"\n"+"c ;)c+"\t"+"state="+state
} }
ﺭﺍﺠﻊ ﺍﻟﺩﺭﺱ ﺍﻟﻌﺎﺸﺭ ﻭﺴﺘﻜﻭﻥ ﺸﻜل ﺍﻟﻤﺨﺭﺠﺎﺕ ﻫﻜﺫﺍ
ﻻﺤﻅ ﻓﻰ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻋﻨﺩ ﺘﻌﺭﻴﻑ ﺍﻟﻨﻭﻉ floatﺘﻡ ﻭﻀﻊ ﺤﺭﻑ fﺒﻌﺩ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻤﺎ ﻓﻰ ﺤﺎﻟﺔ ﺘﻌﺭﻴﻑ doubleﻻﻴﺘﻡ ﻭﻀﻊ ﺍﻯ ﺤﺭﻭﻑ ﺒﻌﺩ ﺍﻟﻘﻴﻤﺔ ﺍﻻﻥ ﺒﺎﻟﺘﺄﻜﻴﺩ ﺘﻌﺭﻑ ﺍﻫﻤﻴﺔ ﺍﺴﺘﺨﺩﺍﻡ ﻤﺘﺴﻠﺴﻼﺕ ﺍﻟﻬﺭﻭﺏ ﺍﻜﺘﺏ ﺒﺭﻨﺎﻤﺞ ﻭﺍﺴﺘﺨﺩﻡ ﻓﻴﺔ ﺍﻟﻤﺘﺴﻠﺴﻼﺕ ﺍﻻﺨﺭﻯ ﻟﻤﻌﺭﻓﺔ ﺍﻫﻤﻴﺘﻬﺎ .
ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺩﺱ ﻭﺍﻟﻌﺸﺭﻭﻥ : ﻤﺜﺎل ﻋﻠﻰ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﺘﻌﺎﻟﻰ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻘﻭﻡ ﺒﻌﻤل ﺒﺭﻨﺎﻤﺞ ﻴﻭﻀﺢ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﺍﻟﻤﺨﺘﻠﻔﺔ . ﻟﺩﻴﻨﺎ ﻤﺘﻐﻴﺭﺍﻥ a,bﻭﻗﻴﻤﻬﻡ ﻫﻰ b=4 , a=15ﻗﻡ ﺒﻁﺒﺎﻋﺔ ﺍﻟﺘﻌﺒﻴﺭﺍﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻭﻨﺘﻴﺠﺘﻬﺎ class ArithOper { )public static void main(String []arg {
;int a=15 ;int b=4 ;int x,y,z,v,u ;float f,c=4.0f ;x=a+b ;y=a-b ;z=a*b ;v=a/b ;f=a/c ;u=a%b ;)System.out.println("a+b="+x ;)System.out.println("a-b="+y ;)System.out.println("a*b="+z ;)System.out.println("a/b="+v+"\t"+"a/b="+f ;)System.out.println("a%b="+u } } ﻗﻤﻨﺎ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺒﻁﺒﺎﻋﺔ ﻜل ﺘﻌﺒﻴﺭ ﺒﻌﺒﺎﺭﺓ ﺠﺩﻴﺩﺓ ﻟﺘﻭﻀﻴﺢ ﺍﻟﻤﺜﺎل ﻓﻘﻁ .
ﺍﻭﻻ ﺘﻡ ﺍﻻﻋﻼﻥ ﻋﻥ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻭﻨﻼﺤﻅ ﺍﻨﻪ ﻴﻤﻜﻥ ﺍﻻﻋﻼﻥ ﻋﻥ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻤﻥ ﻨﻭﻉ ﻭﺍﺤﺩ ﻓﻰ ﻨﻔﺱ ﺍﻟﺨﻁﻭﺓ . ﺜﺎﻨﻴﺎ ﺘﻡ ﻜﺘﺎﺒﺔ ﺍﻟﺘﻌﺒﻴﺭﺍﺕ ﻭﻨﻼﺤﻅ ﻫﻨﺎ ﺍﻨﻪ ﻴﻜﺘﺏ ﻋﻠﻰ ﺍﻟﻴﺴﺎﺭ ﺍﺴﻡ ﺍﻟﻤﺘﻐﻴﺭ ﻭﻋﻠﻰ ﺍﻟﻴﻤﻴﻥ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺤﺴﺎﺒﻴﺔ ﻭﻨﺎﺘﺞ ﺍﻟﻌﻤﻠﻴﺔ ﻴﻜﻭﻥ ﻫﻭ ﻗﻴﻤﺔ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ . ﺍﺨﻴﺭﺍ ﺘﻡ ﻁﺒﺎﻋﺔ ﺍﻟﻌﻤﻠﻴﺔ ﻭﻨﺎﺘﺠﻬﺎ ﻟﺘﻜﺯﻥ ﺍﻟﻨﺘﻴﺠﺔ ﻋﻠﻰ ﺍﻟﺸﻜل ﺍﻟﺘﺎﻟﻰ:
ﻟﻜﻥ ﻻﺤﻅ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺍﻨﻨﺎ ﻗﻤﻨﺎ ﺒﻌﻤﻠﻴﺔ ﺍﻟﻘﺴﻤﺔ ﻤﺭﺘﻴﻥ ﻭﻫﺫﺍ ﻻﻨﻨﺎ ﺍﺭﺩﻨﺎ ﺘﻭﻀﻴﺢ ﺍﻟﻔﺭﻕ ﺒﻴﻥ ﻗﺴﻤﺔ ﻋﺩﺩ ﺼﺤﻴﺢ ﻋﻠﻰ ﻋﺩﺩ ﺼﺤﻴﺢ ﻭﻋﺩﺩ ﺼﺤﻴﺢ ﻤﻊ ﻋﺩﺩ ﻋﺸﺭﻯ ﻜﻤﺎ ﺘﺭﻯ ﺍﻥ ﻫﻨﺎﻙ ﻓﺭﻕ ﻓﻰ ﺍﻟﻨﺘﻴﺠﺔ ﻓﻌﻨﺩﻤﺎ ﻗﺴﻤﻨﺎ 15/4ﻜﺎﻥ ﺍﻟﻨﺎﺘﺞ 3ﻻﻥ ﺍﻟﻌﺩﺩﻴﻥ ﺼﺤﻴﺤﻴﻥ ﺍﻤﺎ ﻋﻨﺩﻤﺎ ﻗﺴﻤﻨﺎ 15/4.0ﻜﺎﻥ ﺍﻟﻨﺎﺘﺞ 3.75ﻻﻥ ﺍﺤﻰ ﺍﻟﺭﻗﻤﻴﻥ ﻋﺸﺭﻯ .ﺍﻨﺘﺒﻪ ﻋﻨﺩ ﺍﺴﺘﺨﺩﺍﻤﻙ ﻤﺅﺜﺭ ﺍﻟﻘﺴﻤﺔ. ﺘﻌﺎﻟﻰ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﺎﺨﺫ ﻤﺜﺎل ﺍﺨﺭ ﺍﺫﺍ ﻜﺎﻥ ﻟﺩﻴﻙ ﻤﺘﻐﻴﺭﺍﻥ a,bﻭﻗﻴﻤﻬﻡ ﻫﻰ , a=12.5 b=2.5ﻗﻡ ﺒﻁﺒﺎﻋﺔ ﺍﻟﺘﻌﺒﻴﺭﺍﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻭﻨﺘﻴﺠﺘﻬﺎ
class ArithOper1 { )public static void main(String []arg {
;float a=12.5f , b=2.5f ;float x,y,z,v,u ;x=a+b ;y=a-b ;z=a*b ;v=a/b ;u=a%b System.out.println("a+b="+x+"\n"+"a;)b="+y+"\n"+"a*b="+z+"\n"+"a/b="+v+"\n"+"a%b="+u
} } ﻓﻴﻜﻭﻥ ﺍﻟﻨﺎﺘﺞ ﻋﻠﻰ ﺍﻟﺼﻭﺭﺓ
ﻗﻤﻨﺎ ﺒﻭﻀﻊ ﺠﻤﻠﺔ ﻭﺍﺤﺩﺓ ﻟﻠﻁﺒﺎﻋﺔ ﻟﻠﻤﻘﺎﺭﻨﻬﺎ ﺒﻴﻨﻬﺎ ﻭﺒﻴﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺨﻤﺱ ﺠﻤل ﻭﻤﺘﺭﻭﻙ ﻟﻙ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺤﺭﻴﺔ ﺍﻻﺨﺘﻴﺎﺭ ﻓﻰ ﺍﻯ ﻤﻨﻬﻡ ﺘﺴﺘﺨﺩﻡ ﻭﻟﻜﻥ ﺍﻟﻬﺩﻑ ﺍﻥ ﺘﺴﺘﻭﻋﺏ ﺍﻟﻔﻜﺭﺓ . ﻨﻼﺤﻅ ﻓﻰ ﺍﻟﻨﻭﺍﺘﺞ ﺍﻥ ﺠﻤﻴﻌﻬﺎ ﻓﻰ ﺼﻭﺭﺓ ﺭﻗﻡ ﻋﺸﺭﻯ ﻭﺫﻟﻙ ﺤﺴﺏ ﺘﻌﺭﻴﻔﻨﺎ ﻟﻨﻭﺍﻉ ﻫﺫﻩ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻴﻀﺎ ﻨﻼﺤﻅ ﺍﻥ ﻨﺎﺘﺞ ﺒﺎﻗﻰ ﺍﻟﻘﺴﻤﺔ ﺼﻔﺭ ﻭﺫﻟﻙ ﻻﻨﻪ ﻻﻴﻭﺠﺩ ﺒﺎﻗﻰ ﻤﻥ ﻗﺴﻤﺔ ﺍﻟﺭﻗﻤﻴﻥ ﻭﺍﻨﺘﺒﻪ ﺤﺘﻰ ﺍﻟﺼﻔﺭ ﻜﺘﺏ ﻓﻰ ﺼﻭﺭﺓ ﺭﻗﻡ ﻋﺸﺭﻯ. ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺒﻊ ﻭﺍﻟﻌﺸﺭﻭﻥ : ﻤﺜﺎل ﻋﻠﻰ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻻﺤﺎﺩﻴﺔ ﺘﻌﺎﻟﻰ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻘﻭﻡ ﺒﻌﻤل ﺒﺭﻨﺎﻤﺞ ﻴﻭﻀﺢ ﻋﻤل ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻻﺤﺎﺩﻴﺔ . ﺍﺫﺍ ﻜﺎﻥ ﻟﺩﻴﻨﺎ ﻤﺘﻐﻴﺭ i,jﻗﻴﻤﺘﻪ ﻜل ﻤﻨﻬﻤﺎ ﺘﺴﺎﻭﻯ 5 class UnaryOper { )public static void main(String []arg {
;int a,b,i,j ;i=j=5 ;a=i++ * 3 ;b=++j *3 ;)System.out.println("a = "+a+"\n"+"b = "+b
}
} ﻓﻴﻜﻭﻥ ﺸﻜل ﺍﻟﻨﺘﺎﺌﺞ ﻫﻜﺫﺍ
ﻭﺒﺎﻟﺘﺎﻜﻴﺩ ﻜﺎﻨﺕ ﺍﻟﻨﺘﺎﺌﺞ ﻤﺘﻭﻗﻌﺔ ﻤﻥ ﺍﻟﺸﺭﺡ ﺍﻟﺴﺎﺒﻕ ﻟﻌﻤل ﻫﺫﺍ ﺍﻟﻤﺅﺜﺭ ﻟﻜﻥ ﺘﻌﺎﻟﻰ ﻤﻌﻰ ﻨﻭﻀﺢ ﺍﻜﺜﺭ ﻋﻤل ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻻﺤﺎﺩﻴﺔ ﻓﻰ ﻫﺫﺍ ﺍﻟﻤﺜﺎل class UnaryOper1 { )public static void main(String []arg {
;int x1,x2,z=10 ;x1=z-- ;)System.out.println("x1 = "+x1 ;x2=--z ;)System.out.println("x2 = "+x2
} } ﻗﺒل ﻋﺭﺽ ﺍﻟﻨﺘﺎﺌﺞ ﻤﺎﺫﺍ ﺘﺘﻭﻗﻊ ﺍﻥ ﺘﻜﻭﻥ ؟ ﺍﻭﻻ x1ﺤﺴﺏ ﺍﻟﻤﺅﺜﺭ ﺘﻡ ﺍﻨﻘﺎﺹ ﻤﻨﻬﺎ 1ﺍﺫﻥ ﻗﻴﻤﺘﻬﺎ ﺍﺼﺒﺤﺕ 9ﻫﺫﻩ ﺍﺠﺎﺒﻪ ﺨﻁﺄ ﻻﻥ ﻗﻴﻤﺔ zﻓﻰ ﻫﺫﻩ ﺍﻟﺨﻁﻭﺓ ﻻﺯﺍﻟﺕ ﺘﺴﺎﻭﻯ 10ﻭﻻ ﻴﺘﻡ ﺍﻨﻘﺎﺹ ﻤﻨﻬﺎ ﺍﻟﻭﺍﺤﺩ ﺍﻻ ﺒﻌﺩ ﺍﻟﺨﺭﻭﺝ ﻤﻥ ﻫﺫﻩ ﺍﻟﺨﻁﻭﺓ ﻭﺘﺼﺒﺢ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺠﺩﻴﺩ z=9 ﺜﺎﻨﻴﺎ ﻟﺫﻟﻙ x2=8ﻭﻫﺫﻩ ﺍﻻﺠﺎﺒﺔ ﺼﺤﻴﺤﺔ . ﺘﻌﺎﻟﻰ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻌﺭﺽ ﺍﻟﻨﺘﺎﺌﺞ ﻭﻨﺭﻯ
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻤﻥ ﻭﺍﻟﻌﺸﺭﻭﻥ : ﻤﺜﺎل ﻋﻠﻰ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﻌﻼﻗﻴﺔ ﻭﺍﻟﻤﻨﻁﻘﻴﺔ ﺘﻌﺎﻟﻰ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻘﻭﻡ ﺒﻌﻤل ﺒﺭﻨﺎﻤﺞ ﻴﻭﻀﺢ ﻋﻤل ﺍﻟﻤﺅﺜﺭﺍﺕ ﺍﻟﻌﻼﻗﻴﺔ ﻭﺍﻟﻤﻨﻁﻘﻴﺔ . ﺍﺫﺍ ﻜﺎﻥ ﻟﺩﻴﻨﺎ ﻫﺫﻩ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ i,f,cﻭﻗﻴﻤﻬﺎ ' i=7,f=5.5,c='wﻗﻡ ﺒﻌﻤل ﺒﺭﻨﺎﻤﺞ ﻴﻭﺠﺩ ﻨﺘﺎﺌﺞ ﺍﻟﻌﻼﻗﺎﺕ ﺍﻻﺘﻴﺔ : )(i>=6)&&(c==119 )'(i>6)||(c='w )(f<11)&&(i>100 )(c!='p')||((i+f)<=10 ﻗﺒل ﺍﻥ ﻨﻘﻭﻡ ﺒﻌﻤل ﺍﻟﺒﺭﻨﺎﻤﺞ ﺤﺎﻭل ﺍﻥ ﺘﺘﻭﻗﻊ ﺍﻟﻨﺘﺎﺌﺞ class LogOper { )public static void main(String []arg { ;boolean b1,b2,b3,b4 ;int i=7 ;float f=5.5f ;'char c='w ;)b1=(i>=6)&&(c==119 ;)'b2= (i>6)||(c=='w ;)b3=(f<11)&&(i>100 ;)b4=(c!='p')||((i+f)<=10 ;)System.out.println("(i>=6)&&(c==119) is "+b1 ;)System.out.println("(i>6)||(c=='w') is "+b2
;)System.out.println("(f<11)&&(i>100) is "+b3 ;)System.out.println("(c!='p')||((i+f)<=10) is "+b4 } } ﻭﺘﻜﻭﻥ ﻨﺘﻴﺠﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻫﻜﺫﺍ
ﺘﻼﺤﻅ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﺍﻨﻪ ﻓﻰ ﺍﻟﻌﻼﻗﺔ ﺍﻻﻭﻟﻰ ﻜﺎﻨﺕ ﺍﻟﻨﺘﻴﺠﺔ trueﺒﺎﻟﺭﻏﻡ ﻤﻥ ﺍﻥ ' c='wﻨﻌﻡ ﻟﻜﻥ ﺍﺫﺍ ﺘﺫﻜﺭﺕ ﻤﻌﻰ ﺍﻥ wﻴﻤﻜﻥ ﺍﻟﺘﻌﺒﻴﺭ ﻋﻨﻬﺎ ﺒﺎﻟﺭﻗﻡ ﺍﻟﺫﻯ ﻴﻤﺜﻠﻬﺎ ﻓﻰ ﺍﻻﺴﻜﻰ ﻜﻭﺩ ﺘﺠﺩ ﺍﻥ ﺍﻟﻨﺘﻴﺠﺔ ﻫﻨﺎ ﺼﺤﻴﺤﺔ ﻻﻥ ﺍﻟﻌﺎﻤﻠﻴﻥ ﻜل ﻤﻨﻬﻤﺎ ﺼﺤﻴﺢ. ﺍﻟﻌﻼﻗﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻜل ﻤﻥ ﺍﻟﺘﻌﺒﻴﺭﻴﻥ ﺼﺤﻴﺢ ﻭﻋﻠﻴﺔ ﻓﺎﻥ ﺍﻟﻨﺘﻴﺠﺔ trueﻭﻜﺎﻥ ﻴﻜﻔﻰ ﺍﻥ ﻴﻜﻭﻥ ﺍﺤﺩﺍﻫﻤﺎ ﺼﺤﻴﺤﺎ ﻟﻜﻰ ﺘﻜﻭﻥ ﺍﻻﺠﺎﺒﺔ ﺼﺤﻴﺤﺔ ﺘﺫﻜﺭ ﻋﻤل .or ﺍﻟﻌﻼﻗﺔ ﺍﻟﺜﺎﻟﺜﺔ falseﻻﻥ ﺍﻟﻌﺎﻤل ﺍﻟﺜﺎﻨﻰ ﺨﻁﺎ ﻭﻤﻊ andﻟﻜﻰ ﺘﻜﻭﻥ ﺍﻟﻨﺘﻴﺠﺔ ﺼﺤﻴﺤﺔ ﻴﻠﺯﻡ ﺍﻥ ﻴﻜﻭﻥ ﺍﻟﻌﺎﻤﻠﻴﻥ ﺼﺤﻴﺤﺎ ﺍﻟﻌﻼﻗﺔ trueﻻﻥ ﺍﻭل ﻋﺎﻤل ﺼﺤﻴﺢ
ﺍﻟﺩﺭﺱ ﺍﻟﺘﺎﺴﻊ ﻭﺍﻟﻌﺸﺭﻭﻥ : ﻤﺜﺎل ﻋﻠﻰ ﺍﺴﺘﺨﺩﺍﻡ ﻤﺅﺜﺭﺍﺕ ﺍﻟﺘﺤﺩﻴﺩ ﺘﻌﺎﻟﻰ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻘﻭﻡ ﺒﻌﻤل ﺒﺭﻨﺎﻤﺞ ﻴﻭﻀﺢ ﻋﻤل ﻤﺅﺜﺭﺍﺕ ﺍﻟﺘﺤﺩﻴﺩ. ﺍﺫﺍ ﻜﺎﻥ ﻟﺩﻴﻨﺎ ﻫﺫﻩ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ i,j,f,kﻭﻜﺎﻨﺕ ﻗﻴﻤﻬﺎ i=6,j=8,f=6.6,k=-4.25 ﺒﻴﻥ ﺒﺒﺭﻨﺎﻤﺞ ﻨﺘﺎﺌﺞ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻻﺘﻴﺔ: i=i+6 f=f-k )j=j*(i-4 f=f/4 )i=i%(j-2
class AssOper
{ )public static void main(String []arg { ;int i=6,j=8 ;float f=6.5f,k=-4.25f ;))System.out.println("i=i+6 -> i="+(i+=6 System.out.println("f=f-k ;))-> f= "+(f-=k ;)))System.out.println("j=j*(i-4) -> j="+(j*=(i-4 System.out.println("f=f/4 ;))-> f="+(f/=4 ;)))System.out.println("i=i%(j-2) -> i="+(i%=(j-2 } } ﻭﺘﻜﻭﻥ ﻨﺘﻴﺠﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻫﻜﺫﺍ:
ﻤﻥ ﺍﻫﻡ ﺍﻟﻤﻼﺤﻅﺎﺕ ﻓﻰ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻨﻪ ﻋﻨﺩ ﺍﺠﺭﺍﺀ ﻋﻤﻠﻴﺔ ﻋﻠﻰ ﻤﺘﻐﻴﺭ ﺘﻜﻭﻥ ﻗﻴﻤﺘﻪ ﻫﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺠﺩﻴﺩ ﺍﺫﺍ ﻜﺎﻥ ﻗﺩ ﺘﻐﻴﺭﺕ ﻗﻴﻤﺘﻪ . ﺍﻟﺩﺭﺱ ﺍﻟﺜﻼﺜﻭﻥ: ﻋﺒﺎﺭﺓ ﺒﻴﻨﻤﺎ while statement ﻫﻰ ﺍﺤﺩﻯ ﻋﺒﺎﺭﺍﺕ ﺍﻟﺘﺤﻜﻡ ﺍﻟﺘﻰ ﺘﻡ ﺫﻜﺭﻫﺎ ﻓﻰ ﺍﻟﻔﺼل ﺍﻟﺤﺎﺩﻯ ﻭﺍﻟﻌﺸﺭﻭﻥ ﻭﻫﻰ ﻤﻥ ﻋﺒﺎﺭﺍﺕ ﺍﻟﺘﻜﺭﺍﺭ ﻭﺘﺴﺘﺨﺩﻡ ﻓﻰ ﺘﻨﻔﻴﺫ ﻋﺒﺎﺭﺓ ﺍﻭ ﻋﺩﺓ ﻋﺒﺎﺭﺕ ﻋﺩﺩﺍ ﻤﻥ ﺍﻟﻤﺭﺍﺕ ﺍﻟﻤﺘﺘﺎﺒﻌﺔ ﻭﺫﻟﻙ ﺘﺤﺕ ﺸﺭﻁ ﻤﻌﻴﻥ . ﺍﻟﺼﻴﻐﺔ ﺍﻟﻌﺎﻤﺔ : ﻋﺒﺎﺭﺓ )ﺠﻤﻠﺔ ﺸﺭﻁﻴﺔ( while ﻭﺘﻜﻭﻥ ﺒﻬﺫﺍ ﺍﻟﺸﻜل ﻓﻰ ﺤﺎﻟﺔ ﺍﻥ ﺘﻜﻭﻥ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﺼﺤﻴﺤﺔ ﺘﻨﻔﺫ ﻋﺒﺎﺭﺓ ﻭﺍﺤﺩﺓ ﺍﻭ ﺍﻤﺭ ﻭﺍﺤﺩ. )ﺠﻤﻠﺔ ﺸﺭﻁﻴﺔ( while
{ ﻋﺒﺎﺭﺍﺕ } ﻭﺘﻜﻭﻥ ﺒﻬﺫﺍ ﺍﻟﺸﻜل ﻓﻰ ﺤﺎﻟﺔ ﺍﻥ ﺘﻜﻭﻥ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﺼﺤﻴﺤﺔ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻜﺜﺭ ﻤﻥ ﺠﻤﻠﺔ ﺤﻴﺙ ﺍﻨﻪ ﻴﺘﻭﻗﻑ ﺘﻨﻔﻴﺫ ﺍﻟﻌﺒﺎﺭﺍﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ ﺩﺍﺨل ﺍﻟﻘﻭﺴﻴﻥ } { ﻋﻠﻰ ﻨﺘﻴﺠﺔ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﻓﺎﺫﺍ ﻜﺎﻨﺕ ﻨﺘﻴﺠﺘﻬﺎ trueﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻟﻌﺒﺎﺭﺍﺕ ﻭﻴﺘﻜﺭﺭ ﺘﻨﻔﻴﺫ ﺍﻟﻌﺒﺎﺭﺍﺕ ﻤﺎﺩﺍﻤﺕ ﻨﺘﻴﺠﺔ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ true ﻓﺎﺫﺍ ﺘﻐﻴﺭﺕ ﺍﻟﻨﺘﻴﺠﺔ ﺍﻟﻰ flaeﻓﺴﻭﻑ ﺘﻬﻤل ﺍﻟﻌﺒﺎﺭﺍﺕ ﻭﻴﻨﺘﻘل ﺍﻟﺘﺤﻜﻡ ﻟﺘﻨﻔﻴﺫ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺘﻰ ﺘﻠﻰ ﺍﻟﻘﻭﺱ } . ﺘﻌﺎﻟﻰ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻘﻭﻡ ﺒﻌﻤل ﺒﺭﻨﺎﻤﺞ ﺒﺴﻴﻁ ﻟﻁﺒﺎﻋﺔ ﺍﻻﻗﺎﻡ ﻤﻥ 0ﺍﻟﻰ 7
class WhileSt { )public static void main(String []arg {
;int i=0 )while (i<=7 { ;)System.out.println(i ;++i }
} } ﺸﺭﺡ ﺍﻟﺒﺭﻨﺎﻤﺞ : ﺍﻭﻻ ﺘﻡ ﺍﻻﻋﻼﻥ ﻋﻥ ﻤﺘﻐﻴﺭ iﻭﺘﺤﺩﻴﺩ ﻗﻴﻤﺔ ﺍﺒﺘﺩﺍﺌﻴﺔ ﻟﻪ ﺼﻔﺭ ﺜﺎﻨﻴﺎ ﻋﺒﺎﺭﺓ ﺍﻟﺘﻜﺭﺍﺭ whileﺘﻘﻭل ﻤﺎﺩﺍﻤﺕ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ iﺍﻗل ﻤﻥ ﺍﻭ ﺘﺴﺎﻭﻯ 7ﻓﺎﺴﺘﻤﺭ ﻓﻰ ﺘﻨﻔﻴﺫ ﺍﻟﻌﺒﺎﺭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ :ﺍﻟﻌﺒﺎﺭﺓ ﺍﻻﻭﻟﻰ ﺍﻁﺒﻊ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ iﻭﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺜﺎﻨﻴﺔ ﺯﻴﺎﺩﺓ ﺍﻟﻤﺘﻐﻴﺭ iﺒﻤﻘﺩﺍﺭ 1ﻭﻨﻼﺤﻅ ﺍﻥ ﻫﺫﺍﻥ ﺍﻟﻌﺒﺎﺭﺘﺎﻥ ﺘﻡ ﻭﻀﻌﻤﻬﺎ ﺒﻴﻥ } { ﻻﻨﻬﻤﺎ ﺍﻜﺜﺭ ﻤﻥ ﻋﺒﺎﺭﺓ . ﻭﻋﻠﻰ ﻫﺫﺍ ﻴﻜﻭﻥ ﺸﻜل ﺍﻟﻤﺨﺭﺠﺎﺕ :
ﻭﻴﻤﻜﻥ ﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻜﻤﺎ ﻴﻠﻰ class WhileSt1 { )public static void main(String []arg {
;int i=0 )while (i<=7 ;)System.out.println(i++
} } ﻭﻻﺤﻅ ﻫﻨﺎ ﺍﻨﻪ ﺘﻠﻰ ﻋﺒﺎﺭﺕ ﺍﻟﺘﻜﺭﺍﺭ whileﻋﺒﺎﺭﺓ ﻭﺍﺤﺩﻩ ﻓﻘﻁ ﻟﺫﺍ ﻟﻡ ﻨﺴﺘﺨﺩﻡ ﺍﻻﻗﻭﺍﺱ ﻭﻋﻨﺩ ﺘﻨﻔﻴﺫ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺴﺘﻜﻭﻥ ﻨﻔﺱ ﺍﻟﻤﺨﺭﺠﺎﺕ . ﻭﻨﻼﺤﻅ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻓﻰ ﻋﺒﺎﺭﺓ whileﻻ ﻴﻭﺠﺩ ﻓﻰ ﻨﻬﺎﻴﺘﻬﺎ ﺍﻟﻔﺼﻠﺔ ﺍﻟﻤﻨﻘﻭﻁﺔ ﻫﺫﺍ ﻟﻴﺱ ﺨﻁﺄ ﻓﻰ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﻟﻜﻥ ﻫﺫﻩ ﻫﻰ ﺼﻭﺭﺘﻬﺎ .ﻭﻟﻜﻥ ﻤﺎﺫﺍ ﺍﺫﺍ ﻭﻀﻌﻨﺎ ﺒﻌﺩﻫﺎ ﻓﺼﻠﺔ ﻤﻨﻘﻭﻁﺔ ؟! ﺘﻌﺎﻟﻰ ﻨﺠﺭﺏ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺴﻭﻴﺎ class WhileSt2 { )public static void main(String []arg {
;int i=0
;)while (++i<=7 ;)System.out.println(i } } ﻫﻨﺎ ﻓﻰ ﻫﺫﻩ ﺍﻟﺤﺎﻟﺔ ﻤﺎﺩﺍﻡ ﺍﻟﺸﺭﻁ ﻤﺘﺤﻘﻕ ﻻﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻯ ﺸﺊ ﻻﻥ ﺍﻟﻌﺒﺎﺭﺓ ﻤﻨﺘﻬﻴﺔ ﻭﻟﻴﺱ ﻫﻨﺎﻙ ﻋﺒﺎﺭﺕ ﺒﻌﺩ whileﻟﺘﻨﻔﺫ ﻭﻟﻜﻥ ﻫﻨﺎﻙ ﻓﺼﻠﺔ ﻤﻨﻘﻭﻁﺔ ﺍﻯ ﻻﺸﺊ ﻭﻫﻨﺎ ﻴﺯﺩﺍﺩ ﺍﻟﻤﺘﻐﻴﺭ iﺒﻤﻘﺩﺍﺭ 1 ﺤﺘﻰ ﻻﻴﺘﺤﻘﻕ ﺍﻟﺸﺭﻁ ﻭﻓﻰ ﺍﻟﻨﻬﺎﻴﺔ ﻴﻁﺒﻊ ﻗﻴﻤﺔ iﺍﻟﺘﻰ ﺍﺼﺒﺤﺕ 8ﻭﺘﻜﻭﻥ ﺸﻜل ﺍﻟﻤﺨﺭﺠﺎﺕ ﻫﻜﺫﺍ :
ﺍﻟﺩﺭﺱ ﺍﻟﺤﺎﺩﻯ ﻭﺍﻟﺜﻼﺜﻭﻥ: ﻋﺒﺎﺭﺓ ﺒﻴﻨﻤﺎ ﺍﻟﻤﺘﺩﺍﺨﻠﺔ ﻭﺍﻟﻼﻨﻬﺎﺌﻴﺔ ﺘﺴﺘﺨﺩﻡ ﻋﺒﺎﺭﺓ ﺒﻴﻨﻤﺎ ﺍﻟﻤﺘﺩﺍﺨﻠﺔ ﻓﻰ ﺤﺎﻟﺔ ﻭﺠﻭﺩ ﺍﻜﺜﺭ ﻤﻥ ﺤﻠﻘﺔ ﺘﻜﺭﺍﺭ ﻭﺍﺤﺩﺓ ﻭﻋﻨﺩﻤﺎ ﺘﻜﻭﻥ ﻤﺘﺩﺍﺨﻠﻪ ﻴﺘﻡ ﺍﻻﻨﺘﻬﺎﺀ ﺍﻭﻻ ﻤﻥ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺩﺍﺨﻠﻴﺔ ﻟﻤﺭﺓ ﻭﺍﺤﺩ ﻤﻥ ﺘﻜﺭﺍﺭ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺨﺎﺭﺠﻴﺔ ﺜﻡ ﺘﻜﺭﺭ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺩﺍﺨﻠﻴﺔ ﻤﺭﺓ ﺍﺨﺭﻯ ﻭﻫﺫﺍ ﺘﻜﺭﺭ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺩﺍﺨﻠﻴﺔ ﻟﺤﻴﻥ ﺍﻨﺘﻬﺎﺀ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺨﺎﺭﺠﻴﺔ ﻭﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺘﺎﻟﻰ ﻴﻭﻀﺢ ﺍﻟﺸﺭﺡ class WhileSt3 { )public static void main(String []arg {
;int b,a=0 )while (a<=10 { ;b=1 )while(b<=a { ;)"*"( System.out.print ;++b } ;)"System.out.print ("\n ;++a
} } } ﻭﺘﻜﻭﻥ ﺸﻜل ﺍﻟﻤﺨﺭﺠﺎﺕ ﻋﻨﺩ ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ
ﻭﻟﻜﻥ ﻤﺎﺫﺍ ﻴﺤﺩﺙ ﻓﻰ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻓﻰ ﺍﻟﺒﺩﺍﻴﺔ ﺘﻜﻭﻥ ﻗﻴﻤﺔ aﺘﺴﺎﻭﻯ ﺍﻟﺼﻔﺭ ﻭﻴﺒﺩﺍ ﺒﺘﻨﻔﻴﺫ ﺠﻤﻠﺔ whileﺍﻻﻭﻟﻰ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﺼﺤﻴﺤﺔ ﻻﻨﺔ 0<10ﻓﺒﺠﺩ ﺍﻭل ﻋﺒﺎﺭﺓ ﺒﻌﺩ ﺠﻤﻠﺔ while ﺍﻻﻭﻟﻰ ﺍﻥ ﺘﻜﻭﻥ ﻗﻴﻤﺔ b=1ﺜﻡ ﻨﺎﺘﻰ ﺍﻟﻰ ﺠﻤﻠﺔ whileﺍﻟﺜﺎﻨﻴﺔ ﻭﻫﻨﺎ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﻏﻴﺭ ﺼﺤﻴﺤﺔ ﻻﻥ a=0 , b=1ﻓﻼ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﻋﺒﺎﺭﺕ whileﺍﻟﺜﺎﻨﻴﺔ ﺜﻡ ﺒﻌﺩ ﺫﻟﻙ ﻴﺠﺩ ﻋﺒﺎﺭﺓ ﺘﻨﻔﻴﺫﻴﺔ ﻟﻴﻨﺯل ﺴﻁﺭ ﺠﺩﻴﺩ ﺜﻡ ﻴﺯﻴﺩ ﻤﻘﺩﺍﺭ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ aﺍﻟﻰ 1ﻭﻴﻌﻭﺩ ﺍﻟﻰ ﺠﻤﻠﺔ whileﺍﻻﻭﻟﻰ ﻓﻴﺠﺩ ﺍﻟﺸﺭﻁ ﻤﺘﺤﻘﻕ ﻭﺘﻜﻭﻥ ﻗﻴﻤﺔ b=1ﻓﻨﺠﺩ ﺍﻥ ﺸﺭﻁ whileﺍﻟﺜﺎﻨﻴﺔ ﻤﺘﺤﻘﻕ ﻓﻴﺒﺩﺍ ﺒﻁﺒﺎﻋﺔ ﺍﻟﻨﺠﻤﺔ ﻭﻟﻜﻥ ﺍﻟﺠﻤﻠﺔ ﻫﻨﺎ ﺴﺘﺘﻜﺭﺭ ﻤﺭﺓ ﻭﺍﺤﺩﺓ ﻭﻫﻜﺫﺍ ﻴﺘﻡ ﺘﻜﺭﺍﺭ ﺸﻜل ﺍﻟﻨﺠﻤﺔ ﺤﺴﺏ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ a ﺍﻤﺎ ﺍﻟﺘﻜﺭﺍﺭ ﺍﻟﻼﻨﻬﺎﺌﻰ ﻟﻌﺒﺎﺭﺓ ﺒﻴﻨﻤﺎ ﻫﻭ ﺍﻥ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﺍﻟﺨﺎﺼﺔ whileﺘﻜﻭﻥ ﺩﺍﺌﻤﺎ ﺼﺤﻴﺤﺔ ﻓﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻟﻌﺒﺎﺭﺕ ﺍﻟﻰ ﻤﺎﻻ ﻨﻬﺎﻴﻪ . class WhileSt4 { )public static void main(String []arg {
;int a=1 ;int b )while (true { ;b=1 )while(b<=a {
;)System.out.print(a ;++b } ;)"System.out.print("\n ;++a } } }
ﻭﺘﻜﻭﻥ ﺸﻜل ﺍﻟﻤﺨﺭﺠﺎﺕ
ﻭﻟﻠﺨﺭﻭﺝ ﻤﻥ ﻫﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﻼﻨﻬﺎﺌﻴﺔ ﺍﻀﻐﻁ ﻤﻔﺘﺎﺤﻰ ctrl+c
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻨﻰ ﻭﺍﻟﺜﻼﺜﻭﻥ : ﻋﺒﺎﺭﺓ ﺍﻋﻤل ﺒﻴﻨﻤﺎ do while ﻓﻰ ﻋﺒﺎﺭﺓ whileﻴﺘﻡ ﺍﺨﺘﺒﺎﺭ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﺍﻭﻻ ﻗﺒل ﺍﻟﺩﺨﻭل ﻓﻰ ﺘﻨﻔﻴﺫ ﻋﺒﺎﺭﺍﺕ ﺍﻟﻤﻭﺠﻭﺩﻩ ﺒﻌﺩ whileﻭﻴﺘﻡ ﺍﺨﺘﺒﺎﺭﻫﺎ ﻜل ﺩﻭﺭﻩ ﻭﻟﻜﻥ ﻓﻰ do-whileﻓﺎﻥ ﺍﻻﺨﺘﺒﺎﺭ ﻴﺘﻡ ﻓﻰ ﻨﻬﺎﻴﺔ ﺍﻟﺘﻜﺭﺍﺭ. ﻭﺘﻜﻭﻥ ﺍﻟﺼﻴﻐﺔ ﺍﻟﻌﺎﻤﺔ ﻫﻰ
Do { ﺍﻟﻌﺒﺎﺭﺍﺕ } ;)ﺠﻤﻠﺔ ﺸﺭﻁﻴﺔ(while ﻻﺤﻅ ﻫﻨﺎ ﺍﻨﻪ ﺘﻡ ﻭﻀﻊ ﻓﺎﺼﻠﺔ ﻤﻨﻘﻭﻁﺔ ﺒﻌﺩ while ﺘﻌﺎﻟﻰ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺉ ﻨﻘﻭﻡ ﺒﺘﻨﻔﻴﺫ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻟﻨﻌﺭﻑ ﺍﻟﻔﺭﻕ class DoWhileSt4 { )public static void main(String []arg {
;int i=0 do { ;)"System.out.println("HI ;++i } ;)while(i>7 } } ﻗﺒل ﻋﺭﺽ ﺍﻟﻨﺘﺎﺌﺞ ﺘﻌﺎﻟﻰ ﻨﺴﺘﻨﺘﺠﻬﺎ ﺍﻭﻻ ﻫﻨﺎ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﺒﻌﺩ whileﻏﻴﺭ ﻤﺘﺤﻘﻘﺔ ﺍﺫﺍ ﺍﻟﻤﻔﺭﻭﺽ ﻋﺩﻡ ﺘﻨﻔﻴﺫ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ ﺩﺍﺨل ﻗﻭﺴﻰ ﺍﻟﻤﺠﻤﻭﻋﺔ ﺘﻌﺎﻟﻰ ﻨﺭﻯ ﺍﻟﻨﺘﺎﺌﺞ
ﻭﻟﻜﻥ ﻤﺎﺤﺩﺙ ﻏﻴﺭ ﺍﻟﻤﺘﻭﻗﻊ ﻟﻘﺩ ﻨﻔﺫ ﺍﻟﻌﺒﺎﺭﻩ ﻤﺭﻩ ﻭﺍﺤﺩﺓ ﻨﻌﻡ ﻫﺫﺍ ﺼﺤﻴﺢ ﺤﺴﺏ ﺍﻟﺸﺭﺡ ﻓﺎﻥ ﻋﺒﺎﺭﺓ ﺍﻋﻤل ﺒﻴﻨﻤﺎ ﻴﻨﻔﺫ ﺍﻟﻌﺒﺎﺭﺍﺕ ﺍﻭﻻ ﺜﻡ ﻴﺨﺘﺒﺭ ﺍﻟﺸﺭﻁ . ﻴﻌﻨﻰ ﺒﺎﺨﺘﺼﺎﺭ ﺍﻟﻔﺭﻕ ﺒﻴﻥ while,do-whileﺍﻨﻪ ﻓﻰ whileﺍﺫﺍ ﻜﺎﻥ ﺍﻟﺸﺭﻁ ﻏﻴﺭ ﻤﺘﺤﻘﻕ ﻻ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻟﻌﺒﺎﺭﺕ ﻨﻬﺎﺌﻴﺎ ﺍﻤﺎ do-whileﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻟﻌﺒﺎﺭﺕ ﻋﻠﻰ ﺍﻻﻗل ﻤﺭﺓ ﻭﺍﺤﺩﺓ. ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻟﺙ ﻭﺍﻟﺜﻼﺜﻭﻥ :
ﻋﺒﺎﺭﺓ ﻻﺠل for statement ﻫﻰ ﺍﺤﺩﻯ ﻋﺒﺎﺭﺍﺕ ﺍﻟﺘﺤﻜﻡ ﻭﺭﺒﻤﺎ ﺘﻜﻭﻥ ﺍﻜﺜﺭﻫﺎ ﺍﺴﺘﺨﺩﺍﻤﺎ ﻭﻫﻰ ﺘﺴﺘﺨﺩﻡ ﻻﺩﺍﺀ ﻋﻤﻠﻴﺔ ﻤﺎ ﻋﺩﺓ ﻤﺭﺍﺕ ﻤﺘﺘﺎﺒﻌﺔ ﻭﻴﻌﺘﻤﺩ ﺘﻨﻔﻴﺫ ﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭ ﻋﻠﻰ ﻋﺩﺍﺩ ﻴﻀﺒﻁ ﻋﻠﻰ ﻗﻴﻤﺔ ﺍﺒﺘﺩﺍﺌﻴﺔ ﻤﻌﻴﻨﺔ ﻭﺘﺯﺩﺍﺩ ﻗﻴﻤﺘﻪ ﺒﺨﻁﻭﺓ ﻤﻌﻠﻭﻤﺔ ﺒﻌﺩ ﻜل ﺘﻜﺭﺍﺭ ﺤﺘﻰ ﺘﺼل ﺍﻟﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻨﻬﺎﺌﻴﺔ . ﻭﺘﻜﻭﻥ ﺼﻴﻐﺘﻬﻰﺍﻟﻌﺎﻤﺔ )for(ex1;ex2;ex3 { ﺍﻟﻌﺒﺎﺭﺍﺕ } ex1ﺍﻟﺘﻌﺒﻴﺭ ﺍﻟﺫﻯ ﻴﺤﺩﺩ ﺍﻟﻘﻴﻤﺔ ﺍﻻﺒﺘﺩﺍﺌﻴﺔ ﻟﻤﺘﻐﻴﺭ ﻴﻜﻭﻥ ﺒﻤﺜﺎﺒﺔ ﻋﺩﺍﺩ ﻴﺘﺤﻜﻡ ﻓﻰ ﺍﺠﺭﺍﺀ ﺍﻟﺩﻭﺭﺓ ﻭﻋﺎﺩﺓ ﻤﺎ ﻴﻜﻭﻥ ﻫﺫﺍ ﻫﻭ ﺘﻌﺒﻴﺭ ﺍﻟﺘﺤﺩﻴﺩ ﺍﻟﺫﻯ ﻴﺤﺩﺩ ﺒﺩﺍﻴﺔ ﺍﻟﻌﺩﺍﺩ ex2ﻴﻤﺜل ﺍﻟﺸﺭﻁ ﺍﻟﺫﻯ ﻴﺤﺩﺩ ﺍﺴﺘﻤﺭﺍﺭ ﺍﻟﺩﻭﺭﺓ ﻤﻥ ﻋﺩﻤﻪ ﻭﺫﻟﻙ ﺘﺒﻌﺎ ﻟﻨﺘﻴﺠﺔ ﺍﺨﺘﺒﺎﺭ ﺍﻟﺸﺭﻁ ﺒﻤﻌﻨﻰ ﺍﻥ ﻫﺫﺍ ﺍﻟﺘﻌﺒﻴﺭ ﻫﻭ ﺍﻟﺫﻯ ﻴﺤﺩﺩ ﻨﻬﺎﻴﺔ ﺍﻟﻌﺩﺍﺩ ﻭﻋﺎﺩﺓ ﻤﺎ ﻴﻜﻭﻥ ﺘﻌﺒﻴﺭﺍ ﻤﻨﻁﻘﻴﺎ ex3ﻫﻭ ﺍﻟﺘﻌﺒﻴﺭ ﺍﻟﺫﻯ ﻴﺤﺩﺩ ﺍﻟﺯﻴﺎﺩﺓ ﺍﻭ ﺍﻟﻨﻘﺼﺎﻥ ﻓﻰ ﺩﻟﻴل ﺍﻟﺩﻭﺭﺓ ﻭﺫﻟﻙ ﻓﻰ ﻨﻬﺎﻴﺔ ﻜل ﺘﻜﺭﺍﺭ ﻭﻋﺎﺩﺓ ﻤﺎ ﻴﻜﻭﻥ ﺘﻌﺒﻴﺭﺍ ﺍﺤﺎﺩﻴﺎ ﺍﻭ ﺘﻌﺒﻴﺭ ﺘﺤﺩﻴﺩ . ﻭﻨﺠﺩ ﺍﻥ forﻻﺘﺨﺘﻠﻑ ﻜﺜﻴﺭﺍ ﻋﻥ whileﻓﺎﻨﻅﺭ ﺍﻟﻰ ﻋﺒﺎﺭﺓ while ; ex1 )while(ex2 { ﺍﻟﻌﺒﺎﺭﺍﺕ ;ex3 } ﺘﻌﺎﻟﻰ ﺍﻻﻥ ﻋﺯﻴﺯﻯ ﺍﻟﻘﺎﺭﺉ ﻨﻭﻀﺢ ﺸﺭﺤﻨﺎ ﺒﻤﺜﺎل ﻋﻤﻠﻰ ﻴﻘﻭﻡ ﺒﻁﺒﺎﻋﺔ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺭﻗﻡ ﺍﻟﻌﺩﺍﺩ ﻓﻰ forﻻﻴﺠﺎﺩ ﺤﺎﺼل ﻀﺭﺒﻪ ﻓﻰ 10,100,1000 class ForSt { )public static void main(String []arg { ;int i )for(i=0;i<=10;++i { ;))System.out.println(i+"\t"+(i*10)+"\t"+(i*100)+"\t"+(i*1000 } } } ﻗﻤﻨﺎ ﻫﻨﺎ ﺍﻭﻻ ﺒﺎﻻﻋﻼﻥ ﻋﻥ ﺍﻟﻤﺘﻐﻴﺭ iﻭﺒﻌﺩ ﺫﻟﻙ ﺠﺎﺀﺕ ﺠﻤﻠﺔ forﻭﺍﻟﺘﻰ ﻓﻴﻬﺎ ﺴﺘﻜﻭﻥ ﺍﻟﻘﻴﻤﺔ ﺍﻻﺒﺘﺩﺍﺌﻴﺔ ﻟﻠﻤﺘﻐﻴﺭ iﺼﻔﺭ ﺒﻌﺩ ﺫﻟﻙ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ i<=10ﻭﻫﻰ ﺘﺨﺘﺒﺭ ﻗﻴﻤﺔ iﻓﺎﺫﺍ ﻜﺎﻨﺕ ﺍﻗل ﻤﻥ 10ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﻋﺒﺎﺭﺍﺕ forﻭﺍﺨﻴﺭﺍ ﻤﻘﺩﺍﺭ ﺍﻟﺯﻴﺎﺩﺓ ﺍﻟﺤﺎﺼل ﻟﻠﻤﺘﻐﻴﺭ iﻭﻫﻭ ﺯﻴﺎﺩﺓ ﺒﻤﻘﺩﺍﺭ ﻭﺍﺤﺩ
ﻭﻫﻨﺎ ﻓﻰ ﺤﺎﻟﺔ ﻤﺎ ﺍﺫﺍ ﻜﺎﻥ ﺍﻟﺸﺭﻁ ﺼﺤﻴﺢ ﻴﺘﻡ ﻀﺭﺏ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ iﻓﻰ 10ﻭ100ﻭ1000 ﻭﻁﺒﺎﻋﺔ ﺍﻟﻨﺎﺘﺞ ﻭﺘﻜﻭﻥ ﺍﻟﻤﺨﺭﺠﺎﺕ ﻋﻠﻰ ﻫﺫﺍ ﺍﻟﺸﻜل