Professional Documents
Culture Documents
ﻴﻬﺩﻑ ﻫﺫﺍ ﺍﻟﻤﻘﺭﺭ ﺇﻟﻰ ﺍﻟﺘﻌﺭﻴﻑ ﺒﺎﻟﺒﺭﻤﺠﺔ ﺍﻟﻐﺭﻀﻴﺔ ﺍﻟﺘﻭﺠﻪ ﻭﺘﻘﺎﻨﺎﺘﻬﺎ ﺍﻷﺴﺎﺴﻴﺔ ،ﻭﻤﺴﺎﻋﺩﺓ ﺍﻟﻁﺎﻟﺏ
ﻟﻠﻭﺼﻭل ﺒﻪ ﺇﻟﻰ ﻜﺘﺎﺒﺔ ﺨﻭﺍﺭﺯﻤﻴﺎﺕ ﺒﻠﻐﺔ ﻏﺭﻀﻴﺔ ﺍﻟﺘﻭﺠﻪ ،ﻭﺴﻨﺴﺘﺨﺩﻡ ﻟﻐﺔ C++ﻜﺄﺩﺍﺓ ﻟﻬﺫﺍ ﺍﻟﻐﺭﺽ.
ﺍﻟﻤﻔﺭﺩﺍﺕ ﺍﻷﺴﺎﺴﻴﺔ
-1ﻤﺩﺨل ﺇﻟﻰ ﻤﻔﻬﻭﻡ ﺍﻟﻐﺭﺽ
-4ﺒﻨﺎﺀ ﺍﻟﺼﻔﻭﻑ
-5ﺍﻟﺒﻭﺍﻨﻲ ﻭﺍﻟﻬﻭﺍﺩﻡ
-7ﺘﺭﻜﻴﺏ ﺍﻷﻏﺭﺍﺽ
-9ﺍﻟﻭﺭﺍﺜﺔ
-10ﺘﻌﺩﺩ ﺍﻷﺸﻜﺎل
ﻭﺒﺎﻟﻁﺒﻊ ﺘﺘﺭﺠﻡ ﻫﺫﻩ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺇﻟﻰ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻷﺸﻜﺎل ﻓﻲ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻭﺘﺸﺘﻕ ﻤﻨﻬﺎ
ﺘﻌﻠﻴﻤﺎﺕ ﺃﺨﺭﻯ ﺘﺴﺎﻋﺩ ﻋﻠﻰ ﻜﺘﺎﺒﺔ ﺃﻓﻀل ﻟﻠﺭﻤﺎﺯ ﺍﻟﺒﺭﻤﺠﻲ.
ﻟﻭ ﻁﻠﺏ ﻤﻨﻙ ﺃﻥ ﺘﻜﺘﺏ ﺒﺭﻨﺎﻤﺠﹰﺎ ﻹﺩﺍﺭﺓ ﺍﻟﻤﺭﻭﺭ ﻟﺘﺨﺯﻴﻥ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺤﻭل ﺍﻟﺴﻴﺎﺭﺍﺕ ﺍﻟﺘﻲ ﻴﻤﻠﻜﻬﺎ
ﺍﻟﻤﻭﺍﻁﻨﻭﻥ ،ﻓﻤﺎﺫﺍ ﺴﺘﻔﻌل؟ ﻜﻴﻑ ﺘﺨﺯﻥ ﻤﻌﻠﻭﻤﺎﺘﻙ ﻋﻥ "ﺴﻴﺎﺭﺓ"؟
ﺃﻻ ﺘﺘﻤﻨﻰ ﻋﻨﺩﻤﺎ ﺘﻜﺘﺏ ﺒﺭﻨﺎﻤﺠﹰﺎ ﻴﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺴﻴﺎﺭﺍﺕ ﻓﻲ ﺇﺩﺍﺭﺓ ﺍﻟﻤﺭﻭﺭ ﻟﻭ ﺃﻨﻙ ﺘﺴﺘﻁﻴﻊ ﺃﻥ ﺘﻌﺭﻑ
ﻻ ﻤﻥ ﺍﻟﻨﻤﻁ "ﺴﻴﺎﺭﺓ" ﻋﻠﻰ ﻏﺭﺍﺭ ﺘﻌﺭﻴﻑ ﻤﺘﺤﻭل ﻤﻥ ﺍﻟﻨﻤﻁ ﻋﺩﺩ ﺼﺤﻴﺢ؟
ﻤﺘﺤﻭ ﹰ
;int i
;car c
ﺃﻻ ﺘﺘﻤﻨﻰ ﻋﻨﺩﻤﺎ ﺘﻜﺘﺏ ﺒﺭﻨﺎﻤﺠﹰﺎ ﻴﺭﺴﻡ ﺍﻟﺩﻭﺍﺌﺭ ﻭﺍﻟﺨﻁﻭﻁ ﻟﻭ ﺃﻨﻙ ﺘﺴﺘﻁﻴﻊ ﺃﻥ ﺘﻌﺭﻑ ﻤﺘﺤﻭﻻﺕ ﻤﻥ
ﺍﻟﻨﻤﻁ "ﺩﺍﺌﺭﺓ" ﻭ"ﺨﻁ" ﻋﻠﻰ ﻏﺭﺍﺭ ﺘﻌﺭﻴﻑ ﻤﺘﺤﻭل ﻤﻥ ﺍﻟﻨﻤﻁ ﻋﺩﺩ ﺼﺤﻴﺢ؟
;int i
;Circle c
;Line l
ﻭﻟﻜﻥ ﻜﻴﻑ ﻴﻤﻜﻥ ﻟﻠﻐﺔ ﺒﺭﻤﺠﺔ ﺃﻥ ﺘﺤﺘﻭﻱ ﻋﻠﻰ ﺠﻤﻴﻊ ﺍﻷﻨﻤﺎﻁ ﺍﻟﺘﻲ ﻴﻤﻜﻥ ﺃﻥ ﺘﺨﻁﺭ ﻓﻲ ﺒﺎل
ﺍﻟﻤﺒﺭﻤﺠﻴﻥ ﻓﻲ ﺍﻟﻌﺎﻟﻡ ﻓﻲ ﻜل ﺯﻤﺎﻥ ﻭﻤﻜﺎﻥ ،ﻭﺃﻥ ﻴﻜﻭﻥ ﺘﻌﺭﻴﻑ ﺍﻟﻨﻤﻁ ﻤﻁﺎﺒﻘﹰﺎ ﻟﺤﺎﺠﺔ ﺍﻟﻤﺒﺭﻤﺞ ﻓﻲ
ﻤﺴﺄﻟﺔ ﻤﺎ؟
ﻻﺒﺩ ﺃﻨﻙ ﺘﺩﺭﻙ ﺃﻥ ﻫﺫﻩ ﺍﻟﻤﻬﻤﺔ ﻤﺴﺘﺤﻴﻠﺔ ،ﻭﻟﻜﻥ ﻻ ﺘﻭﺠﺩ ﻤﺸﻜﻠﺔ ﺩﻭﻥ ﺤل.
ﺯﻭﺩﺕ ﺒﻌﺽ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﺒﺂﻟﻴﺔ ﺘﺴﻤﺢ ﻟﻠﻤﺒﺭﻤﺞ ﺃﻥ ﻴﻌﺭﻑ ﻨﻤﻁﹰﺎ ﺠﺩﻴﺩﹰﺍ ﻟﻡ ﻴﺴﺒﻕ ﻟﻪ ﻭﺠﻭﺩ ﻓﻲ ﺍﻟﻠﻐﺔ
ﺒﺤﻴﺙ ﻴﺼﻑ ﻋﻨﺩ ﺍﻟﺘﻌﺭﻴﻑ ﺨﺼﺎﺌﺹ ﻫﺫﺍ ﺍﻟﻨﻤﻁ ﺍﻟﺠﺩﻴﺩ ﻭﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺘﻲ ﻴﺭﻏﺏ ﺒﺎﻻﺤﺘﻔﺎﻅ ﺒﻬﺎ
ﻋﻨﻪ ،ﻭﻴﻌﻁﻲ ﺍﻟﻤﺒﺭﻤﺞ ﻟﻬﺫﺍ ﺍﻟﻨﻤﻁ ﺍﻟﺠﺩﻴﺩ ﺍﺴﻤﹰﺎ ﻴﺨﺘﺎﺭﻩ ،ﻓﻴﺼﺒﺢ ﻟﺩﻴﻪ ﻓﻲ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺎﻟﺫﺍﺕ ﻨﻤﻁ ﹰﺎ
ﺠﺩﻴﺩﹰﺍ ﻴﺴﺘﺨﺩﻤﻪ ﻋﻠﻰ ﻨﺤﻭ ﺸﺒﻴﻪ ﺒﺎﻷﻨﻤﺎﻁ ﻤﺴﺒﻘﺔ ﺍﻟﺘﻌﺭﻴﻑ ﻓﻲ ﺍﻟﻠﻐﺔ.
ﻭﻫﻜﺫﺍ ﻴﻤﻜﻥ ﻟﻠﻤﺒﺭﻤﺞ ﺘﻌﺭﻴﻑ ﺃﻨﻤﺎﻁ ﻋﺩﺓ ﻓﻲ ﺒﺭﺍﻤﺠﻪ ﺩﻭﻥ ﺃﻥ ﺘﺤﺩ ﺍﻟﻠﻐﺔ ﻤﻥ ﺇﻤﻜﺎﻨﺎﺘﻪ ،ﻭﻴﺴﺘﺨﺩﻤﻬﺎ
ﺍﺴﺘﺨﺩﺍﻤ ﹰﺎ ﻤﺸﺎﺒﻬﹰﺎ ﻟﻸﻨﻤﺎﻁ ﺍﻟﻌﺩﺩﻴﺔ ﻭﺍﻟﻤﺤﺭﻓﻴﺔ ﺍﻟﺘﻲ ﻴﻌﺭﻓﻬﺎ ،ﻓﻼ ﺘﻘﻑ ﺍﻟﻠﻐﺔ ﻋﺎﺌﻘ ﹰﺎ ﺃﻤﺎﻡ ﺇﺒﺩﺍﻋﻪ
ﻭﺤﺎﺠﺎﺘﻪ.
ﻭﻟﻌل ﺃﺸﻬﺭ ﺁﻟﻴﺔ ﺯﻭﺩﺕ ﺒﻬﺎ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﻫﻲ ﺁﻟﻴﺔ ﺍﻟﺼﻔﻭﻑ ﻭﺍﻷﻏﺭﺍﺽ ،ﻭﺍﻟﺘﻲ ﻓﺘﺤﺕ ﺍﻟﺒﺎﺏ ﻋﻠﻰ
ﻤﺼﺭﺍﻋﻴﻪ ﺃﻤﺎﻡ ﻤﻨﺤﻰ ﺠﺩﻴﺩ ﻤﻥ ﺍﻟﺒﺭﻤﺠﺔ ﺴﻤﻲ "ﺍﻟﺒﺭﻤﺠﺔ ﺍﻟﻐﺭﻀﻴﺔ ﺍﻟﺘﻭﺠﻪ" ﻭﻫﻲ ﻤﺎﺴﻨﺘﻨﺎﻭﻟﻪ
ﺒﺎﻟﺘﻔﺼﻴل ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻘﺭﺭ.