Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

‫ﺗﻢ ﺗﺤﻤﻴﻞ اﻟﻤﻠﻒ ﻣﻦ ﻣﻮﻗﻊ‬

‫اﻟﺒﻮﺻﻠﺔ اﻟﺘﻘﻨﻴﺔ‬
‫‪www.boosla.com‬‬
‫ﺒﺴﻡ ﺍﷲ ﺍﻟﺭﺤﻤﻥ ﺍﻟﺭﺤﻴﻡ‬

‫• ﺍﻹﺘﻔﺎﻗﻴﺔ‪:‬‬
‫ﻟﻘﺩ ﻜﺘﺒﺕ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻟﻐﺭﺽ ﺘﺜﻘﻴﻑ ﺍﻟﺸﺒﺎﺏ ﺍﻟﻌﺭﺒﻲ ﻓﻲ ﻤﺠﺎل ﻋﻠﻭﻡ ﺍﻟﺤﺎﺴﺏ‬
‫ﺍﻵﻟﻲ‪ .‬ﻭﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻤﺠﺎﻨﻲ ﻟﻠﺠﻤﻴﻊ ﻭﻻ ﺃﺭﻴﺩ ﻤﻥ ﻭﺭﺍﺌﻪ ﺇﻻ ﺸﻲﺀ ﺒﺴﻴﻁ ﺠﺩﹰﺍ ﻭﻫﻭ‬
‫ﺩﻋﻭﺓ ﺼﺎﻟﺤﺔ ﻓﻲ ﻅﻬﺭ ﺍﻟﻐﻴﺏ ﻟﻲ ﻭﻟﺠﻤﻴﻊ ﺃﺨﻭﺍﻨﻨﺎ ﺍﻟﻤﺴﻠﻤﻴﻥ ﻓﻲ ﺃﻨﺤﺎﺀ ﺍﻟﻌﺎﻟﻡ‪.‬ﻜﻤﺎ‬
‫ﺃﺭﺠﻭﺍ ﺃﻥ ﻻ ﻴﺘﻡ ﺍﻟﺘﻌﺩﻴل ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻭﺇﻨﺴﺎﺒﻪ ﺇﻟﻰ ﻏﻴﺭﻱ ﻷﻨﻲ ﻗﺩ ﺘﻌﺒﺕ ﻓﻴﻪ‬
‫ﻜﺜﻴﺭﹰﺍ‪ .‬ﻜﻤﺎ ﺃﻨﻨﻲ ﺃﺅﺅﻜﺩ ﺃﻨﻨﻲ ﺃﺭﺤﺏ ﻭﺒﻜل ﺴﻌﺔ ﺼﺩﺭ ﺒﺎﻟﻨﻘﺩ ﺍﻟﺒﻨﺎﺀ ﺍﻟﺫﻱ ﻴﺴﺘﻔﻴﺩ‬
‫ﻤﻨﻪ ﺍﻟﺠﻤﻴﻊ‪ .‬ﻜﻤﺎ ﺃﻨﻪ ﺇﺫﺍ ﻭﺠﺩﺕ ﻋﺯﻴﺯﻱ ﺍﻟﻘﺎﺭﺉ ﺃﻱ ﺃﺨﻁﺎﺀ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻴﺭﺠﻰ‬
‫ﺃﺨﺒﺎﺭﻱ ﺒﻬﺎ ﻭﺴﻴﺘﻡ ﻭﻀﻊ ﺃﺴﻤﻙ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻤﻊ ﺍﻟﺘﻌﺩﻴل‪ .‬ﻜﻤﺎ ﺃﻨﻲ ﺃﺭﺤﺏ ﺃﻥ‬
‫ﻴﺸﺘﺭﻙ ﻤﻌﻲ ﺃﻱ ﺸﺨﺹ ﻹﻀﺎﻓﺔ ﺍﻟﻤﺯﻴﺩ ﻤﻥ ﺍﻟﺩﺭﻭﺱ ﻟﻬﺫﺍ ﺍﻟﻤﻠﻑ ﻭﺴﻴﺘﻡ ﻭﻀﻊ‬
‫ﺃﺴﻤﻪ ﺃﻴﻀﹰﺎ ﻭﺫﻟﻙ ﺤﺘﻰ ﻴﻜﻭﻥ ﻫﻨﺎﻙ ﻤﺭﺠﻊ ﻋﺭﺒﻲ ﻟﻠﻐﺔ ﺍﻟﺴﻲ‪.‬‬

‫• ﻤﺎﺫﺍ ﺘﺤﺘﺎﺝ ﻗﺒل ﺃﻥ ﺘﺒﺩﺃ ﻓﻲ ﺘﻌﻠﻡ ﺍﻟﺒﺭﻤﺠﺔ ﺒﻠﻐﺔ ﺍﻟﺴﻲ‪:‬‬


‫ﻗﺒل ﺃﻥ ﺘﺒﺩﺃ ﻓﻲ ﺍﻟﺘﻌﻠﻡ ﻻﺒﺩ ﻤﻥ ﺘﻭﻓﺭ ﺸﻲﺀ ﻤﻬﻡ ﺠﺩﹰﺍ ﻭﻫﻭ ﻤﺎ ﻴﺴﻤﻰ ﺒﺎﻟﻤﻔﺴﺭ )‬
‫‪ (compiler‬ﻭﻫﻭ ﻟﻜﻲ ﻴﺘﻡ ﺘﺤﻭﻴل ﺍﻟﻜﻭﺩ ﺍﻟﺫﻱ ﺴﻴﺘﻡ ﻜﺘﺎﺒﺘﻪ ﺇﻟﻰ ﺒﺭﺍﻤﺞ ﺘﻁﺒﻴﻘﻴﺔ‬
‫ﻟﻜﻲ ﻴﺘﺴﻨﻰ ﻟﻙ ﺘﺸﻐﻴﻠﻬﺎ‪.‬ﻟﻤﺴﺘﺨﺩﻤﻲ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﻭﻴﻨﺩﻭﺯ ﺘﺴﺘﻁﻴﻊ ﺃﻥ ﺘﺤﺼل‬
‫)‬ ‫ﺍﻟ ﺘ ﺎﻟ ﻲ‬ ‫ﺍﻟﻤﻭﻗﻊ‬ ‫ﻤﻥ‬ ‫ﺍﻟﻤﻔﺴﺭ‬ ‫ﻫﺫﺍ‬ ‫ﻋ ﻠﻰ‬
‫‪ftp://ftp.digitalmars.com/Digital_Mars_C++/Patch/dm8‬‬
‫‪ (29c.zip‬ﻭﻁﺭﻴﻘﺔ ﺘﻨﺼﻴﺏ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻫﻭ ﺒﻌﺩ ﺘﻨﺯﻴل ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻤﻥ‬
‫ﺍﻟﻌﻨﻭﺍﻥ ﺍﻟﺴﺎﺒﻕ ﻓﻙ ﻀﻐﻁ ﺍﻟﻤﻠﻑ ﻋﻠﻰ ﺍﻟﻘﺭﺹ )‪ (c‬ﺒﻌﺩ ﻓﻙ ﺍﻟﻀﻐﻁ ﺴﺘﺠﺩ ﺃﻨﻪ ﻗﺩ‬
‫ﺘﻡ ﻭﻀﻊ ﺍﻟﻤﺠﻠﺩ )‪ (dm‬ﻋﻠﻰ ﻗﺭﺼﻙ ﺍﻟﺼﻠﺏ ﺃﺩﺨل ﻫﺫﺍ ﺍﻟﻤﺠﻠﺩ ﺴﺘﺠﺩ ﻋﺩﺩ ﻤﻥ‬
‫ﺍﻟﻤﺠﻠﺩﺍﺕ ﺃﺩﺨل ﺍﻟﻤﺠﻠﺩ ﺍﻟﻤﺴﻤﻰ ﺏ )‪ (bin‬ﻭﻫﺫﺍ ﺍﻟﻤﺠﻠﺩ ﻫﻭ ﺍﻟﻤﺠﻠﺩ ﺍﻟﺫﻱ ﻴﺤﺘﻭﻱ‬
‫ﻋﻠﻰ ﺍﻟﻤﻔﺴﺭ ﻭﻟﻜﻥ ﻗﺒل ﺃﻥ ﺘﻌﻤل ﻤﻊ ﻫﺫﺍ ﺍﻟﻤﻔﺴﺭ ﻴﻨﺒﻐﻲ ﻋﻠﻴﻙ ﺃﻥ ﺘﻀﻴﻑ ﺍﻟﺴﻁﺭ‬
‫)‪ (PATH=c:\dm\bin‬ﺇﻟﻰ ﺍﻟﻤﻠﻑ )‪ (sc.ini‬ﻭﻫﺫﺍ ﺍﻟﺴﻁﺭ ﻴﻀﺎﻑ ﺇﻟﻰ ﺃﺨﺭ‬
‫ﺍﻟﻤﻠﻑ‪ .‬ﺒﻌﺩ ﺫﻟﻙ ﺃﻜﺘﺏ ﻜﻭﺩ ﻟﻐﺔ ﺍﻟﺴﻲ ﻓﻲ ﺒﺭﻨﺎﻤﺞ ﺍﻟﺘﺤﺭﻴﺭ ﺍﻟﺫﻱ ﻴﻨﺎﺴﺒﻙ ﻭﻟﻴﻜﻥ‬
‫ﻼ ﺍﻟﻤﻔﻜﺭﺓ ‪ .‬ﻭﺒﻌﺩ ﺍﻹﻨﺘﻬﺎﺀ ﻤﻥ ﻜﺘﺎﺒﺔ ﺍﻟﻜﻭﺩ ﻴﻨﺒﻐﻲ ﻋﻠﻴﻙ ﺃﻥ ﺘﺤﻔﻅ ﺍﻟﻤﻠﻑ ﻋﻠﻰ‬ ‫ﻤﺜ ﹰ‬
‫ﺍﻟﺼﻭﺭﺓ )‪ (filename.c‬ﻻﺤﻅ ﺃﻥ ﺍﻤﺘﺩﺍﺩ ﺍﻟﻤﻠﻑ ﻫﻭ )‪ (.c‬ﻻﺤﻅ ﺍﻟﺸﻜل ﺍﻟﺘﺎﻟﻲ‪:‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫ﺒﻌﺩ ﺫﻟﻙ ﺸﻐل ﻤﻭﺠﻪ ﺍﻟﺩﻭﺱ ﻭﺍﻜﺘﺏ ﻫﺫﻩ ﺍﻷﻭﺍﻤﺭ ‪:‬‬
‫‪C:\>cd dm‬‬
‫‪C:\dm>cd bin‬‬
‫‪C:\dm\bin>sc hello.c‬‬
‫ﻻ ﺤﻅ ﺃﻥ ﺍﻟﺫﻱ ﻴﺠﺏ ﺃﻥ ﺘﻜﺘﺒﻪ ﻓﻘﻁ ﻫﻭ ﺍﻟﺫﻱ ﺒﺎﻟﻠﻭﻥ ﺍﻷﺤﻤﺭ‪.‬ﻓﻲ ﺃﺨﺭ ﺨﻁﻭﺓ‬
‫ﻭﻓﻲ ﺍﻟﺴﻁﺭ )‪ (sc hello.c‬ﻫﻨﺎ ﺘﻡ ﺇﺴﺘﺩﻋﺎﺀ ﺍﻟﻤﻔﺴﺭ ﻭﻴﺠﺏ ﺃﻥ ﺘﺘﺒﻊ ﺃﺴﻡ ﺍﻟﻤﻔﺴﺭ‬
‫ﺒﺎﺴﻡ ﺍﻟﻤﻠﻑ ﻭﺍﻟﺫﻱ ﻫﻨﺎ ﺍﺴﻤﻪ ﻫﻭ )‪.(hello.c‬ﺒﻌﺩ ﺫﻟﻙ ﺴﺘﺠﺩ ﺃﻥ ﻓﻲ ﻨﻔﺱ ﺍﻟﻤﺠﻠﺩ‬
‫)‪ (bin‬ﻅﻬﺭ ﻤﻠﻑ ﺘﻁﺒﻴﻘﻲ ﺒﺎﻻﺴﻡ )‪ (hello‬ﻭﻴﻤﻜﻥ ﺃﻥ ﻴﺘﻐﻴﺭ ﺍﻻﺴﻡ ﺇﻟﻰ ﺍﻻﺴﻡ‬
‫ﺍﻟﺫﻱ ﺤﻔﻅﺕ ﺒﻪ ﺍﻟﻤﻠﻑ ﺒﻌﺩ ﺫﻟﻙ ﺸﻐل ﺍﻟﻤﻠﻑ ﻭﺃﻨﺕ ﻓﻲ ﺒﺭﻨﺎﻤﺞ ﺍﻟﺩﻭﺱ ﻤﻥ ﺨﻼل‬
‫ﻜﺘﺎﺒﺔ ﺍﺴﻡ ﺍﻟﻤﻠﻑ ﻋﻨﺩ ﻤﺤﺙ ﺍﻻﻭﺍﻤﺭ ﻤﺜل ‪:‬‬
‫‪C:\dm\bin>hello‬‬
‫ﺒﻌﺩ ﺘﻨﻔﻴﺫ ﻫﺫﺍ ﺍﻷﻤﺭ ﺴﻭﻑ ﻴﻅﻬﺭ ﻟﻙ ﺨﺭﺝ ﺍﻟﺒﺭﻨﺎﻤﺞ‪ .‬ﻭﻫﻜﺫﺍ ﻨﻜﻭﻥ ﻗﺩ ﺍﻨﺘﻬﻴﻨﺎ ﻤﻥ‬
‫ﻁﺭﻴﻘﺔ ﺘﻨﺼﻴﺏ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ‪ .‬ﻤﻊ ﺇﻨﻲ ﺃﻓﻀل ﻭﺒﺸﺩﺓ ﺍﻟﻤﻔﺴﺭ ﻤﻥ ﺸﺭﻜﺔ ﺒﻭﺭﻻﻨﺩ‬
‫) ‪ (Borland C++ 5.5‬ﻭﻟﻜﻥ ﻟﻜﺒﺭ ﺤﺠﻤﻪ ﻓﺈﻨﻲ ﻟﻡ ﺃﺤﻤﻠﻪ ﻋﻠﻰ ﺠﻬﺎﺯﻱ ﻭﺫﻟﻙ‬
‫ﻷﻨﻲ ﺍﺴﺘﺨﺩﻡ ﺍﻟﻤﻔﺴﺭ ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﻠﻴﻭﻨﻜﺱ‪ .‬ﻭﻤﻥ ﻴﺭﻴﺩ ﺃﻥ ﻴﺴﺘﻌﻴﻥ ﺒﻤﻔﺴﺭ‬
‫ﺁﺨﺭ ﻓﺴﻴﺠﺩ ﺍﻟﻌﺩﻴﺩ ﻤﻨﻬﺎ ﻋﻠﻰ ﺍﻻﻨﺘﺭﻨﺕ ﺇﻥ ﺒﺤﺙ‪.‬‬
‫ﺃﻤﺎ ﺇﺫﺍ ﻜﻨﺕ ﻤﻥ ﺍﻟﻤﺤﺒﻴﻥ ﻷﻨﻅﻤﺔ ﺍﻟﺘﺸﻐﻴل )‪ (*.nix‬ﻓﺈﻨﻪ ﻴﻭﺠﺩ ﻓﻲ ﻨﻔﺱ ﺍﻟﻨﻅﺎﻡ‬
‫ﻤﻔﺴﺭ ﻟﻠﻐﺔ ﺍﻟﺴﻲ ﺩﻭﻥ ﺍﻟﺤﺎﺠﺔ ﻟﺘﺤﻤﻴل ﺃﻱ ﻤﻔﺴﺭ‪.‬ﺃﺨﺭ ﻭﻜل ﻤﺎ ﻋﻠﻴﻙ ﻋﻤﻠﻪ ﻫﻭ‬
‫ﻼ )‪ (vi‬ﺃﻭ )‬‫ﻜﺘﺎﺒﺔ ﺍﻟﻜﻭﺩ ﻓﻲ ﺃﻱ ﻤﺤﺭﺭ ﻨﺼﻭﺹ ﻓﻲ ﻨﻅﺎﻡ ﺍﻟﻠﻴﻨﻭﻜﺱ ﻭﻟﻴﻜﻥ ﻤﺜ ﹰ‬
‫‪(pico‬ﺃﻭ ﺃﻱ ﻨﻭﻉ ﻤﻥ ﺍﻟﻤﺤﺭﺍﺭﺍﺕ ﺘﻔﻀل‪ .‬ﺜﻡ ﺘﺭﺠﻤﺔ ﺍﻟﻤﻠﻑ ﻤﻥ ﺨﻼل ﺍﻷﻤﺭ‬
‫ﺍﻟ ﺘ ﺎ ﻟ ﻲ‪:‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫‪[one@localhost one]$ gcc –o filename filename.c‬‬
‫‪[one@localhost one]$ ./filename‬‬
‫ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻫﻭ ﺇﺴﺘﺩﻋﺎﺀ ﻟﻠﻤﻔﺴﺭ ﻤﻥ ﺨﻼل ﺍﻷﻤﺭ )‪ (gcc‬ﻓﺈﺫﺍ ﻜﺎﻥ ﺍﻟﻜﻭﺩ‬
‫ﺍﻟﺫﻱ ﻗﻤﺕ ﺒﻜﺘﺎﺒﺘﻪ ﺨﺎﻟﻴﹰﺎ ﻤﻥ ﺍﻷﺨﻁﺎﺀ ﻓﻠﻥ ﺘﻅﻬﺭ ﻟﻙ ﺃﻱ ﺭﺴﺎﻟﺔ ﻭﺃﻤﺎ ﺇﻥ ﻜﺎﻥ‬
‫ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﺃﺨﻁﺎﺀ ﻓﺴﺘﻅﻬﺭ ﻟﻙ ﺍﻷﺨﻁﺎﺀ ﺍﻟﺘﻲ ﻓﻲ ﺍﻟﻜﻭﺩ ﻓﻴﺠﺏ ﻋﻠﻴﻙ ﺃﺼﻼﺤﻬﺎ‬
‫ﻻ ﺜﻡ ﺇﻋﺎﺩﺓ ﺘﺭﺠﻤﺔ ﺍﻟﻤﻠﻑ ﻤﻥ ﺨﻼل ﻨﻔﺱ ﺍﻷﻤﺭ‪ .‬ﻭﺒﻌﺩ ﺫﻟﻙ ﺘﺴﺘﻁﻴﻊ ﺘﺸﻐﻴل‬ ‫ﺃﻭ ﹰ‬
‫ﺍﻟﺒﺭﻨﺎﻤﺞ ﻤﻥ ﺨﻼل ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻨﻲ‪.‬‬

‫• ﺃﻭل ﺒﺭﻨﺎﻤﺞ ﻟﻙ ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ‪:‬‬


‫ﻻﺤﻅ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺘﺎﻟﻲ ﻭﺍﻟﺫﻱ ﺒﺈﺫﻥ ﺍﷲ ﺇﻥ ﻜﺘﺒﺘﻪ ﻤﺜل ﻤﺎﻫﻭ ﻋﻠﻴﻪ ﻓﺈﻨﻪ ﺴﻴﻌﻤل‬
‫ﺒﺸﻜل ﺠﻴﺩ ﺠﺩﹰﺍ‪.‬‬
‫>‪#include <stdio.h‬‬
‫)( ‪main‬‬
‫{‬
‫;)”‪printf(“Welcome To The World Of C‬‬
‫;‪return 0‬‬
‫}‬
‫ﻴﻌﺘﺒﺭ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﻤﻥ ﺃﺴﻬل ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﺫﻱ ﺘﻜﺘﺏ ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ ﺤﻴﺙ ﺃﻨﻬﺎ‬
‫ﺘﻁﺒﻊ ﺠﻤﻠﺔ ﻭﺍﺤﺩﺓ ﻓﻘﻁ ‪.‬ﻭﺒﻌﺩ ﺘﻨﻔﻴﺫ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺴﻭﻑ ﻴﻜﻭﻥ ﺨﺭﺝ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ‬
‫ﻫﻭ )‪.(Welcome To World Of C‬‬
‫ﻭﺇﻟﻴﻙ ﺸﺭﺡ ﺍﻟﻜﻭﺩ ﺍﻟﺴﺎﺒﻕ‪:‬‬
‫‪ (#include <stdio.h>) .١‬ﻭﻫﻭ ﺇﺴﺘﺩﻋﺎﺀ ﻟﻤﻠﻑ ﺍﻟﺘﺭﻭﻴﺴﺔ ) ‪header‬‬
‫‪ . (file‬ﺤﻴﺙ ﺃﻥ ﻤﻠﻑ ﺍﻟﻬﻴﺩﺭ ﺍﺴﻤﻪ ﻫﻨﺎ ﻫﻭ )‪ (stdio.h‬ﺃﻤﺎ ﺍﻟﻜﻠﻤﺔ )‬
‫‪ (include‬ﻓﻬﻲ ﺘﺴﺘﺨﺩﻡ ﻟﻌﻠﻤﻴﺔ ﺇﺴﺘﺩﻋﺎﺀ ﻤﻠﻑ ﺍﻟﺘﺭﻭﻴﺴﺔ‪ .‬ﻭﻤﻠﻑ ﺍﻟﺘﺭﻭﻴﺴﺔ‬
‫ﻻﺒﺩ ﻤﻥ ﺫﻜﺭﻩ ﺤﻴﺙ ﺃﻥ ﺠﻤﻴﻊ ﺍﻟﺩﻭﺍل ﺍﻟﺫﻱ ﺴﻭﻑ ﻴﺘﻡ ﺇﺴﺘﺨﺩﺍﻤﻬﺎ ﻓﻲ‬
‫ﺒﺭﻨﺎﻤﺠﻙ ﻻ ﺒﺩ ﻤﻥ ﺫﻜﺭ ﻤﻠﻔﺎﺕ ﺍﻟﺘﺭﻭﻴﺴﺔ ﺍﻟﺘﻲ ﺘﻨﺘﻤﻲ ﺇﻟﻴﻬﺎ ﻫﺫﻩ ﺍﻟﺩﺍﻟﺔ‪ .‬ﺤﻴﺙ‬
‫ﺃﻨﻪ ﺇﺫﺍ ﻟﻡ ﺘﺴﺘﺩﻋﻲ ﻤﻠﻔﺎﺕ ﺍﻟﺘﺭﻭﻴﺴﺔ ﻭﺇﺴﺘﺨﺩﻤﺕ ﺩﻭﺍل ﻟﺘﻘﻭﻡ ﺒﺄﻋﻤﺎل ﻤﻌﻴﻨﺔ‬
‫ﻓﺈﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻻ ﻴﻤﻜﻥ ﺃﻥ ﻴﻌﻤل ﻭﺫﻟﻙ ﻷﻥ ﺍﻟﺩﺍﻟﺔ ﺍﻟﺘﻲ ﺇﺴﺘﺩﻋﻴﺘﻬﺎ ﻻ ﻭﺠﻭﺩ ﻟﻬﺎ‬
‫ﺇﻻ ﻓﻲ ﻤﻠﻑ ﺍﻟﺘﺭﻭﻴﺴﺔ ﺍﻟﺨﺎﺹ ﺒﻬﺎ ﻭﺃﻨﺕ ﻟﻡ ﺘﻘﻡ ﺒﺈﺴﺘﺩﻋﺎﺌﻪ‪ .‬ﻭﻴﻭﺠﺩ ﻫﻨﺎﻙ‬
‫ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﻤﻠﻔﺎﺕ ﺍﻟﺘﺭﺍﻭﻴﺱ ﻤﻨﻬﺎ ‪:‬‬
‫• )‪ :(math.h‬ﻭﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﺠﻤﻴﻊ ﺍﻟﺩﻭﺍل ﺍﻟﺭﻴﺎﻀﻴﺔ ﺍﻟﺘﻲ ﻤﻥ‬
‫ﺨﻼﻟﻬﺎ ﻴﻤﻜﻥ ﺍﻟﻘﻴﺎﻡ ﺒﺎﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ‪.‬‬
‫• )‪:(time.h‬ﻭﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﺩﻭﺍل ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﻭﻗﺕ‪.‬‬
‫• )‪ :(string.h‬ﻭﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻟﻠﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺴﻼﺴل ﺍﻟﺤﺭﻓﻴﺔ ‪.‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫ﻻ ﻨﻅﺭﹰﺍ ﻟﻜﻭﻨﻪ ﻻ ﻴﺨﻠﻭ ﺒﺭﻨﺎﻤﺞ‬‫• )‪ :(stdio.h‬ﻭﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻴﻌﺘﺒﺭ ﺍﻷﻜﺜﺭ ﺇﺴﺘﻌﻤﺎ ﹰ‬
‫ﻤﻥ ﻁﺒﺎﻋﺔ ﺸﻲﺀ ﻤﺎ ﺇﻟﻰ ﺍﻟﺸﺎﺸﺔ ﺃﻭ ﺃﺨﺫ ﻤﻌﻁﻴﺎﺕ ﻤﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ‪.‬‬
‫ﻭﻴﻭﺠﺩ ﻫﻨﺎﻙ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﻫﺫﻩ ﺍﻟﻤﻠﻔﺎﺕ‪.‬‬
‫‪ :(main ()) .٢‬ﻭﻫﺫﺍ ﺍﻟﺠﺯﺀ ﻤﻬﻡ ﺠﺩﹰﺍ ﻭﻻ ﻴﻤﻜﻥ ﺍﻹﺴﺘﻐﻨﺎﺀ ﻋﻨﻬﺎ ﻓﻲ ﺃﻱ‬
‫ﺒﺭﻨﺎﻤﺞ ﻟﻠﻐﺔ ﺍﻟﺴﻲ ﻭﻫﻲ ﺍﻟﺩﺍﻟﺔ ﺍﻟﺭﺌﻴﺴﺔ ﻟﻠﺒﺭﻨﺎﻤﺞ ﻭﺴﻭﻑ ﻴﺘﻡ ﻤﻨﺎﻗﺸﺔ ﺍﻟﺩﻭﺍل‬
‫ﻓﻴﻤﺎ ﺒﻌﺩ‪.‬‬
‫‪ .٣‬ﺍﻟﻌﻼﻤﺔ ){( ﻭﻫﻲ ﺘﻌﻨﻲ ﺃﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﺒﺩﺃ ﻤﻥ ﺒﻌﺩ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﻭﻴﻨﺘﻬﻲ ﻋﻨﺩ‬
‫ﺤﺎﺼﺭﺓ ﺍﻷﻏﻼﻕ )}( ‪.‬‬
‫‪ :(printf(“Welcome To The World Of C”);) .٤‬ﻭﻫﺫﺍ ﺍﻟﺠﺯﺀ ﻫﻭ‬
‫ﺍﻟﺫﻱ ﻴﺘﻭﻟﻰ ﻁﺒﺎﻋﺔ ﺍﻟﻤﺨﺭﺠﺎﺕ ﻋﻠﻰ ﺍﻟﺸﺎﺸﺔ ﺤﻴﺙ ﺃﻥ ﺍﻟﺩﺍﻟﺔ )‪ (printf‬ﻫﻲ‬
‫ﺍﻟﺩﺍﻟﺔ ﺍﻟﺭﺌﻴﺴﺔ ﻟﻁﺒﺎﻋﺔ ﺸﻲﺀ ﻤﺎ ﻋﻠﻰ ﺸﺎﺸﺔ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻭﻋﻨﺩ ﺇﺴﺘﺨﺩﺍﻤﻬﺎ ﻻ ﺒﺩ‬
‫ﻤﻥ ﺇﺴﺘﺩﻋﺎﺀ ﻤﻠﻑ ﺍﻟﻬﻴﺩﺭ )‪ . (stdio.h‬ﺃﻡ ﺍﻟﻜﻼﻡ ﺍﻟﻤﺤﺼﻭﺭ ﺒﻴﻥ ﻋﻼﻤﺘﻲ‬
‫ﺍﻟﺘﻨﺼﻴﺹ ﻓﻬﻭ ﺍﻟﻜﻼﻡ ﺍﻟﺫﻱ ﺴﻭﻑ ﻴﺘﻡ ﻁﺒﺎﻋﺘﻪ ﻋﻠﻰ ﺍﻟﺸﺎﺸﺔ‪ .‬ﺃﻤﺎ ﺍﻟﻔﺎﺼﻠﺔ‬
‫ﺍﻟﻤﻨﻘﻭﻁﺔ ﻓﻲ ﻨﻬﺎﻴﺔ ﺍﻟﺴﻁﺭ ﻓﻼﺒﺩ ﻤﻥ ﺫﻜﺭﻫﺎ ﺤﻴﺙ ﺃﻨﻪ ﻋﻨﺩ ﻋﺩﻡ ﺫﻜﺭﻫﺎ ﺴﻭﻑ‬
‫ﻴﻌﻁﻴﻙ ﺍﻟﻤﻔﺴﺭ ﺭﺴﺎﻟﺔ ﺨﻁﺄ‪ .‬ﻭﺍﻟﻔﺎﺌﺩﺓ ﻤﻥ ﺍﻟﻔﺎﺼﻠﺔ ﺍﻟﻤﻨﻘﻭﻁﺔ ﺃﻨﻬﺎ ﺘﻌﻁﻲ ﺇﺸﺎﺭﺓ‬
‫ﻟﻠﻤﻔﺴﺭ ﺃﻨﻪ ﻗﺩ ﺘﻡ ﺍﻹﻨﺘﻬﺎﺀ ﻤﻥ ﻫﺫﺍ ﺍﻟﺴﻁﺭ ﻭﻴﺠﺏ ﺍﻹﻨﺘﻘﺎل ﻟﻠﺴﻁﺭ ﺍﻟﺫﻱ‬
‫ﻴﻠﻴﻪ‪.‬ﻭﻫﻲ ﻜﻤﺎ ﻗﻠﻨﺎ ﻻ ﺒﺩ ﺃﻥ ﺘﻜﺘﺏ ﺤﻴﺙ ﺃﻥ ﺃﻏﻠﺏ ﺍﻷﺨﻁﺎﺀ ﺘﻜﻭﻥ ﻤﻨﻬﺎ‪.‬‬
‫‪ :(return 0;) .٥‬ﻭﻫﻲ ﺘﻌﻨﻲ ﺃﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺴﻭﻑ ﻴﺭﺠﻊ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺼﻔﺭﻴﺔ ﻟﻠﺩﺍﻟﺔ‬
‫)‪ (main‬ﺤﻴﺙ ﺃﻥ ﺍﻟﺩﻭﺍل ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ ﻴﺠﺏ ﺃﻥ ﺘﻌﻭﺩ ﻟﻬﺎ ﺒﻘﻴﻤﺔ ﺇﻻ ﺇﺫﺍ‬
‫ﻜﺎﻨﺕ ﻫﺫﻩ ﺍﻟﺩﺍﻟﺔ ﻻ ﺘﻘﺒل ﺒﺈﻋﺎﺩﺓ ﻗﻴﻤﺔ ﻤﺎ ﻭﺴﻴﺘﻡ ﺸﺭﺡ ﺍﻟﺩﻭﺍل ﺒﺈﺫﻥ ﺍﷲ ﻓﻲ ﻫﺫﺍ‬
‫ﺍﻟﻤﻠﻑ‪.‬‬

‫ﺒﻌﺽ ﺍﻟﺸﺭﻭﻁ ﺍﻟﻼﺯﻤﺔ ﻋﻨﺩ ﻜﺘﺎﺒﺔ ﺃﻱ ﺒﺭﻨﺎﻤﺞ ﺒﻠﻐﺔ ﺍﻟﺴﻲ‪:‬‬ ‫•‬


‫ﻻﺒﺩ ﺃﻥ ﻴﺒﺩﺃ ﺃﻱ ﺒﺭﻨﺎﻤﺞ ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ ﺒﺈﺴﺘﺩﻋﺎﺀ ﻤﻠﻑ ﺍﻟﻬﻴﺩﺭ ﺤﻴﺙ ﺃﻨﻙ ﻻ‬ ‫•‬
‫ﺘﺴﺘﻁﻴﻊ ﺃﻥ ﺃﻥ ﺘﺴﺘﻌﻤل ﺍﻟﺩﻭﺍل ﻓﻲ ﺒﺭﻨﺎﻤﺠﻙ ﺇﻻ ﺒﻌﺩ ﺇﺴﺘﺩﻋﺎﺀ ﻤﻠﻑ ﺍﻟﻬﻴﺩﺭ‬
‫ﺍﻟﺨﺎﺹ ﺒﻬﺎ‪ .‬ﻭﻤﺜﺎل ﻋﻠﻰ ﺫﻟﻙ ﻟﻭ ﺇﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺩﺍﻟﺔ ))(‪ (printf‬ﺩﻭﻥ ﺇﺴﺘﺩﻋﺎﺀ‬
‫ﻤﻠﻑ ﺍﻟﻬﻴﺩﺭ )‪ (stdio.h‬ﻓﺈﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺴﻭﻑ ﻴﻌﻁﻲ ﺭﺴﺎﻟﺔ ﺨﻁﺄ‪.‬‬
‫ﻻ ﺒﺩ ﻤﻥ ﺫﻜﺭ ﺍﻟﺩﺍﻟﺔ ))( ‪ (main‬ﻓﻲ ﺠﻤﻴﻊ ﺍﻟﺒﺭﺍﻤﺞ‪.‬‬ ‫•‬
‫ﻻ ﺒﺩ ﺃﻥ ﻴﻨﺘﻬﻲ ﻜل ﺴﻁﺭ ﻓﻲ ﺠﺴﻡ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﻔﺎﺼﻠﺔ ﻤﻨﻘﻭﻁﺔ ﻭﻨﻌﻨﻲ ﺒﺠﺴﻡ‬ ‫•‬
‫ﺍﻟﺒﺭﻨﺎﻤﺞ ﻫﻭ ﺍﻟﺠﺯﺀ ﺍﻟﻤﺤﺼﻭﺭ ﺒﻴﻥ ﺍﻟﻌﻼﻤﺘﻴﻥ )} {(‪.‬‬

‫• ﺇﺴﺘﺨﺩﺍﻡ ﺍﻟﻌﻼﻤﺔ )‪ (\n‬ﻟﻺﻨﺘﻘﺎل ﺇﻟﻰ ﺴﻁﺭ ﺠﺩﻴﺩ‪:‬‬


‫ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﻟﻜﻲ ﺘﻨﻘل ﺍﻟﻤﺅﺸﺭ ﻤﻥ ﺍﻟﺴﻁﺭ ﺍﻟﺤﺎﻟﻲ ﺇﻟﻰ ﺍﻟﺴﻁﺭ ﺍﻟﺫﻱ ﻴﻠﻴﺔ‬
‫ﻭﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻴﺒﻴﻥ ﻁﺭﻴﻘﺔ ﻋﻤﻠﻬﺎ ‪:‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫>‪#include <stdio.h‬‬
‫)( ‪main‬‬
‫{‬
‫‪printf(“welcome to the world of c\nI hope you enjoy‬‬
‫;)”‪with it. \n‬‬
‫;‪return 0‬‬
‫}‬
‫ﺒﻌﺩ ﺘﻨﻔﻴﺫ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺴﻭﻑ ﻴﻜﻭﻥ ﺨﺭﺝ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻜﻤﺎ ﻴﻠﻲ‪:‬‬
‫‪Welcome to the world Of c‬‬
‫‪I hope you enjoy with it.‬‬
‫ﻻﺤﻅ ﺃﻨﻪ ﻤﻥ ﺃﻥ ﺍﻟﻜﻭﺩ ﺍﻟﺴﺎﺒﻕ ﻜﺎﻨﺕ ﺍﻟﺠﻤﻠﺔ ﻓﻲ ﺴﻁﺭ ﻭﺍﺤﺩ ﺇﻻ ﺃﻥ ﺒﻌﺩ ﺘﻨﻔﻴﺫ‬
‫ﺍﻟﺒﺭﻨﺎﻤﺞ ﺃﺼﺒﺢ ﺍﻟﺨﺭﺝ ﻓﻲ ﺴﻁﺭﻴﻥ ﻭﺫﻟﻙ ﻹﺴﺘﺨﺩﺍﻤﻨﺎ ﺍﻟﻌﻼﻤﺔ )‪ . (\n‬ﻭﻤﻥ‬
‫ﺍﻟﻤﻤﻜﻥ ﺃﻥ ﻨﺴﺘﺨﺩﻡ ﺃﻜﺜﺭ ﻤﻥ ﻋﻼﻤﺔ ﺴﻁﺭ ﺠﺩﻴﺩ ﻤﺜل )‪ (\n\n\n‬ﺃﻱ ﻋﺩﺩ‬
‫ﺍﻟﺴﻁﻭﺭ ﺍﻟﺫﻱ ﺘﺭﻴﺩ ﺍﻟﻤﺅﺸﺭ ﺃﻥ ﻴﺘﺨﻁﺎﻫﺎ‪.‬ﻭﺃﻴﻀﺎ ﻴﻤﻜﻥ ﺃﻥ ﺘﻀﻊ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﻓﻲ‬
‫ﻨﻬﺎﻴﺔ ﺍﻟﻨﺹ ﻤﺜل ‪:‬‬
‫;)”‪Printf(“welcome to the world of c \n‬‬
‫ﺃﻭ ﺤﺘﻰ ﻓﻲ ﺒﺩﺍﻴﺔ ﺍﻟﻨﺹ ﻤﺜل‬
‫;)“ ‪Printf(“\n welcome to the world of c‬‬
‫ﻭﻴﻭﺠﺩ ﻫﻨﺎﻙ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺎﺕ ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ ﻭﻫﻲ ﺘﺴﻤﻰ ﺒﺤﺎﻻﺕ‬
‫ﺍﻟﻬﺭﻭﺏ )‪) (escape sequences‬ﺍﻟﺤﻘﻴﻘﺔ ﻻ ﺃﻋﺭﻑ ﻟﻬﺎ ﺘﺭﺠﻤﺔ ﺤﺭﻓﻴﺔ(‬
‫ﻭﺍﻟﺠﺩﻭل ﺍﻟﺘﺎﻟﻲ ﻴﺒﻴﻥ ﻫﺫﻩ ﺍﻟﺤﺎﻻﺕ‪:‬‬
‫ﺍﻟﻐﺭﺽ ﻤﻨﻪ‬ ‫ﺍﻟﺭﻤﺯ‬
‫ﺘﻨﻘل ﺍﻟﻤﺅﺸﺭ ﺇﻟﻰ ﺴﻁﺭ ﺠﺩﻴﺩ‪.‬‬ ‫‪\n‬‬
‫ﺇﻋﻁﺎﺀ ﺠﺭﺱ ﺘﻨﺒﻴﻪ )‪(beeb alert‬‬ ‫‪\a‬‬
‫ﺤﺎﻭل ﺃﻥ ﺘﺴﺘﺒﺩل ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﻤﻊ‬
‫ﻋﻼﻤﺔ ﺍﻹﻨﺘﻘﺎل ﺇﻟﻰ ﺍﻟﺴﻁﺭ ﺍﻟﺠﺩﻴﺩ ﻓﻲ‬
‫ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺤﺘﻰ ﻴﺘﻀﺢ ﻟﻙ ﻋﻤﻠﻬﺎ‪.‬‬
‫ﺘﻨﻘل ﺍﻟﻤﺅﺸﺭ ﺤﺭﻑ ﻭﺍﺤﺩ ﺇﻟﻰ ﺍﻟﺨﻠﻑ‬ ‫‪\b‬‬
‫ﻭﻫﻲ ﺘﻌﻤل ﻋﻤل )‪ (backspace‬ﻓﻲ‬
‫ﻟﻭﺤﺔ ﺍﻟﻤﻔﺎﺘﻴﺢ‪.‬‬
‫ﻭﻫﻲ ﺇﺨﺘﺼﺎﺭ ل )‪(form feed‬‬ ‫‪\f‬‬
‫ﻭﻫﺫﻩ ﺍﻋﻼﻤﺔ ﺘﻘﻭﻡ ﺒﻨﻘل ﺍﻟﻤﺅﺸﺭ ﻤﻥ‬
‫ﺍﻟﺼﻔﺤﺔ ﺍﻟﺤﺎﻟﻴﺔ ﺇﻟﻰ ﺒﺩﺍﻴﺔ ﺼﻔﺤﺔ‬
‫ﺠﺩﻴﺩﺓ ﻭﻫﺫﻩ ﻏﺎﻟﺒﹰﺎ ﻤﺎ ﺘﺴﺘﺨﺩﻡ ﻓﻲ‬
‫ﺍﻟﺘﺤﻜﻡ ﻓﻲ ﻁﺒﺎﻋﺔ ﺍﻟﻤﻠﻔﺎﺕ ﺃﻱ ﻤﺎﻫﻭ‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫ﺍﻟﻨﺹ ﺍﻟﺫﻱ ﺘﺭﻴﺩﻩ ﻓﻲ ﻫﺫﻩ ﺍﻟﺼﻔﺤﺔ‬
‫ﻭﻤﺎﻫﻭ ﺍﻟﻨﺹ ﺍﻟﺫﻱ ﺘﺭﻴﺩﻩ ﻓﻲ ﺼﻔﺤﺔ‬
‫ﺃﺨﺭﻯ ﻭﻫﻜﺫﺍ‪.‬‬
‫ﻭﻫﻲ ﺇﺨﺘﺼﺎﺭ ل ) ‪carriage‬‬ ‫‪\r‬‬
‫‪ (return‬ﻭﻫﻭ ﻴﻘﻭﻡ ﺒﻨﻘل ﺍﻟﻤﺅﺸﺭ ﺇﻟﻰ‬
‫ﺃﻭل ﻤﻭﻗﻊ ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺤﺎﻟﻲ‪.‬‬
‫ﻭﻫﻭ ﺇﺨﺘﺼﺎﺭ ل)‪(Horizontal Tab‬‬ ‫‪\t‬‬
‫ﻭﻫﻭ ﻴﻘﻭﻡ ﺒﻨﻘل ﺍﻟﻤﺅﺸﺭ ﺒﻤﻘﺩﺍﺭ ﻀﻐﻁﺔ‬
‫ﻋﻠﻰ ﻤﻔﺘﺎﺡ ﺍل)‪ (tab‬ﻓﻲ ﻟﻭﺤﺔ‬
‫ﺍﻟﻤﻔﺎﺘﻴﺢ‪ .‬ﺃﻱ ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻀﻐﻁ ﻋﻠﻰ‬
‫ﻤﻔﺘﺎﺡ ﺍل)‪ (tab‬ﻴﻌﻁﻲ ﺨﻤﺱ ﻤﺴﺎﻓﺎﺕ‬
‫ﺇﺫﻥ ﺍﻟﻤﺅﺸﺭ ﺴﻭﻑ ﻴﻨﺘﻘل ﺨﻤﺱ‬
‫ﻤﺴﺎﻓﺎﺕ ﺇﺫﺍ ﺘﻡ ﺇﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ‬
‫‪.‬ﻭﻏﺎﻟﺒﹰﺎ ﻤﺎ ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﻟﺘﺭﺘﻴﺏ‬
‫ﺸﻜل ﺍﻟﺨﺭﺝ ﻋﻠﻰ ﺍﻟﺸﺎﺸﺔ‪.‬‬
‫ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﺘﻘﻭﻡ ﺒﻁﺒﺎﻋﺔ ﺍﻟﻌﻼﻤﺔ )‘(‬ ‫‘\‬
‫ﻋﻠﻰ ﺍﻟﺸﺎﺸﺔ ﻭﻻﺤﻅ ﺃﻥ ﺃﻜﺜﺭ ﺍﻟﻌﻼﻤﺎﺕ‬
‫ﻤﺜل ﻋﻼﻤﺎﺕ ﺍﻹﺴﺘﻔﺎﻫﻡ ﻭﻏﻴﺭﻫﺎ ﺇﺫﺍ‬
‫ﺃﺭﺩﺕ ﻁﺒﺎﻋﺘﻬﺎ ﻋﻠﻰ ﺸﺎﺸﺔ ﺍﻟﻤﺴﺘﺨﺩﻡ‬
‫ﻓﻼﺒﺩ ﺃﻥ ﺘﻜﻭﻥ ﻤﺴﺒﻭﻗﺔ ﺒﺎﻟﺸﺭﻁﺔ ﺍﻟﻤﺎﺌﻠﺔ‬
‫ﻭﺍﻟﺴﺒﺏ ﻓﻲ ﺫﻟﻙ ﻴﻌﻭﺩ ﺃﻥ ﺃﻜﺜﺭ ﻫﺫﻩ‬
‫ﺍﻟﻌﻼﻤﺎﺕ ﻤﺴﺘﺨﺩﻤﺔ ﻤﻥ ﻗﺒل ﻟﻐﺔ ﺍﻟﺴﻲ‬
‫ﺤﻴﺙ ﺃﻨﻬﺎ ﻤﻌﺭﻓﺔ ﻓﻲ ﺍﻟﻤﻔﺴﺭ ﺃﻨﻬﺎ ﺘﻘﻭﻡ‬
‫ﺒﻌﻤل ﻤﺎ‪.‬‬
‫ﺘﻘﻭﻡ ﺒﻁﺒﺎﻋﺔ )“(‪.‬‬ ‫“\‬
‫ﺘﻘﻭﻡ ﺒﻁﺒﺎﻋﺔ )?(‪.‬‬ ‫?\‬
‫ﺘﻘﻭﻡ ﺒﻁﺒﺎﻋﺔ )\(‪.‬‬ ‫\\‬
‫ﻭﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﺒﻁﺒﺎﻋﺔ ﻗﻴﻤﺔ ﺒﺎﻟﻨﻅﺎﻡ‬ ‫‪\ddd‬‬
‫ﺍﻟﺜﻤﺎﻨﻲ)‪. (0-8‬‬
‫ﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﺒﻁﺒﺎﻋﺔ ﻗﻴﻤﺔ ﺒﺎﻟﻨﻅﺎﻡ‬ ‫‪\xdd‬‬
‫ﺍﻟﺴﺩﺍﺴﻲ ﻋﺸﺭﻱ‪.‬‬
‫ﻭﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻴﻭﻀﺢ ﺒﻌﺽ ﺍﻹﺴﺘﺨﺩﺍﻤﺎﺕ ﻟﻠﻌﻼﻤﺎﺕ ﺍﻟﺴﺎﺒﻘﺔ‪:‬‬
‫>‪#include<stdio.h‬‬
‫)( ‪main‬‬
‫{‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫;)”‪printf(“\a\x41\n\t\101\a‬‬
‫;‪return 0‬‬
‫}‬
‫ﺴﻴﻜﻭﻥ ﺨﺭﺝ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﻫﻭ‪:‬‬
‫‪A‬‬
‫‪A‬‬
‫ﻭﺴﺘﺴﻤﻊ ﺃﻴﻀﹰﺎ ﻨﻐﻤﺘﻴﻥ ﺘﺤﺫﻴﺭﻴﺔ ﻋﻨﺩ ﻋﻤﻠﻴﺔ ﺍﻟﺨﺭﺝ ‪.‬ﻭﻟﻔﻬﻡ ﺍﻟﻜﻭﺩ ﺃﺭﺠﻊ ﻟﻠﺠﺩﻭل‬
‫ﺍﻟﺫﻱ ﺘﻡ ﻋﺭﻀﻪ ﺴﺎﺒﻘﹰﺎ ﻭﻻﺤﻅ ﺃﻥ ﻗﻴﻤﺔ ﺍﻟﺤﺭﻑ )‪ (A‬ﺒﺎﻟﻨﻅﺎﻡ ﺍﻟﺴﺩﺍﺴﻲ ﻋﺸﺭﻱ ﻫﻭ‬
‫)‪ (41‬ﻭﻟﺫﻟﻙ ﻜﺘﺒﻨﺎ )‪ ،(\x41‬ﺃﻤﺎ ﻗﻴﻤﺔ ﺍﻟﺤﺭﻑ ِ)‪ (A‬ﻓﻲ ﺍﻟﻨﻅﺎﻡ ﺍﻟﺜﻤﺎﻨﻲ ﻫﻭ )‪101‬‬
‫(‪.‬‬

‫• ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ‪:‬‬
‫ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﻫﻲ ﺍﻟﻤﻼﺤﻅﺎﺕ ﺍﻟﺫﻱ ﻴﻘﻭﻡ ﺒﻜﺘﺎﺒﺘﻬﺎ ﺍﻟﻤﺒﺭﻤﺞ ﻋﻠﻰ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺤﺘﻰ ﻻ ﻴﺘﻡ‬
‫ﻨﺴﻴﺎﻥ ﺍﻟﻔﺎﺌﺩﺓ ﻤﻥ ﺍﻟﻜﻭﺩ ﺍﻭ ﻤﻥ ﺠﺯﺀ ﻤﻨﻪ ﺇﺫﺍ ﻋﺎﺩ ﺇﻟﻴﻪ ﺒﻌﺩ ﻤﺩﺓ ﻤﻥ ﺍﻟﺯﻤﻥ‪ .‬ﻭﻫﻲ‬
‫ﻓﻲ ﺍﻟﺤﻘﻴﻘﺔ ﻤﻔﻴﺩﺓ ﺠﺩﹰﺍ ﺨﺎﺼﹰﺔ ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻤﺒﺭﻤﺞ ﻴﺘﺸﺎﺭﻙ ﺒﺒﺭﺍﻤﺠﻪ ﻤﻊ ﻤﺒﺭﻤﺠﻴﻥ‬
‫ﺁﺨﺭﻴﻥ ﺤﻴﺙ ﺃﻥ ﺍﻟﻤﺒﺭﻤﺞ ﺍﻵﺨﺭ ﻴﺴﺘﻁﻴﻊ ﺃﻥ ﻴﻌﺭﻑ ﻤﺎﻫﻭ ﻋﻤل ﺍﻟﺒﺭﻨﺎﻤﺞ ﺩﻭﻥ‬
‫ﺘﺘﺒﻊ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻤﻥ ﺃﻭﻟﻪ ﻭﻴﺘﻀﺢ ﻓﺎﺌﺩﺓ ﻫﺫﻩ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﻓﻲ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﻜﺒﻴﺭﺓ ﻭﺍﻟﻤﻌﻘﺩﺓ‪.‬‬
‫ﻭﻴﻤﻜﻥ ﻜﺘﺎﺒﺔ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﻋﻠﻰ ﻫﻴﺌﺘﻴﻥ ﻤﺨﺘﻠﻔﺘﻴﻥ‪ .‬ﺍﻟﻬﻴﺌﺔ ﺍﻷﻭﻟﻰ ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﺘﻌﻠﻴﻕ‬
‫ﻴﻤﻜﻥ ﻜﺘﺎﺒﺘﻪ ﻓﻲ ﺴﻁﺭ ﻭﺍﺤﺩ ﻓﺈﻥ ﺍﻟﺼﻭﺭﺓ ﺍﻟﺘﻲ ﻴﺠﺏ ﺃﻥ ﻴﻜﻭﻥ ﻋﻠﻴﻬﺎ ﻫﺫﺍ ﺍﻟﺘﻌﻠﻴﻕ‬
‫ﻫﻭ ‪:‬‬
‫ﻫﺫﺍ ﺍﻟﺘﻌﻠﻴﻕ ﺍﻷﻭل‪//‬‬
‫ﻭﻫﺫﺍ ﺍﻟﺘﻌﻠﻴﻕ ﺍﻟﺜﺎﻨﻲ‪//‬‬
‫ﺃﻤﺎ ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﺘﻌﻠﻴﻕ ﺃﻜﺜﺭ ﻤﻥ ﺴﻁﺭ ﻓﺈﻨﻪ ﻴﺘﻡ ﻜﺘﺎﺒﺘﻪ ﻋﻠﻰ ﺍﻟﺼﻭﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫ﺍﻟﺴﻁﺭ ﺍﻷﻭل *‪/‬‬
‫ﻭﻫﻨﺎ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻨﻲ‬
‫‪*/‬ﻭﻫﻨﺎ ﺃﻴﻀﹰﺎ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻟﺙ‬
‫ﻭﻫﻭ ﻓﻲ ﺍﻟﺤﻘﻴﻘﺔ ﻴﻤﻜﻨﻙ ﻜﺘﺎﺒﺔ ﻗﺩﺭ ﻤﺎ ﺘﺸﺎﺀ ﻤﻥ ﺍﻟﺴﻁﻭﺭ ﻷﻥ ﺍﻟﻤﻔﺴﺭ ﻋﻨﺩﻤﺎ ﻴﺠﺩ‬
‫ﺍﻟﻌﻼﻤﺔ )*‪ (/‬ﻓﺈﻨﻪ ﻴﺘﻭﻗﻑ ﻋﻥ ﺍﻟﺘﺭﺠﻤﺔ ﻭﻴﺒﺩﺃ ﻴﺒﺤﺙ ﻋﻥ ﻋﻼﻤﺔ ﺇﻏﻼﻕ ﺍﻟﺘﻌﻠﻴﻕ‬
‫ﻭﻫﻲ )‪ (*/‬ﻭﻋﻨﺩﻤﺎ ﻴﺠﺩﻫﺎ ﺍﻟﻤﻔﺴﺭ ﻓﺈﻨﻪ ﻴﺒﺩﺃ ﻤﻥ ﺒﻌﺩﻫﺎ ﻓﻲ ﺘﺭﺠﻤﺔ ﺒﻘﻴﺔ‬
‫ﺒﺭﻨﺎﻤﺠﻙ‪.‬ﻭﺍﻟﺨﻼﺼﺔ ﻤﻤﺎ ﺴﺒﻕ ﺃﻨﻪ ﻤﻥ ﺍﻷﻓﻀل ﺫﻜﺭ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﻓﻲ ﺍﻟﺴﻁﻭﺭ ﺍﻟﺫﻱ‬
‫ﺘﺤﺱ ﺃﻨﻬﺎ ﻤﻬﻤﺔ ‪ .‬ﻭﺍﻟﺩﻟﻴل ﺍﻟﺘﺎﻟﻲ ﻴﻭﻀﺢ ﻜﻴﻔﻴﺔ ﺍﻟﻌﻤل ﻤﻊ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ‪.‬‬
‫>‪#include <stdio.h‬‬
‫)( ‪main‬‬
‫{‬
‫‪/*this program will print into screen in the first line‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


welcome dear
and will print in the second line will print
I hope you are fine with the c language. */
Printf(“welcome dear \n”);
Printf(“I hope you are fine with the c language. \n”);
Return 0;
}
:‫ﻻﺤﻅ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺴﻭﻑ ﻴﻁﺒﻊ ﻓﻘﻁ ﻋﻠﻰ ﺍﻟﺸﺎﺸﺔ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ‬
Welcome dear
I hope you are fine with the c language.
‫ﻭﻗﺩ ﻜﺘﺒﺕ ﻫﺫﺍ ﺍﻟﻜﻼﻡ ﻓﻲ ﺍﻟﺘﻌﻠﻴﻕ ﻭﻟﻜﻥ ﻨﻅﺭﹰﺍ ﻷﻥ ﺃﻏﻠﺏ ﺍﻟﻤﻔﺴﺭﺍﺕ ﻟﻠﻐﺔ ﺍﻟﺴﻲ‬
.‫ﻻ ﺘﺩﻋﻡ ﺍﻟﻌﺭﺒﻴﺔ ﻓﺈﻥ ﻜﺘﺎﺒﺔ ﺍﻟﺘﻌﻠﻴﻕ ﺒﺎﻟﻌﺭﺒﻲ ﺴﻭﻑ ﺘﺼﺒﺢ ﺭﻤﻭﺯ ﻏﻴﺭ ﻤﻔﻬﻭﻤﺔ‬

(The-oNe) ‫ﻭﺘﻘﺒﻠﻭﺍ ﺨﺎﻟﺹ ﺘﺤﻴﺎﺕ ﺃﺨﻭﻜﻡ ﺍﻟﻤﺤﺏ‬


:‫ﺍﻟﺭﺠﺎﺀ ﺇﺭﺴﺎل ﻤﻘﺘﺭﺤﺎﺘﻜﻡ ﻭﺁﺭﺍﺌﻜﻡ ﻋﻠﻰ ﺍﻟﻌﻨﺎﻭﻴﻥ ﺍﻟﺘﺎﻟﻴﺔ‬
The-one@pharaonics.net
OR
The_o0ne@hotmail.com
OR
The_o0one@yahoo.com

PDF created with FinePrint pdfFactory trial version http://www.fineprint.com



! "# $ % ! &' ( )
* +"
1 2 34567 8 +9
7:38; < ! &'80 , -. /
=
<>:; 8 - % ?@ / A B C '8 D +E F
! &' H9
+) ) 93 G: E7: *0 1/<:
- 7 : =<
:+*MM: =<
: *0D# *5 ( + < I J KL 45 < 48
O+E8 P45<: *0; 5= + ) 9J& 1= +"= 7 +A . HN8
;Q8 ).8 ? J7>:LE 9! &' 1R>:J:S7" JT 9T
J: V ) 9G:- 7 : <: *H9 +) ; ! &' U .:
DW9:5 .:;Q8 ).8! &? X 8
7+ +9T Q Y Z2
0 % ;E V= 'G N9L) U P 8

O % ) •
" '[ ) 9 N B*& GN T B7 'O % )
?= O % ) \< : +9 + V= '+E 9 80
h^
_`abac_defac g] / /A 9C+ O % ) •
1 . F" / /A ? 4B += " G N G: N 9O % ) i &'8
A L J) / 3J: / /A C+ j+k"< 8 .8 : E (<*
Gm 80l < E O % ) i&' Gm )980 9
n . U & JC + % ) T +9< = '8 % ) \ <D38:* & G N9
&' G:7>s ' h^ _`
] G:r h^ _`pq] ' T / "9o G N
+380 % ) . ? hp] :0JC+ % ) B
7 ' % )
Gm )
9G: N 9 80D" . = * o "= A *P
G:HW 9 8 *0 &N'8h^_`ptftuq] H# + 8 R. %) #
*:
v 30+ 8 R. + \= O % ) ; E Gm )9
JC + \= O % ) ; H ) ) 9! * 9 ) #
w /k
x^_uydza{gz̀^|0}~
ep^_h]

^
_`pt fq
pۥq
f€‚q
ƒc^
_`„h…†z ‡_ˆt
p]q
ƒc^
_`„h…†z ‡_ˆt
f]q
ca`
dc _‰q

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
Š
? 4‹ R) ) 9 9
+9+E Œ2 5 +E 9• # v3
J:C=. O n J&'8hf€‚] 8hp€•] D 38
: '8H
GP
Ž ?) = ).8 % ) &? " i &' C=.4
'8B*& DT H% 9 % ) G:D " . = *0 )
i<s hp] % ) T DP40 %) " 9 TZ) +Z) 9
" C=.4 ) 9G: N 9
80hf] %) ; / U &* 8h•] "
)9J& >, 1 :
0h^
_`p€•tf€‚q] B
7k !9 ) +=
9
C+ O % ) ; H ) += +Z) 9&'8h†z] ' D +9
+E
H k ) ? 2 ).8O % ) O •A n 9 '8 / /k
H ) 5<:D6CT m i &' G:J:0 C" O "
)
9n . • # & =+ 0 / /k 9 C+ O % ) ;
2 L ) o

„y
|p`
^_b] 9 A L J)
/ J& ""/ C+ I O % ) •
h_defacg
J) / 9 C+ 'O % ) \ = &? B += " G N8
? G N9 ) C+ I ' ""/ C+ I8 0 9 A L
L • R= 9 ; E80- . 8 :-E C + G*D 1. 9 A
!9 ) ) 9
80 \ = &' L D W9
:• R= 9 / /k 9 C+ O % )
h„y|p` ] *r h„y |p`p] B
7k L O % ) \ = &'
"" \ < % ) B*& T )9G:- 95< : =
* 9 ) # 8 0 %) . ? hp] :0 9 A
0O % ) \ = &'; H )
x^ _uy dza{gz̀^|0}~
ep^ _h]

„y|p`pt fq
p€•0‘’q
f€“0‘q
ƒc ^
_` „h…†„ ‡_ˆt
p]q
ƒc ^
_` „h…†„ ‡_ˆt
f]q
ca` dc_‰q
Š
9+ O % ) # 5 95< :v m<• #
m i &'8h†„] m F" = '‹ N8w /k \ =
A ""/ JC + \= O % ) ; H ) <= <: =
'• l < ”>G N9n .8 0 9
•0‘’

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
“0‘

hu}pcpu`ac
] / O %) •
H*G:r O % ) \ = &? F" C=.4 N 98
i &' Gm N9 80F" + 8n 9
TZ) F" ; ) 9 %)
)9 N ' hu}pc ] G:r hu}pcpq] B 7k m> O %)
0 \< % ) B*& DT T /9G:-. / •?E m 4
/ O % ) ; H ) * 9 ) # 8
x^ _uy dza{gz̀^ |0}~
ep^ _h]

u}pcu}q
u}€– p–q
—c ^_`„h…†u ‡_ˆ t
u}]q
˜a` dc_‰q
Š
&' =
'• R= 95< Ž " O % ) #: *P ; E= '8
+Z) .4L 3C '80h†u] m F" ! ) > 5<:+ #
5< Ž %
)L4 C=.4+= 5< :v 38 0 / O %)
0h ™ ™] Y k= A B+= " ;W G:- 9
A OP ""/ 9 C+ O % ) hz|dfy a] % ) D W9
:+E 9
8
D &>j9\ = &'G: h„y |p`] \ = &'! ) Z9
89
0h„y
|p`
] % ) '&>j 9 ) B*& D W

O % ) O A •
+Z) H V=' G N95))* )9J& l #*
:
O oO m> UP 85 <l < 8U <
22 L m# +Z)
D š+ 6 ”Z O+ 8 L
O R &>: +3 G I › 5<
: * 0 +Z)
+Z) &>j)
. (=*G4 8œU <H )
9L) +Z)
)9L) B*& T O R i
&? G N G:+385<ŽO R
&' T / " O % ) G:H = +8O R i&' 9TZ
G: 9G: N 9! * ' =' [ N8 % )
JC+ %) 8:w /A JC+ %) T 5=
9TZ ) 9LR
L 9 +E8U & œ %) L) 8:9 A ""
(<*G4Om>+ T ) "9 H )O % ) O A
8: "" 9 C
+ O % ) 8: / /A 9 C+ O % ) GTZ)
.
2 2 L ;R<G:+9< += 5< : =9 &'80 O % )
"9R ) 9G:+3 5<Ž B*& T s9 % )Dm# +Z)

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
9 ) 8
+ 8
0 %
) \ < !A8 ?m> ). )
? <) " O % ) \ <; O A
? G) " %) \< !A
O % ) !k9 !A &' †z
<C7:P 4J: / /k 9C
+
JC + %) š) / o
+Z) 2 2 L w /A
i&' +Z) < G: - 9 5< Ž
0 %) L 3+ m
O % ) !k9 !A &' †„
A JP ""/ 9C
+
i&' +Z) .4 +38 9
n < G: +9< += m
&' w /A JC + % )š) /
GTZ G N9 š ) /
0B*&
O % ) !k9 !A &'8 †u
5 +Z) .4 +38 /
š) / n < G: +9< +=
G N9š ) / &' %)
0B*& GTZ
+Z) 9 !A &'8 †g
k] / H.m
0D" 3 ?) = ).8hn I
=? ) i &' N8O A i&' +9
+ V= 'D W9
:+E 9
8
N/) 5m> ==
N 9! * ) # v 30 i &' =.87C
+Z) .Ž +Z) 22 L O EZ o
0O A
x^ _uydza{gz̀^|0}~
ep^ _h]

^
_`p€••q
ƒc ^
_`„h…†z‡_ˆ t
p]q
ƒc ^
_`„h…†u‡_ˆtp]q
ƒc ^
_`„h…†„‡_ˆtp]q
ca`dc _‰q
Š
'l < &'”>G N.
••
ž
Ÿy|p` ^
_bƒ|^ _`_|`y |pzaz

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
J& !A GI U P8h••] C + ;o 8I R
R :
0 h†z] w /k JC + %) !A ' +Z) .4
h†u] / !A =+Z).4= <
IU P 8hž] n / ;R <#
GP4 N.:T ) 8 +E h••] C
+ J8 9hž] n / G: 8
<I o HN8H9/) ;R) % G:= ) 9
] ' ”Z G N9G:$ ) H¡# R :0 9 C
+
] ""/ JC + %
) !A =+Z) .4= <IU P8h••0‰‰‰‰‰
8 ¢ < F K V= ' U<:+"): N8h†„
0

O % ) 1 .:7) >4+= • m £8 •
0hp¥¦] n8/ J:H I L + 8n G N9G: N 90¤
H#0h䴤] 7:
8n8 GN % ) . G N9G: N 9 8
¨_`pfuq
Ÿy|p`pf’q
H# n / % ) . : +9G: N 930©
¨_`‘b}q
.7 R 9n . GŽ B7k i &? % ) . < T
0j
R>
H# % ) . F" h«] ) /) o +Z)
.4 N 90ª
¨_`p«fq
H# % ) . h¥] o +Z).4 N 930¬
¨_`p¥fq
0jR> .7 R 9n . GŽB 7k i &? % ) =
GŽ U P®+ G4 8O % ) 1 .: O K +Z) .4 N 930-
0D
W9:j
R> .7 R 9n .
¨_`pg zq
. 7) > n I i+9 J& C + +Z).4 N 90¯
0 %)
3 hp] n / G:J:n8/ / = . % 0°
0hž] n / J8 9
0O % ) 1 .j *• / % O *+ :7) >4 ) 9G: N 930±
0 %) . *hep^ _] +Z) .4H#
L +9 .3 G N9G:HW I 5<Ž % ) .3 V7) >4+=
GŽ ? 7 :
8 mR 1 .:C l < )*+9 (= * D m# % )
. <k) > = <:r mR 1 .I hgz̀«_pea] % ) . 7) >4
. GN mR 7: %) :œ hg`dza_`_pea] %)
0hg`
dza_`_defac] 7k) >4'8hgz̀«_de] ' % )

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
h²}a¥|³a] -/ *>:O / Y > "8
) 9 8= L N678́ N ) " .7 41E
²}a¥|_aµƒ}pc p|_^
ug0_a`
¶˜
²}a«|‰_aµ}|` ep^y
0u|e
¶˜
²}a«|‰|_aµ· p}||0u|e

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com

! "# $ % ! &' ( ) * +"
1 2 34567 8 +9
7:38 ; < ! &'8 0 , -. /
=<>:; 8 - % ?@ / A B C '8 D +E F
! &' H9+) ) 93 G: E7 : * 0 1/< :
- 7 : = <:+* MM: = <
: *0D# *5 ( + < I J KL 45 < 4
8
O+E8 P 45<: *0; 5= + ) 9J& 1= +"= 7 +A . HN8
;Q8 ).8 ? J7>:LE 9! &' 1R>:J:S7" JT 9
T
J: V ) 9G:- 7 : < : *H9 +) ; ! &' U .:
DW9 :5 .:;Q8 ).8 ! &? X 87 + +9 T Q Y Z2
0 % ;E V= 'G N9L) U P 8
O ) •
%) ) \__^ 8 \]]^ G) ) 0[
'? B
7b 8 0 % ) + ` ) )a &'8
cdef ghi]]j
cdef ghi__j
(<* P 4+ 8 7+" +9 Tk. % ) &? " G: = '8
0\__^ ' ) (<* P 4+ 8 7+" Y "= ). ?< :8:\]]^ )
) # l3
mhngopj
g]]j
qf r
hns
\tuiv wg^j
+ $ % UP 8 D
x *D < -) N< y # =
<:l 3
' { < { <G N9k . y # l 30X 7 + z
==N8 \p^ C+ L4 % ) <+=.: 9+ =<
IU P 8 \|^ C+
G:J:0+ 8 7+" \g^ % ) +9T< N \]]^ ) =+Z) .4
L y xN • <y R= 980\gog]~^ ) } N9\g]]^ )
0 \__^ )
%) y ) \__^ 8 \]]^ O ) 0€
) ) N8 H H ? = G: 8 y . G) ) G:l x< 8
H H ? +Z) = ) =
' :% ) + +Z) (<* ) "
)B 7b L
]]•def ghij
__•defghij
) # l3
mhn‚oƒj
qf r
hns
\tuiv w]]‚^j

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
\ƒ^ C+ z ) 9G:$ ) 5<
:y # &' l3
5<IU P 8 \p^ = 'G N9k . { = N8 \ƒ^ ' % ) GIU P 8
‚^ % ) „) / G:J:5) z ) 9G:H %) B C9 …) 9k .
?=9T
Z ).8 \p^ " L 4\ƒ^ " %)9k . B*& \
L y R= 9D W9 : xN • < 8 0 ?) z U P+ †„ ) / &'
0\__^ )
\ˆ^ ) 0‡
k. % ) &? B*& <TZ " L + )a &'8
+Z).4+ \n f‰e^ L= J:\~^ ' % ) P4J:? <LR
B7b 8 0 \s g‹Œe^ L= J:\Š^ ' % ) GN k . H &'
) # l 30\ˆ•def ghi^ ' )a &?
mhngo~j
qfrhns
\tuiv ŵg^j
=<
IUP 8 \g^ % ) \Š^ " z ) 9k . y #
0\ˆ^ ) =+Z) .4
\u Ž • _ ]^ 8 / O ) 0•
F" ) *.̀ < •; „+ 8 ) )a &'GID‘< 8
#
’rh“ ‹
‰ie”Œ nir•0•–
—gr h\^
˜
rhngo~Šw‚opj
dfrhns
\™uišh™ w
g]‚^j ŽŽ [› ='G N) . )
=
dfrhns
\™uišh™ w
g_‚^j ŽŽ › =
'G N) . )=
dfrhns
\™uišh™ w
g•‚^j ŽŽ ›œ = 'G N) . )=
dfrhns
\™uišh™ w
gŽ‚^j ŽŽ€ ='G N) . )=
dfrhns
\™uišh™ w
gu‚^j ŽŽœ = 'G N) . )=
fen‰fhŠj

; „+ 8 O ; E D9" 5< :l x<y #
~Š^ C+ = P45<:J: " = '8 \u^ +
^ GI U P 8 \Š^ ' 8 \ž^ { = G N9k . \p^ C + L \
y { < bZ) 9 ) 8+ 8 0\~ŠŽpož
L # T7 .
Ÿ]‚o~Š]po~p ] ;
g_‚o~Š_pop _ R
Ÿ•‚o~Š•popŠ • W
ŸŽ‚o~ŠŽpož Ž "
Ÿu‚o~ŠupoŠ u "

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
\‚r
n¡rŒe^ ( „) L H )O ) 0›
B+8 % A: ' ( G: +3 O )a&' :
+<G:H
\~ ‚¢
neo £ ‚r
n^ G:J:O ) G †B7 ' (9 8 B*& 9
TZ
0\ž£_~^ " '(9 * :G:¤
\¥^ ) •
1R • " '8 \‚r n^( „) L ? " )a &'8
~^ ( &' R 8 \~^ J8 ( &' (<* P 4\Š^ "
B*& \p^ C + H# < C7: D x# 0\Š^ J8 5) (<* P 4\
H # l 30\Š^ 8:\~^ B
7 ' \p^ C + G N) . Dz
C+
¦ | p ƒ § ž ~
ž ž ž ž ž ž ž žŠ
Š Š Š Š Š ~ Š ~
ž Š
\ž oƒ^ 8 \ž o~^ GP 4\p^ ' C + G: ) H #) l 3
ž Š
H # = L= ) 9L) \~^ " \ž ^ 8 \ž ^ )
<Z =Q8 &?8
9b " /) ). = '\¥^ )y R P45< :l 30\p^ C +
0¨ /A • N 8 \~^ L 4\Š^
\©^ ) •
\ghi^ = '8 ( „ ) L ? "D W9: )a &'8
? B7b 8
ª« df eŒ Œr
•h~ ©e« dfeŒŒr
•hž
)9
C+ ) " ) G* P 4\~^ " R )a &'8
a&? +E <G:;R) < 8+ 8 " R ?< • 348 + 8 J8 9
8+ 8+ &' N9 8 = ?‘ G:; ) 9 ) " 8+E
b
ª« deŒ Œ
r•h~ ª«dfeŒŒ r
•hž ¬eŒ‰‹
n
Š Š Š
Š ~ Š
~ Š Š
~ ~ ~
~^ ' 9 ) ) G* P 434\~^ " 1R 4 ) 935< :l 3J:
) # l 3\
’r h“ ‹
‰ie”Œ nir •0•–
—gr h\^
˜
rhngopw ‚oƒj
df rhns\™ ui™w g©‚^j
fen ‰fhŠj

)- UP 8 \ƒ^ '{ = ¨ b . y #

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
ª«dfeŒŒ r
•h~\g^ Š Š Š Š Š ~ Š ~
ª«dfeŒŒr•hž\‚^ Š Š Š Š Š ~ Š Š
¬eŒ ‰‹n Š Š Š Š Š ~ Š Š
U & \~^ J8 9 9 ) 5 G N9J& ' F" ¤ # ( G:l 3
¤ # ( G: 8 \~^ ' b 8+E- ='BR " G•
ž
0 *P * 7 :?‘ . { = GP 4\ž oƒ^ B7 '
\-^ ) •
G* P 4\Š^ " R '8\c¬^ B7 ' )a &'8
9 *'? b 8+E8 \Š^ ' 9 % ) 5 <(
ª« dfeŒ Œr
•h~ ª« dfeŒŒr•hž ¬eŒ‰‹n
Š Š Š
Š ~ ~
~ Š ~
~ ~ ~
0\©^ ) a* Py . ; E )a &'L y R= 9
8
\®^ ) •
( 5 P4\Š^ " R )a &'8 \°c¬^¯ = '8
9 *'? b 8+E8 0 9 ) • <
ª« deŒ Œr
•h~ ª« dfeŒŒr•hž ¬eŒ‰‹n
Š Š Š
Š ~ ~
~ Š ~
~ ~ Š
0\-^ 8 \©^ ) ) a* Py . ? y R= 9DW9:
8
\––^ … •
'? B7b 8 ( „ ) L D W9 :H )a &'8
ª«dfeŒŒr•h–– Œ •rsn±² g‹
‰e
0C+ ? 4 T. ) O ) C + B
7 '\Œ •rs
n ±² g‹‰e^ G:¤
mhngopj
qfrhn
s\t
uiv w
g––~^j
H "a &' G: 8 \p^ ' % ) G:l x< # &'
\p^ C
+ 6= # H #) L + ) ?< :+x ( „ ) L D BC
k.y # GP 4\Š~Š~^ ' 6= # H #) \p^ C + G:¤ 8
C
+ y ) 7 AI * &< = <:l 3 ^ C + &' L H 9
&' ? N G, \( Q:G4 8 L) ? 3GIU P 8 7 9
) HN l 3 #

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
H/9k . \žž^ ( 8 \žŠ^ 7( H/ H/9k . \ž~^ ( G:l 3
( '8 H #) ( >³ … 4) 9G:L 4&N'8 \ž~^ 7( H/
'? … 1 E4+ C + HN2 ¨ b . 8\ž§^
žƒ ž§ ž~ žŠ
Š Š ~ Š
y { < { <G N9k . GP 4
0\ž^ ¨ b k . % ) G:J:
0\ž^ '
\””^ 7 … •
'? B
7b 8 ( „ ) L D W9:H )a &'8
ª«dfeŒ Œ
r•h””Œ •r
sn
±²g‹
‰e
? 4 T. ) O) C + B7 ' \Υr
sn±²g‹
‰e^ G:¤
) # l 30C +
r
hngopj
dfr
hns\™ui™ w
g””~^j
) HN - UP8 \~Š^ '{ = ¨ b9k . # &'

8 \ž§^
J& ( H* 7( L 4\žž^ ( …
4) 9k . 5<
:='l 3
' … & =+ HN ¨ b .8 5 9
ƒ §
ž ž ž~ žŠ
~ Š ~ Š
‘= \~Š^ C + J8 9 '8 \~Š~Š^ G N9k . … { <G:J:
0\~Š^ C+ ' # &'{ <G:J:J
"R= O ) •
3 J: R̀> 8:¨A : ? <G N9J& ) ' "R= )
% R= ) 9 ) 8+ 8 7 #*:H )/
? B7b . T7
ª«
dfeŒ
Πr
•h~ ©© e«df
eŒŒ
r•hž L= J:\ghi^ ©©
% \8^

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
ª«
dfeŒ
Œr•h~ -- e«
dfeŒ
Œr•hž L= J: \c¬^ --
% \8:
^
0
ˆe« dfeŒŒr•h L= J: \h•n^ ˆ
0 =
8+E :\©^ 8 \-^ O ) b 8 +E • < ? O ) a &'8
F" 9 7 L H) /9 '\ˆ^ ) b
ª« dfeŒ Œr
•h ¬eŒ
‰‹n
~ Š
Š ~
<7" O •
)a &' 8 9 % ) ) <7" +Z) )a&'8
) 8+ 5‘ x
a= ) T7
8I %) " G: J: oo
% ) " • < J8
<
7" ) &' G:l 38 ¤ #
G:J:\goo‚^ H#0C= .´ • 8
" • < ' \g^ % )
0\‚^ % )
3 8I % ) " G:J: ˆo
% ) " J8
" G:J:\gˆo‚^ H#0 <#
" J8 3 \g^ % )
0\‚^ % )
?= C ) 9 8 *: x –
9% ) ) G7" ?< :
G: = '8 \g–‚^ H#0 )Z
*: \g^ %)
0\‚^ % )
?= C ) 9 8 %A: x ”
9% ) ) G7" ?< :
G: = '8 \g”‚^0 )Z
‚^ % ) H :\g^ % )
0\
'8 J8 9 8: *: x –o
DW9: <7" +Z)
^0 H# )Z 9% ) )
\g^ % ) G: = 8 \g–o‚
B CE " J8 98: *:

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
0\‚^
%
)
'8 J8 98: %A: x ”o
<
7" µ W9: +Z)
^ 0H# )Z 9% ) )
H :\g^ % ) G:J:\g”o‚
‚^ % ) " J8 8:
0\
)
9k . J& 8 z ) )a&' +Z) D K8
0 z )X7 + ?)#:HE¶
<k . U & D
"3 ? 2

C=. O •
G: N 8 0 %)L4 C=
.4J:C= . O +b"<
8
)* '8 N2I +9+ O )a&'&>`
)H 2 ?} N ) ) )
^ G: J: y ) • < ª«df
eŒŒr
•h~oe« df
eŒŒr
•hž
k . \e« dfeŒŒr
•hž
^ GT Z
0\e«dfeŒŒr
•hž
^ 9 ) ; E ª« dfeŒŒr
•h~o ª«df
eŒŒr
•h~]o
^8 \ª«dfeŒŒr
•h~ ª« dfeŒŒr
•h~] ª«df
eŒŒr
•hž
;Q88 \ª« dfeŒŒr
•hž ª« dfeŒŒr
•hž
^ {=
\[ª«dfeŒŒr•h
ª« df
eŒ Œr
•h~]o ^ ) ? y R= 9 ) O ) l3
0\ª«df
eŒŒr
•hž
• ª« dfeŒŒr
•h~_o ª« dfeŒ Œ
r•hž
• ª« dfeŒŒr
•h~•o ª« dfeŒ Œr
•hž
• ª« dfeŒŒr
•h~Žo ª« dfeŒ Œ
r•hž
• ª« dfeŒŒr
•h~uo ª« df eŒŒr
•hž
• ª«
dfeŒ
Œr•h~””o ª«
dfeŒ
Œr•hž
• ª«
dfeŒ
Œr•h~––o ª«
dfeŒ
Œr•hž
• ª«
dfeŒ
Œr•h~©o ª«
dfeŒ
Œr•hž
• ª«
dfeŒ
Œr•h~®o ª«
dfeŒ
Œr•hž
• ª«
dfeŒ
Œr•h~ -o ª«
dfeŒ
Œr•hž

" O ) O 98I •

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
l 3 „ >I H '& = )
9k . )O ) J: 98I =<8
) 8+
\^ X I )O )
ˆ =
]] __ µ "< 8 B
C9TO
•Žu " 8 "8 W O
]_ R8 ; O
”” –– … O
” – ”o –o <
7" O
oo ˆo yR= O
© ( „) L \Ÿ·¸^
® ( „) L \°c¬^
- ( „) L \c¬^
©© "R= \Ÿ·¸^
-- "R= \c¬^
o C=
. O

) O % ) F > •
O % ) ; E (<* / O = += y #
(<* G4 N8 0\rhneºef Œ
^ ¨ /A C+ % ) '8 F" + 8 ¹ <
; ¨ /A JC + % ) ; E H# ¹ < #
*:+ 8 O % )
F >; %H * 9 ) 8+ 80 &N'8 %)
; L y R= 9J& G:l 3» + ) O % )
0 O ; EL y R= 9
# Hb/ . J& % ) /
¼o p]§0~ƒo£0~ƒ +E8 P 4 G N9 +=
= 9&' + 8 %
) + )
G• O % ) ^ ¨ /A JC +
/9k . %
)8 \r hneºef
JC+ %) A " JC +
%) L 4 ¨ /b 0\s
‹•gn
^ 9
0 "" JC +
¼oŸ]§o|£ +E8 P 4 G N9 +=
a&? )= (/ A: 8 = 9&' + 8 %
) + )
GI B 7b G• O % ) ; ¨ /A JC +
¹ = &' „ 9 += /9k . ; \r hneºef^ %)
k F Z L4 / %) ^ %)

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
8+ ) 9 L) 9C
+ 0\“
•gfg“
nef
UP8 N.: T ) "9 G: ;R ) 9
" k 9 N 0 /
k/ &? 9 C
+ x> UP ) 9
8
T ) 8+ ‘= 8 N.:T ) 8+E
G• N.: 0 # l 30
\|p^ ' \Ÿ^k /
0\|p]§o|£^ GP4
¼oŸ]§0~ƒo|£0~ƒ +E8 P4 G N9 +=
H9/ + 5<:l 3 = 9
&' + 8 %) + )
%) 9C
+ " G• O % ) \s‹
•gn
^ "" JC +
L4 / /9k . ^ %) ;
L= ) 9 L) 9 C + L4 / %
) 0\“
•gfg“
nef
" L) 9C
+
/ "9 G: ;R ) 9
G: D ". = * 8 0 /
|p^ C + J8 \Ÿ^ x> UP ) 9
8
T ) 8+E \ N.:T ) 8+E
^ GP4 N.: 0 # l 30
\|p]§0~ƒo|£0~ƒ

\½•e_•·e^ -/ *>:O / Y > "8


) 9 8= L N67
³8 N ) " .7 41E
½•e_•he¾d•gfg•hr
“ Œ
0hen

½•e±•Šhe¾••n —gr‹
0“•—

½•e±•Š•he¾¢ g•••0“•—

Created by Neevia Document Converter trial version http://www.neevia.com


Created by Neevia Document Converter trial version http://www.neevia.com
‫ﺒﺴﻡ ﺍﷲ ﺍﻟﺭﺤﻤﻥ ﺍﻟﺭﺤﻴﻡ‬

‫• ﺍﻹﺘﻔﺎﻗﻴﺔ‪:‬‬
‫ﻟﻘﺩ ﻜﺘﺒﺕ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻟﻐﺭﺽ ﺘﺜﻘﻴﻑ ﺍﻟﺸﺒﺎﺏ ﺍﻟﻌﺭﺒﻲ ﻓﻲ ﻤﺠﺎل ﻋﻠﻭﻡ ﺍﻟﺤﺎﺴﺏ ﺍﻵﻟﻲ‪.‬‬
‫ﻭﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻤﺠﺎﻨﻲ ﻟﻠﺠﻤﻴﻊ ﻭﻻ ﺃﺭﻴﺩ ﻤﻥ ﻭﺭﺍﺌﻪ ﺇﻻ ﺸﻲﺀ ﺒﺴﻴﻁ ﺠﺩﹰﺍ ﻭﻫﻭ ﺩﻋﻭﺓ‬
‫ﺼﺎﻟﺤﺔ ﻓﻲ ﻅﻬﺭ ﺍﻟﻐﻴﺏ ﻟﻲ ﻭﻟﺠﻤﻴﻊ ﺃﺨﻭﺍﻨﻨﺎ ﺍﻟﻤﺴﻠﻤﻴﻥ ﻓﻲ ﺃﻨﺤﺎﺀ ﺍﻟﻌﺎﻟﻡ‪.‬ﻜﻤﺎ ﺃﺭﺠﻭﺍ ﺃﻥ‬
‫ﻻ ﻴﺘﻡ ﺍﻟﺘﻌﺩﻴل ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻭﺇﻨﺴﺎﺒﻪ ﺇﻟﻰ ﻏﻴﺭﻱ ﻷﻨﻲ ﻗﺩ ﺘﻌﺒﺕ ﻓﻴﻪ ﻜﺜﻴﺭﹰﺍ‪ .‬ﻜﻤﺎ‬
‫ﺃﻨﻨﻲ ﺃﺅﺅﻜﺩ ﺃﻨﻨﻲ ﺃﺭﺤﺏ ﻭﺒﻜل ﺴﻌﺔ ﺼﺩﺭ ﺒﺎﻟﻨﻘﺩ ﺍﻟﺒﻨﺎﺀ ﺍﻟﺫﻱ ﻴﺴﺘﻔﻴﺩ ﻤﻨﻪ ﺍﻟﺠﻤﻴﻊ‪ .‬ﻜﻤﺎ‬
‫ﺃﻨﻪ ﺇﺫﺍ ﻭﺠﺩﺕ ﻋﺯﻴﺯﻱ ﺍﻟﻘﺎﺭﺉ ﺃﻱ ﺃﺨﻁﺎﺀ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻴﺭﺠﻰ ﺃﺨﺒﺎﺭﻱ ﺒﻬﺎ ﻭﺴﻴﺘﻡ‬
‫ﻭﻀﻊ ﺃﺴﻤﻙ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻤﻊ ﺍﻟﺘﻌﺩﻴل‪ .‬ﻜﻤﺎ ﺃﻨﻲ ﺃﺭﺤﺏ ﺃﻥ ﻴﺸﺘﺭﻙ ﻤﻌﻲ ﺃﻱ‬
‫ﺸﺨﺹ ﻹﻀﺎﻓﺔ ﺍﻟﻤﺯﻴﺩ ﻤﻥ ﺍﻟﺩﺭﻭﺱ ﻟﻬﺫﺍ ﺍﻟﻤﻠﻑ ﻭﺴﻴﺘﻡ ﻭﻀﻊ ﺃﺴﻤﻪ ﺃﻴﻀﹰﺎ ﻭﺫﻟﻙ‬
‫ﺤﺘﻰ ﻴﻜﻭﻥ ﻫﻨﺎﻙ ﻤﺭﺠﻊ ﻋﺭﺒﻲ ﻟﻠﻐﺔ ﺍﻟﺴﻲ‪.‬‬

‫ﻨﻅﺭﹰﺍ ﻷﻥ ﺃﻜﺜﺭ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻤﺒﻨﻴﺔ ﻋﻠﻰ ﺍﻟﺘﻔﺎﻋل ﻤﻊ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻓﺄﺤﺒﺒﺕ ﻗﺒل ﺍﻟﺒﺩﺀ ﻓﻲ‬
‫ﺍﻟﺠﻤل ﺍﻟﺸﺭﻁﻴﺔ ﻭﺠﻤل ﺍﻟﺘﻜﺭﺍﺭ ﻤﻨﺎﻗﺸﺔ ﺩﺍﻟﺘﻴﻥ ﻟﻠﺩﺨل ﻭﺍﻟﺨﺭﺝ ﻭﺫﻟﻙ ﺤﺘﻰ ﻴﺘﺴﻨﻰ‬
‫ﻟﺠﻤﻴﻊ ﻓﻬﻡ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﻤﻜﺘﻭﺒﺔ ﺠﻴﺩﹰﺍ‪ .‬ﻭﺴﻴﺘﻡ ﻤﻨﺎﻗﺸﺔ ﻫﺫﻩ ﺍﻟﺩﻭﺍل ﻻﺤﻘﹰﺎ ﻓﻲ ﺃﻗﺴﺎﻡ ﺃﺨﺭﻯ‬
‫ﻤﻥ ﻫﺫﺍ ﺍﻟﺴﻠﺴﻠﺔ‪.‬‬
‫• ﺇﺴﺘﺨﺩﺍﻡ )‪:(printf‬‬
‫ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺩﺍﻟﺔ ﻭﻫﻲ ﻓﻲ ﺍﻟﺤﻘﻴﻘﺔ ﻟﻴﺴﺕ ﺒﺩﺍﻟﺔ ﻭﻟﻜﻨﻬﺎ ﺃﺤﺩ ﺍﻟﻜﻠﻤﺎﺕ ﺍﻟﻤﺤﺠﻭﺯﺓ ﻟﻠﻐﺔ‬
‫ﺍﻟﺴﻲ ﺤﻴﺙ ﺃﻥ ﻟﻜل ﻟﻐﺔ ﺒﺭﻤﺠﺔ ﻜﻠﻤﺎﺘﻬﺎ ﺍﻟﻤﺤﺠﻭﺯﺓ ﺍﻟﺨﺎﺼﺔ ﺒﻬﺎ‪ .‬ﻭﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﻜﻠﻤﺔ‬
‫ﻟﻁﺒﺎﻋﺔ ﺸﻲﺀ ﻤﺎ ﻋﻠﻰ ﺸﺎﺸﺔ ﺍﻟﻜﻤﺒﻴﻭﺘﺭ‪.‬ﻭﻫﻲ ﺘﺩﻋﻡ ﻤﻭﺼﻔﺎﺕ ﺍﻷﻋﺩﺍﺩ ﺍﻟﺘﻲ ﺘﻤﺕ‬
‫ﻤﻨﺎﻗﺸﺘﻬﺎ ﺴﺎﺒﻘﹰﺎ‪ .‬ﻭﻗﺩ ﺘﻌﺎﻤﻠﻨﺎ ﻤﻌﻬﺎ ﻤﻥ ﻗﺒل ﻟﺫﻟﻙ ﻻ ﺤﺎﺠﺔ ﻟﺫﻜﺭ ﻤﺜﺎل ﻋﻠﻴﻬﺎ ‪.‬‬
‫• ﺇﺴﺘﺨﺩﺍﻡ )‪:(scanf‬‬
‫ﻭﻫﺫﻩ ﺍﻟﻜﻠﻤﺔ ﺃﻴﻀﹰﺎ ﻤﻥ ﺍﻟﻜﻠﻤﺎﺕ ﺍﻟﻤﺤﺠﻭﺯﺓ ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ ﻭﻫﻲ ﺘﺴﺘﺨﺩﻡ ﻷﺨﺫ‬
‫ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﻤﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺤﺘﻰ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻟﻌﻠﻤﻴﺔ ﺍﻟﻤﻁﻠﻭﺒﺔ ‪ .‬ﻭﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻴﺒﻴﻥ ﻜﻴﻔﻴﺔ‬
‫ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﻫﺫﺍ ﺍﻟﺩﺍﻟﺔ‪.‬‬
‫>‪#include <stdio.h‬‬
‫)( ‪main‬‬
‫{‬
‫;‪int a,b,c‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫;)”‪printf(“enter tow number :=> \n‬‬
‫;)‪scanf(“%d \n”,&a‬‬
‫;)‪scanf(“%d \n”,&b‬‬
‫;‪c=a+b‬‬
‫;)‪printf(“%d”,c‬‬
‫;‪return 0‬‬
‫}‬
‫ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻴﻘﻭﻡ ﺒﺄﺨﺫ ﻋﺩﺩﻴﻥ ﺼﺤﻴﺤﻴﻥ ﻤﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺜﻡ ﻴﻘﻭﻡ ﺒﺠﻤﻊ ﻫﺫﻴﻥ‬
‫ﺍﻟﻌﺩﺩﻴﻥ ﻭﻁﺒﻊ ﺍﻟﻨﺎﺘﺞ ﻋﻠﻰ ﺍﻟﺸﺎﺸﺔ‪.‬ﻭﺍﻟﺠﺩﻴﺩ ﻓﻘﻁ ﻓﻲ ﻫﺫﺍ ﺍﻟﻜﻭﺩ ﻫﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺴﺎﺩﺱ‬
‫ﻭﺍﻟﺴﺎﺒﻊ ﻭﺍﻟﺜﺎﻤﻥ ﻟﺫﻟﻙ ﻫﺫﺍ ﻓﻘﻁ ﺍﻟﺫﻱ ﺴﺎﻗﻭﻡ ﺒﺸﺭﺤﻪ ﺃﻤﺎ ﺍﻟﺒﺎﻗﻲ ﻓﻘﺩ ﺘﻡ ﺸﺭﺤﻪ ﻓﺈﻥ ﻟﻡ‬
‫ﺘﻔﻬﻡ ﺒﻘﻴﺔ ﺍﻟﻜﻭﺩ ﻓﺈﻨﻪ ﻴﻨﺒﻐﻲ ﻋﻠﻴﻙ ﺍﻟﻌﻭﺩﺓ ﻟﻘﺭﺍﺀﺓ ﺍﻟﻤﻠﻑ ﻤﻥ ﺍﻟﺒﺩﺍﻴﺔ‪ .‬ﻓﻲ ﺍﻟﺴﻁﺭ‬
‫ﻻ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﻜﻠﻤﺔ )‪(scanf‬‬‫ﺍﻟﺴﺎﺩﺱ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﻜﻠﻤﺔ );)‪ (scanf(“%d”,&a‬ﺃﻭ ﹰ‬
‫ﺜﻡ ﺒﻌﺩ ﺫﻟﻙ ﺍﻟﻌﻼﻤﺔ )‪ (%d‬ﻭﺫﻟﻙ ﻷﻥ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻟﺫﻱ ﻨﺘﻌﺎﻤل ﻤﻌﻪ ﻫﻭ ﻤﻥ ﺍﻟﻨﻭﻉ‬
‫ﺍﻟﻌﺩﺩﻱ ﺍﻟﺼﺤﻴﺢ )‪ (integer‬ﺃﻤﺎ ﺍﻟﻌﻼﻤﺔ )‪ (&a‬ﻓﻬﻲ ﺃﻨﻪ ﻋﻨﺩ ﺇﺴﺘﺨﺩﺍﻡ ﺍﻟﺩﺍﻟﺔ )‬
‫‪ (scanf‬ﻻﺒﺩ ﻤﻥ ﺇﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﻭﻤﻌﻨﺎﻫﺎ ﺃﻥ ﺍﻟﻤﻔﺴﺭ ﻋﻨﺩﻤﺎ ﻴﺠﺩ ﺍﻟﻌﻼﻤﺔ )&(‬
‫ﻤﺘﺒﻭﻋﺔ ﺒﻤﺘﻐﻴﺭ ﻤﺎ ﻓﺈﻥ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﺘﺭﻤﺯ ﺇﻟﻰ ﻋﻨﻭﺍﻥ ﺍﻟﺤﻴﺯ ﻤﻥ ﺍﻟﺫﺍﻜﺭﺓ ﺃﻱ ﺃﻨﻪ ﺇﺫﺍ‬
‫ﻟﻡ ﻴﺘﻡ ﺫﻜﺭ )&( ﻋﻨﺩ ﺇﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺩﺍﻟﺔ ﻓﺈﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻻﺒﺩ ﺃﻥ ﻴﻌﻁﻲ ﺭﺴﺎﻟﺔ ﺨﻁﺄ‬
‫ﻭﺫﻟﻙ ﻷﻨﻪ ﻻ ﻴﻌﺭﻑ ﻋﻨﻭﺍﻥ ﺍﻟﻤﻜﺎﻥ ﺍﻟﺫﻱ ﺴﻴﻀﻊ ﻓﻴﻪ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﺩﺨﻠﺔ‪ .‬ﺃﻤﺎ ﺍﻟﺴﻁﺭ‬
‫ﺍﻟﺴﺎﺒﻊ ﻓﻬﻭ ﺸﺒﻴﻪ ﺒﺎﻟﺴﻁﺭ ﺍﻟﺴﺎﺩﺱ ﻭﻫﻨﺎ ﻤﻥ ﺍﻟﺠﻴﺩ ﺫﻜﺭ ﺃﻨﻪ ﻴﻤﻜﻥ ﺃﺨﺫ ﺃﻜﺜﺭ ﻤﻥ ﻤﺩﺨل‬
‫ﻤﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻓﻲ ﻭﻗﺕ ﻭﺍﺤﺩ ﺃﻱ ﺍﻨﻨﺎ ﻓﻲ ﻤﺜﺎﻟﻨﺎ ﻫﺫﺍ ﻗﺩ ﺃﺨﺫﻨﺎ ﻋﺩﺩﻴﻥ ﻤﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ‬
‫ﻟﺫﻟﻙ ﻨﺴﺘﻁﻴﻊ ﺃﻥ ﻨﺴﺘﺨﺩﻡ )‪ (scanf‬ﺒﺎﻟﺼﻭﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ ﻟﻜﻲ ﻴﺘﻡ ﺃﺨﺫ ﻗﻴﻡ ﺍﻟﻤﺘﻐﻴﺭﻴﻥ‬
‫ﻭﺇﺴﻨﺎﺩﻫﺎ ﺇﻟﻴﻬﺎ ‪.‬ﻭﺍﻟﺼﻭﺭﺓ ﻫﻲ‪:‬‬
‫;)‪Scanf(“%d %d “, &a,&b‬‬
‫ﻭﻴﻤﻜﻥ ﻟﻬﺫﻩ ﺍﻟﺩﺍﻟﺔ ﺃﻥ ﺘﺄﺨﺫ ﺠﻤﻴﻊ ﺃﻨﻭﺍﻉ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻭﻟﻜﻥ ﻴﻨﺒﻐﻲ ﺍﻹﻨﺘﺒﺎﻩ ﺇﻟﻰ ﻨﻭﻉ‬
‫ﺍﻟﻤﺘﻐﻴﺭ ﺤﺘﻰ ﺘﺄﺨﺫ ﺍﻟﻬﻴﺌﺔ ﺍﻟﺘﻲ ﺘﻨﺎﺴﺒﻪ ﻭﺃﻗﺼﺩ ﺒﺎﻟﻬﻴﺌﺔ ﺃﻱ ﺇﺫﺍ ﻜﺎﻥ ﻤﺘﻐﻴﺭ ﻋﺩﺩﻱ‬
‫ﺤﻘﻴﻘﻲ ﻓﺈﻨﻨﺎ ﻨﺴﺘﺨﺩﻡ ﺍﻟﻌﻼﻤﺔ )‪ (%f‬ﻭﺇﻥ ﻜﺎﻥ ﺍﻟﻤﺘﻐﻴﺭ ﺤﺭﻓﻲ ﻓﺈﻨﻨﺎ ﻨﺴﺘﺨﺩﻡ ﺍﻟﻌﻼﻤﺔ )‬
‫‪ (%c‬ﻜﻤﺎ ﺫﻜﺭ ﺴﺎﺒﻘﹰﺎ‪.‬‬

‫• ﺍﻟﺠﻤل ﺍﻟﺸﺭﻁﻴﺔ‪:‬‬
‫• ﺇﺴﺘﺨﺩﺍﻡ )‪.(if‬‬
‫ﻭﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻋﻨﺩﻤﺎ ﻴﺭﻴﺩ ﺍﻟﻤﺒﺭﻤﺞ ﺃﻥ ﻴﺘﺄﻜﺩ ﻤﻥ ﺸﻲﺀ ﻤﻌﻴﻥ ﻓﻲ ﺒﺭﻨﺎﻤﺠﻪ‬
‫ﻼ ﻫل ﻗﻴﻤﺔ ﻤﺘﻐﻴﺭ ﻤﺎ ﻫﻲ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺘﻲ ﻴﺭﻴﺩﻫﺎ ﺍﻟﻤﺒﺭﻤﺞ ﺃﻭ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺃﻡ ﻻ‬ ‫ﻤﺜ ﹰ‬
‫ﻭﺍﻟﺼﻭﺭﺓ ﺍﻟﻌﺎﻤﺔ ﻟﻬﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻫﻲ‪.‬‬
‫)‪If (expression‬‬
‫;‪Statement‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫ﺤﻴﺙ ﺃﻥ )‪ (expression‬ﻫﻭ ﺍﻟﺸﺭﻁ ﺍﻟﺫﻱ ﻴﺭﺍﺩ ﺍﻟﺘﺤﻘﻕ ﻤﻨﻪ ﺃﻤﺎ )‪(statement‬‬
‫ﻓﻬﻲ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺫﻱ ﺴﻴﺘﻡ ﺘﻨﻔﻴﺫﻫﺎ ﻓﻲ ﺤﺎل ﺘﺤﻘﻕ ﺍﻟﺸﺭﻁ‪ .‬ﻭﻻﺤﻅ ﺃﻥ ﻋﻼﻤﺔ ﺍﻟﻔﺎﺼﻠﺔ‬
‫ﺍﻟﻤﻨﻘﻭﻁﺔ ﺘﻭﻀﻊ ﻓﻘﻁ ﺒﻌﺩ )‪ (statement‬ﻭﻻﻴﻭﻀﻊ ﺒﻌﺩ )‪ (if‬ﺃﻱ ﻓﺎﺼﻠﺔ ﻤﻨﻘﻭﻁﺔ‪.‬‬
‫ﻻﺤﻅ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ‪.‬‬
‫>‪#include<stdio.h‬‬
‫)( ‪main‬‬
‫{‬
‫;‪int a‬‬
‫;)"‪printf("enter a number greater than 10:\n‬‬
‫ﻻﺒﺩ ﻤﻥ ﻜﺘﺎﺒﺔ ﺍﻟﻌﻼﻤﺔ)&( ﺤﺘﻰ ﻴﺘﻌﺭﻑ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻋﻠﻰ *‪scanf("%d",&a); /‬‬
‫‪*/‬ﻋﻨﻭﺍﻥ ﺍﻟﺘﺨﺯﻴﻥ‬
‫ﻫﻨﺎ ﻴﺘﺤﻘﻕ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻫل ﻫﺫﺍ ﺍﻟﻌﺩﺩ ﺃﻗل ﻤﻥ ﻋﺸﺭﺓ ﺃﻡ ﻻ ﻓﺈﺫﺍ ﻜﺎﻥ *‪if (a <10) /‬‬
‫ﺃﻗل ﻤﻥ ‪ ١٠‬ﺴﺘﻨﻔﺫ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ ﻭﻫﻲ‬

‫‪*/‬ﻋﻤﻠﻴﺔ ﻁﺒﺎﻋﺔ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ‬


‫;)"‪printf("the number you entered is not greater than 10\n‬‬
‫;‪return 0‬‬
‫}‬
‫ﻻﺤﻅ ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺇﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﻜﻠﻤﺔ ﺍﻟﻤﺤﺠﻭﺯﺓ )‪ (scanf‬ﻟﻜﻲ ﻨﻘﻭﻡ ﺒﺄﺨﺫ ﻗﻴﻤﺔ‬
‫ﻤﺎ ﻤﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻭﻭﻀﻌﻬﺎ ﻓﻲ ﺍﻟﻤﺘﻐﻴﺭ )‪.(a‬ﻓﻲ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻜﻨﺎ ﻨﺭﻴﺩ ﻤﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ‬
‫ﺃﻥ ﻴﺩﺨل ﻟﻨﺎ ﻋﺩﺩ ﺃﻜﺒﺭ ﻤﻥ )‪ (10‬ﻟﻜﻥ ﻤﺎﺫﺍ ﻟﻭ ﺃﺩﺨل ﺍﻟﻤﺴﺘﺨﺩﻡ ﻋﺩﺩﹰﺍ ﺃﻗل ﻤﻥ )‪(10‬‬
‫ﺒﺎﻟﺘﺄﻜﻴﺩ ﺴﻭﻑ ﻴﺅﺜﺭ ﻫﺫﺍ ﺍﻹﺩﺨﺎل ﻓﻲ ﺴﻴﺭ ﻋﻤل ﺍﻟﺒﺭﻨﺎﻤﺞ ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﻌﺘﻤﺩ‬
‫ﻋﻠﻰ ﻫﺫﻩ ﺍﻟﻘﻴﻤﺔ‪ .‬ﻭﻟﻜﻥ ﻓﻲ ﺒﺭﻨﺎﻤﺠﻨﺎ ﻫﺫﺍ ﻻ ﻴﻬﻡ ﺍﻟﻌﺩﺩ ﺍﻟﻤﺩﺨل ﻭﺫﻟﻙ ﻟﻌﺩﻡ ﺇﺘﺼﺎل‬
‫ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﻌﻤﻠﻴﺎﺕ ﺃﺨﺭﻯ ﻤﺒﻨﻴﺔ ﻋﻠﻰ ﻫﺫﺍ ﺍﻟﻤﺩﺨل ﻭﺇﻨﻤﺎ ﻜﺎﻥ ﺍﻟﻬﺩﻑ ﻫﻭ ﺍﻟﺘﺤﻘﻕ ﻓﻘﻁ‬
‫ﻫل ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺃﻜﺒﺭ ﻤﻥ )‪ (10‬ﺃﻡ ﻻ‪ .‬ﻭﻜﻤﺎ ﻗﻠﻨﺎ ﺴﺎﺒﻘﹰﺎ ﺃﻥ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﻲ ﺘﻠﻲ ﺍﻟﺸﺭﻁ‬
‫ﺘﻨﻔﺫ ﻓﻘﻁ ﻓﻲ ﺤﺎل ﺘﺤﻘﻕ ﺍﻟﺸﺭﻁ‪ .‬ﻟﻭ ﺃﺩﺨﻠﻨﺎ ﻟﻠﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺍﻟﻌﺩﺩ )‪ (5‬ﻭﻻﺤﻅ ﺃﻨﻪ ﺃﻗل‬
‫ﻤﻥ ﺍﻟﻌﺩﺩ )‪ (10‬ﺃﻱ ﺃﻨﻪ ﻋﻨﺩ ﺍﻟﺠﻤﻠﺔ )‪ (if‬ﺴﻭﻑ ﻴﻜﻭﻥ ﺸﻜل ﺍﻟﺸﺭﻁ ﺒﻌﺩ ﺍﻟﺘﻌﻭﻴﺽ‬
‫ﻋﻥ ﺍﻟﻘﻴﻤﺔ )‪ (5<10‬ﻫل ﺼﺤﻴﺢ ﺃﻥ ﺍﻟﻌﺩﺩ )‪ (5‬ﺃﻗل ﻤﻥ ﺍﻟﻌﺩﺩ )‪ (10‬ﻭﺒﺎﻟﻁﺒﻊ ﺍﻟﻨﺎﺘﺞ‬
‫ﺼﺢ ﻟﺫﻟﻙ ﺴﻭﻑ ﻴﺘﺤﻘﻕ ﺍﻟﺸﺭﻁ ﻭﺴﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﻲ ﺘﻠﻲ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﻭﻫﻲ‬
‫ﻁﺒﺎﻋﺔ ﺍﻟﺠﻤﻠﺔ )‪(the number you entered is not greater than 10‬‬
‫ﺃﻱ ﺍﻟﻌﺩﺩ ﺍﻟﻤﺩﺨل ﻟﻴﺱ ﺃﻗل ﻤﻥ )‪ (10‬ﺒﻴﻨﻤﺎ ﺇﺫﺍ ﺃﺩﺨﻠﻨﺎ ﻋﺩﺩﹰﺍ ﺃﻜﺒﺭ ﻤﻥ )‪ (10‬ﻟﻥ ﻴﻅﻬﺭ‬
‫ﺸﻲﺀ ﻭﺫﻟﻙ ﻷﻨﻨﺎ ﻟﻡ ﻨﺤﺩﺩ ﻟﻠﺒﺭﻨﺎﻤﺞ ﻤﺎﺫﺍ ﻴﻔﻌل ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻌﺩﺩ ﺍﻟﻤﺩﺨل ﺃﻜﺒﺭ ﻤﻥ )‪.(10‬‬
‫ﻭﻻﺤﻅ ﻫﻨﺎ ﺃﻨﻪ ﻟﻭ ﻗﻤﻨﺎ ﺒﺈﻀﺎﻓﺔ ﺠﻤﻠﺔ ﻁﺒﺎﻋﺔ ﺃﺨﺭﻯ ﺒﻌﺩ ﺠﻤﻠﺔ ﺍﻟﻁﺒﺎﻋﺔ ﺍﻟﺴﺎﺒﻘﺔ ﺴﻭﻑ‬
‫ﻴﺘﻡ ﺘﻨﻔﻴﺫﻫﺎ ﺴﻭﺍﺀﹰﺍ ﺘﺤﻘﻕ ﺍﻟﺸﺭﻁ ﺃﻡ ﻻ‪.‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫ﺠﺭﺏ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﻭﺃﺩﺨل ﻓﻲ ﺍﻟﻤﺭﺓ ﺍﻷﻭﻟﻰ ﻋﺩﺩﹰﺍ ﺃﻗل ﻤﻥ )‪ (10‬ﻭﻓﻲ ﺍﻷﺨﺭﻯ‬
‫ﺃﻜﺒﺭ ﻤﻥ )‪ (10‬ﻭﻻﺤﻅ ﺍﻟﻔﺭﻕ ﺒﻴﻥ ﺍﻟﻨﺎﺘﺠﻴﻥ‪ .‬ﺜﻡ ﺃﻀﻑ ﺍﻟﺠﻤﻠﺔ )‬
‫;)"‪ (printf("welcome in my pro‬ﺒﻌﺩ ﺠﻤﻠﺔ ﺍﻟﻁﺒﺎﻋﺔ ﺍﻟﺴﺎﺒﻘﺔ ﺜﻡ ﺃﻋﺩ ﺘﺠﺭﺒﺔ‬
‫ﺍﻟﺒﺭﻨﺎﻤﺞ ﻤﺭﺓ ﺃﺨﺭﻯ‪ .‬ﻭﻻﺤﻅ ﺍﻟﻔﺭﻕ‪.‬‬
‫ﻓﻲ ﺍﻟﻔﻘﺭﺓ ﺍﻟﺴﺎﺒﻘﺔ ﺘﻌﺭﻓﻨﺎ ﺃﻥ ﻟﻐﺔ ﺍﻟﺴﻲ ﺘﻌﺘﺭﻑ ﻓﻘﻁ ﺒﺠﻤﻠﺔ ﻭﺍﺤﺩﺓ ﻓﻘﻁ ﺒﻌﺩ ﻋﻤﻠﻴﺔ‬
‫ﺍﻟﺸﺭﻁ‪ .‬ﻭﻟﻜﻨﻬﺎ ﺃﻴﻀﹰﺎ ﺘﻌﻁﻲ ﻟﻠﻤﺒﺭﻤﺞ ﺃﻥ ﻴﺴﺘﺨﺩﻡ ﺃﻜﺜﺭ ﻤﻥ ﺠﻤﻠﺔ ﺒﻌﺩ ﻋﻤﻠﻴﺔ ﺍﻟﺸﺭﻁ‬
‫ﻭﺫﻟﻙ ﻋﻠﻰ ﺍﻟﺼﻭﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫)‪If (expression‬‬
‫{‬
‫;‪statement1‬‬
‫;‪statement2‬‬
‫‪………………..‬‬
‫‪………………..‬‬
‫;‪statement n‬‬
‫}‬
‫ﻻﺤﻅ ﺃﻨﻪ ﺘﺴﺘﻁﻴﻊ ﺃﻥ ﺘﺴﺘﺨﺩﻡ ﺃﻜﺜﺭ ﻤﻥ ﺠﻤﻠﺔ ﻭﺍﺤﺩﺓ ﺒﻌﺩ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺸﺭﻁﻴﺔ ﻭﻟﻜﻥ‬
‫ﻴﻨﺒﻐﻲ ﺃﻥ ﺘﻜﻭﻥ ﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ ﺍﻟﻌﻼﻤﺘﻴﻥ )} {(‪ .‬ﺤﺎﻭل ﺘﻁﺒﻴﻕ ﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﺔ ﻋﻠﻰ‬
‫ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﻭﻻﺤﻅ ﺍﻟﻔﺭﻕ‪.‬‬

‫• ﺇﺴﺘﺨﺩﺍﻡ ﺍﻟﺠﻤﻠﺔ )‪:(if ---- else‬‬


‫ﻭﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﺔ ﻋﻠﻰ ﺃﺴﺎﺱ ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﺸﺭﻁ ﺼﺤﻴﺤﹰﺎ ﻓﺈﻓﻌل ﻜﺫﺍ ﻭﺇﻥ ﻟﻡ ﻴﻜﻥ‬
‫ﺼﺤﻴﺤﹰﺎ ﻓﺈﻋﻤل ﻜﺫﺍ ﻭﺍﻟﺼﻭﺭﺓ ﺍﻟﻌﺎﻤﺔ ﻟﻬﺎ ﻫﻲ ‪:‬‬
‫)‪If (expression‬‬
‫;‪Statement1‬‬
‫‪Else‬‬
‫;‪Statement2‬‬
‫ﻭﻻﺤﻅ ﺃﻴﻀﹰﺎ ﺃﻨﻪ ﻻﺒﺩ ﻤﻥ ﺠﻤﻠﺔ ﻭﺍﺤﺩﺓ ﻓﻘﻁ ﺒﻌﺩ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺸﺭﻁﻴﺔ ﻭﻴﻤﻜﻥ ﺤﺼﺭ ﻋﺩﺩ‬
‫{( ﻜﻤﺎ ﺫﻜﺭﻨﺎ ﺴﺎﺒﻘﹰﺎ ‪ .‬ﻭﻟﻜﻲ ﻴﺘﻡ ﻓﻬﻡ ﻫﺫﻩ ﺍﻟﻌﺒﺎﺭﺓ‬ ‫ﻤﻥ ﺍﻟﺠﻤل ﺒﻴﻥ ﺍﻟﻌﻼﻤﺘﻴﻥ )}‬
‫ﺠﻴﺩﹰﺍ ﻨﺄﺨﺫ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺍﻟﺫﻱ ﻗﻤﻨﺎ ﺒﻪ ﻭﻨﻌﺩل ﻓﻴﻪ ﺒﺤﻴﺙ ﻴﻜﻭﻥ ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻌﺩﺩ ﺍﻟﻤﺩﺨل‬
‫ﺃﻗل ﻤﻥ ﺍﻟﻌﺩﺩ )‪ (10‬ﻴﻘﻭﻡ ﺒﻁﺒﺎﻋﺔ ﺃﻥ ﺍﻟﻌﺩﺩ ﺃﻗل ﻤﻥ )‪ (10‬ﻭﺇﻻ ﻴﺘﻡ ﻁﺒﺎﻋﺔ ﺃﻥ ﺍﻟﻌﺩﺩ‬
‫ﺍﻟﻤﺩﺨل ﺃﻜﺒﺭ ﻤﻥ )‪.(10‬ﻻﺤﻅ ﺍﻟﻤﺜﺎل ﺒﻌﺩ ﺍﻟﺘﻌﺩﻴل‪:‬‬
‫>‪#include<stdio.h‬‬
‫)( ‪main‬‬
‫{‬
‫;‪int a‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫;)"‪printf("enter a number greater than 10:\n‬‬
‫ﻻﺒﺩ ﻤﻥ ﻜﺘﺎﺒﺔ ﺍﻟﻌﻼﻤﺔ)&( ﺤﺘﻰ ﻴﺘﻌﺭﻑ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻋﻠﻰ *‪scanf("%d",&a); /‬‬
‫‪*/‬ﻋﻨﻭﺍﻥ ﺍﻟﺘﺨﺯﻴﻥ‬
‫ﻫﻨﺎ ﻴﺘﺤﻘﻕ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻫل ﻫﺫﺍ ﺍﻟﻌﺩﺩ ﺃﻗل ﻤﻥ ﻋﺸﺭﺓ ﺃﻡ ﻻ ﻓﺈﺫﺍ ﻜﺎﻥ *‪if (a <10) /‬‬
‫ﺃﻗل ﻤﻥ ‪ ١٠‬ﺴﺘﻨﻔﺫ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ ﻭﻫﻲ‬

‫‪*/‬ﻋﻤﻠﻴﺔ ﻁﺒﺎﻋﺔ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ‬


‫;)"‪printf("the number you entered is not greater than 10\n‬‬
‫‪else‬‬
‫;)"‪printf("the number you entered is greater than 10\n‬‬
‫;‪return 0‬‬
‫}‬
‫ﻁﺒﻕ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﻭﺃﻨﻅﺭ ﻟﻠﻨﺘﺎﺌﺞ ﺒﻨﻔﺴﻙ‪.‬‬

‫‪.(if‬‬ ‫‪elseif‬‬ ‫‪elseif‬‬ ‫• ﺍﻟﺠﻤل ﺍﻟﺸﺭﻁﻴﺔ ﺍﻟﻤﺘﻌﺩﺩﺓ ) ‪else‬‬


‫ﻭﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻋﺎﺩﺓ ﻟﻠﺘﺤﻘﻕ ﻤﻥ ﺃﻜﺜﺭ ﻤﻥ ﺸﺭﻁ ﻭﺫﻟﻙ ﻋﻠﻰ ﺍﻟﻁﺭﻴﻘﺔ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫)‪If (expression‬‬
‫;‪Statement1‬‬
‫‪Else‬‬
‫)‪if (expression‬‬
‫;‪Statement2‬‬
‫‪Else‬‬
‫;‪Statement3‬‬
‫ﻭﺘﺴﺘﻁﻴﻊ ﺃﻥ ﺘﺩﺨل ﺩﺭ ﻤﺎ ﺘﺸﺎﺀ ﻤﻥ ﺍﻟﺠﻤل ﺍﻟﺸﺭﻁﻴﺔ ﻻﺤﻅ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﺍﻟﺫﻱ ﻴﻘﻭﻡ‬
‫ﺒﻔﺤﺹ ﺍﻟﻌﺩﺩ ﺍﻟﻤﺩﺨل ﻫل ﻫﺫﺍ ﺍﻟﻌﺩﺩ ﻴﻨﺘﻤﻲ ﻟﻸﻋﺩﺍﺩ ﻓﻲ ﻤﺩﺍﺭ ﻤﻌﻴﻥ ﺃﻤﺎ ﻻ‪.‬‬
‫>‪#include<stdio.h‬‬
‫)( ‪main‬‬
‫{‬
‫;‪int a‬‬
‫;)"‪printf("enter a number greater than 10:\n‬‬
‫;)‪scanf("%d",&a‬‬
‫ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﺸﺭﻁﻴﻥ ﺼﺤﻴﺤﻴﻥ ﺴﻭﻑ ﺘﻨﻔﺫ ﺍﻟﺠﻤﻠﺔ *‪if ( a>=0 && a<=10) /‬‬
‫ﺍﻟﺘﻲ ﺘﻠﻴﻬﺎ ﺭﺍﺠﻊ ﺩﺭﺱ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﻟﻤﻌﻠﻭﻤﺎﺕ‬

‫‪ (&&)*/‬ﺃﻜﺜﺭ ﻋﻥ ﺍﻟﺘﻌﻠﻴﻤﺔ‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫;)"‪printf("the number you entered is between 0 and 10:\n‬‬
‫‪else‬‬
‫ﺇﺫﺍ ﻜﺎﻨﺕ ﺍﻟﺠﻤﻠﺘﻴﻥ ﺼﺤﻴﺤﺘﻴﻥ ﺘﻨﻔﺫ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﻲ *‪if (a>10 && a<=20) /‬‬
‫ﺘﻠﻴﻬﺎ ﻭﺃﻴﻀﹰﺎ ﺭﺍﺠﻊ ﺩﺭﺱ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﻟﻤﻠﻌﻭﻤﺎﺕ‬

‫‪ (&&)*/‬ﺃﻜﺜﺭ ﻋﻥ ﺍﻟﺘﻌﻠﻴﻤﺔ‬
‫‪printf("the number you entered is between 11 and‬‬
‫;)"‪20:\n‬‬
‫‪else printf("the number you entered is greater than‬‬
‫;)"‪21.\n‬‬
‫;‪return 0‬‬
‫}‬

‫• ﺇﺴﺘﺨﺩﺍﻡ ﺍﻟﺠﻤﻠﺔ )‪:(switch‬‬


‫ﻼ ﺒﺭﻨﺎﻤﺞ‬‫ﻭﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻋﺎﺩﹰﺓ ﻋﻨﺩﻤﺎ ﻴﻜﻭﻥ ﺒﺭﻨﺎﻤﺠﻙ ﻴﻘﻭﻡ ﺒﺄﻜﺜﺭ ﻤﻥ ﻤﻬﻤﺔ ﻤﺜ ﹰ‬
‫ﻟﻶﻟﺔ ﺍﻟﺤﺎﺴﺒﺔ ﻴﻌﻤل ﺠﻴﺩﹰﺍ ﻓﻲ ﺤﻴﻥ ﺇﺴﺘﺨﺩﻤﻨﺎ ﻫﺫﻩ ﺍﻟﻁﺭﻴﻘﺔ ﻤﻌﻪ‪ .‬ﻭﺍﻟﺼﻭﺭﺓ ﺍﻟﻌﺎﻤﺔ‬
‫ﻟﻬﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻫﻭ ‪:‬‬
‫)‪Switch (expression‬‬
‫{‬
‫‪case constant 1:‬‬
‫‪statements‬‬
‫;‪break‬‬
‫‪case constant2:‬‬
‫‪statements‬‬
‫;‪break‬‬
‫‪case constant n:‬‬
‫‪statements‬‬
‫;‪break‬‬
‫‪default:‬‬
‫;‪statement‬‬
‫}‬
‫ﻤﻥ ﺍﻟﻨﻅﺭ ﺇﻟﻴﻬﺎ ﻭﻟﻠﻭﻫﻠﺔ ﺍﻷﻭﻟﻰ ﻴﻌﺘﻘﺩ ﺃﻨﻬﺎ ﻤﻌﻘﺩﺓ ﻭﻟﻜﻥ ﻓﻲ ﺤﻘﻴﻘﺔ ﺍﻷﻤﺭ ﺘﻌﺘﺒﺭ ﻫﺫﻩ‬
‫ﺍﻟﺠﻤﻠﺔ ﻤﻥ ﺃﺴﻬل ﺍﻟﺠﻤل ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ‪ .‬ﻭﻨﻌﻨﻲ ﺏ )‪ (case constant‬ﺃﻱ ﺭﻗﻡ‬
‫ﺍﻟﺤﺎﻟﺔ ﺃﻭ ﺍﻟﺨﻴﺎﺭ ﺍﻟﺫﻱ ﺇﺫﺍ ﻤﺎ ﺃﺩﺨل ﺴﻭﻑ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻟﺠﻤل ﺍﻟﺘﻲ ﺘﻠﻴﻪ )‪(statement‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫ﺜﻡ ﺒﻌﺩ ﺫﻟﻙ ﻨﺠﺩ ﺍﻟﺠﻤﻠﺔ )‪ (break‬ﻭﻫﻲ ﺘﺴﺘﺨﺩﻡ ﻟﻠﺨﺭﻭﺝ ﻤﻥ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ‪ .‬ﻷﻥ‬
‫ﺍﻟﻐﺭﺽ ﺍﻟﻤﻁﻠﻭﺏ ﻗﺩ ﺘﻡ ﺘﻨﻔﻴﺫﻩ ﻟﺫﻟﻙ ﻻ ﻴﻭﺠﺩ ﺤﺎﺠﺔ ﻟﺘﻔﺤﺹ ﺍﻟﺤﺎﻻﺕ ﺍﻟﺘﺎﻟﻴﺔ‪ .‬ﺜﻡ ﻨﺠﺩ‬
‫ﻓﻲ ﺍﻟﻨﻬﺎﻴﺔ ﺍﻟﻜﻠﻤﺔ )‪ (default:‬ﻭﻫﻲ ﺘﻌﻨﻲ ﺃﻨﻪ ﻓﻲ ﺤﺎل ﺘﻔﺤﺹ ﺠﻤﻴﻊ ﺍﻟﺤﺎﻻﺕ‬
‫ﺍﻟﻤﺩﺭﺠﺔ ﻭﻟﻡ ﻴﺠﺩ ﻤﻁﺎﺒﻘﺔ ﻓﺈﻨﻪ ﻴﻘﻭﻡ ﺒﺘﻨﻔﻴﺫ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺘﻲ ﺘﻠﻴﻪ‪ .‬ﻭﻟﻜﻲ ﺘﺘﻀﺢ ﺍﻟﻔﻜﺭﺓ‬
‫ﺃﻜﺜﺭ ﺴﻨﺼﻨﻊ ﺒﺭﻨﺎﻤﺞ ﺁﻟﺔ ﺤﺎﺴﺒﺔ ﺘﻘﻭﻡ ﻓﻘﻁ ﺒﺠﻤﻊ ﺃﻭ ﻁﺭﺡ ﻋﺩﺩﻴﻥ ﻓﻘﻁ ﻭﻴﻤﻜﻨﻙ ﺃﻥ‬
‫ﺘﺠﻌل ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﻘﻭﻡ ﺒﺠﻤﻴﻊ ﺍﻟﻌﻤﻠﻴﺎﺕ ‪.‬ﻻﺤﻅ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫>‪#include<stdio.h‬‬
‫)( ‪main‬‬
‫{‬
‫ﺤﺠﺯﻨﺎ ﺜﻼﺜﺔ ﺃﻋﺩﺍﺩ ﻟﻜﻲ ﻨﻘﻭﻡ ﺒﺎﻟﻌﻠﻤﻴﺔ ﺍﻟﺤﺴﺎﺒﻴﺔ *‪int num1,num2,result;/‬‬
‫‪*/‬ﻋﻠﻰ ﻋﺩﺩﻴﻥ ﻭﻨﻀﻊ ﺍﻟﻨﺎﺘﺞ ﻓﻲ ﺍﻟﺜﺎﻟﺙ‬
‫ﺤﺠﺯﻨﺎ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻤﻥ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻭﺫﻟﻙ ﺤﺘﻰ ﻴﺘﻡ ﺇﺨﺘﻴﺎﺭ ﺍﻟﻌﻤﻠﻴﺔ *‪char ch; /‬‬
‫ﻼ ﻋﻼﻤﺔ ﺍﻟﺠﻤﻊ )‪ (+‬ﺘﻌﺘﺒﺭ ﻤﺘﻐﻴﺭ ﺤﺭﻓﻲ‬ ‫‪*/‬ﺍﻟﺤﺴﺎﺒﻴﺔ ﻤﺜ ﹰ‬
‫‪ */‬ﺍﺨﺘﺭ )‪ (+‬ﻟﻌﻤﻠﻴﺔ ﺍﻟﺠﻤﻊ*‪printf("enter + to add numbers:\n");/‬‬
‫ﺍﺨﺘﺭ )‪ (-‬ﻟﻌﻤﻠﻴﺔ *‪printf("enter - to subtract numbers:\n");/‬‬
‫‪*/‬ﺍﻟﻁﺭﺡ‬
‫‪*/‬ﻟﻨﺄﺨﺫ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺘﻲ ﻴﺭﻴﺩﻫﺎ ﺍﻟﻤﺴﺘﺨﺩﻡ*‪scanf("%c",&ch); /‬‬
‫)‪switch (ch‬‬
‫{‬
‫‪case '+':‬‬
‫;)"‪printf("enter the first number:\n‬‬
‫‪*/‬ﻴﺄﺨﺫ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻷﻭل*‪scanf("%d",&num1);/‬‬
‫;)"‪printf("enter the second number:\n‬‬
‫‪*/‬ﻴﺄﺨﺫ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻟﺜﺎﻨﻲ*‪scanf("%d",&num2);/‬‬
‫;‪result=num1+num2‬‬
‫;)‪printf("result=%d +%d = %d",num1,num2,result‬‬
‫;‪break‬‬
‫‪case '-':‬‬
‫;)"‪printf("enter the first number:\n‬‬
‫‪*/‬ﻴﺄﺨﺫ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻷﻭل*‪scanf("%d",&num1);/‬‬
‫;)"‪printf("enter the second number:\n‬‬
‫‪*/‬ﻴﺄﺨﺫ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻟﺜﺎﻨﻲ*‪scanf("%d",&num2);/‬‬
‫;‪result=num1-num2‬‬
‫;)‪printf("result=%d -%d = %d",num1,num2,result‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫;‪break‬‬
‫‪default:‬‬
‫;)"‪printf("unknown option:\n‬‬
‫;‪break‬‬
‫}‬
‫;‪return 0‬‬
‫}‬
‫ﻟﻭ ﺤﺎﻭﻟﺕ ﻫﻨﺎ ﺇﺩﺨﺎل ﺃﻱ ﺨﻴﺎﺭ ﺁﺨﺭ ﻏﻴﺭ )‪ (+‬ﻭ )‪ (-‬ﻓﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﺍﻟﺠﻤﻠﺔ )‬
‫‪ (unknown option‬ﺃﻱ ﺃﻥ ﺍﻹﺤﺘﻤﺎل ﺍﻟﺫﻱ ﺃﺩﺨﻠﺘﻪ ﻏﻴﺭ ﻤﻌﺭﻑ ﻟﺩﻯ ﺍﻟﺒﺭﻨﺎﻤﺞ‪.‬‬
‫ﻭﺒﻬﺫﺍ ﻨﻜﻭﻥ ﻗﺩ ﺇﻨﺘﻬﻴﻨﺎ ﻤﻥ ﺠﺯﺌﻴﺔ ﺍﻟﺠﻤل ﺍﻟﺸﺭﻁﻴﺔ ﻭﺃﺘﻤﻨﻰ ﺃﻥ ﺘﻜﻭﻥ ﻤﻔﻬﻭﻤﺔ ﻟﺩﻯ‬
‫ﺍﻟﺠﻤﻴﻊ‪.‬‬

‫ﻭﺘﻘﺒﻠﻭﺍ ﺨﺎﻟﺹ ﺘﺤﻴﺎﺕ ﺃﺨﻭﻜﻡ ﺍﻟﻤﺤﺏ )‪(The-oNe‬‬


‫ﺍﻟﺭﺠﺎﺀ ﺇﺭﺴﺎل ﻤﻘﺘﺭﺤﺎﺘﻜﻡ ﻭﺁﺭﺍﺌﻜﻡ ﻋﻠﻰ ﺍﻟﻌﻨﺎﻭﻴﻥ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪The-one@pharaonics.net‬‬
‫‪OR‬‬
‫‪The_o0ne@hotmail.com‬‬
‫‪OR‬‬
‫‪The_o0one@yahoo.com‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫ﺒﺴﻡ ﺍﷲ ﺍﻟﺭﺤﻤﻥ ﺍﻟﺭﺤﻴﻡ‬

‫• ﺍﻹﺘﻔﺎﻗﻴﺔ‪:‬‬
‫ﻟﻘﺩ ﻜﺘﺒﺕ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻟﻐﺭﺽ ﺘﺜﻘﻴﻑ ﺍﻟﺸﺒﺎﺏ ﺍﻟﻌﺭﺒﻲ ﻓﻲ ﻤﺠﺎل ﻋﻠﻭﻡ ﺍﻟﺤﺎﺴﺏ ﺍﻵﻟﻲ‪.‬‬
‫ﻭﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻤﺠﺎﻨﻲ ﻟﻠﺠﻤﻴﻊ ﻭﻻ ﺃﺭﻴﺩ ﻤﻥ ﻭﺭﺍﺌﻪ ﺇﻻ ﺸﻲﺀ ﺒﺴﻴﻁ ﺠﺩﹰﺍ ﻭﻫﻭ ﺩﻋﻭﺓ‬
‫ﺼﺎﻟﺤﺔ ﻓﻲ ﻅﻬﺭ ﺍﻟﻐﻴﺏ ﻟﻲ ﻭﻟﺠﻤﻴﻊ ﺃﺨﻭﺍﻨﻨﺎ ﺍﻟﻤﺴﻠﻤﻴﻥ ﻓﻲ ﺃﻨﺤﺎﺀ ﺍﻟﻌﺎﻟﻡ‪.‬ﻜﻤﺎ ﺃﺭﺠﻭﺍ ﺃﻥ‬
‫ﻻ ﻴﺘﻡ ﺍﻟﺘﻌﺩﻴل ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻭﺇﻨﺴﺎﺒﻪ ﺇﻟﻰ ﻏﻴﺭﻱ ﻷﻨﻲ ﻗﺩ ﺘﻌﺒﺕ ﻓﻴﻪ ﻜﺜﻴﺭﹰﺍ‪ .‬ﻜﻤﺎ‬
‫ﺃﻨﻨﻲ ﺃﺅﺅﻜﺩ ﺃﻨﻨﻲ ﺃﺭﺤﺏ ﻭﺒﻜل ﺴﻌﺔ ﺼﺩﺭ ﺒﺎﻟﻨﻘﺩ ﺍﻟﺒﻨﺎﺀ ﺍﻟﺫﻱ ﻴﺴﺘﻔﻴﺩ ﻤﻨﻪ ﺍﻟﺠﻤﻴﻊ‪ .‬ﻜﻤﺎ‬
‫ﺃﻨﻪ ﺇﺫﺍ ﻭﺠﺩﺕ ﻋﺯﻴﺯﻱ ﺍﻟﻘﺎﺭﺉ ﺃﻱ ﺃﺨﻁﺎﺀ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻴﺭﺠﻰ ﺃﺨﺒﺎﺭﻱ ﺒﻬﺎ ﻭﺴﻴﺘﻡ‬
‫ﻭﻀﻊ ﺃﺴﻤﻙ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻤﻊ ﺍﻟﺘﻌﺩﻴل‪ .‬ﻜﻤﺎ ﺃﻨﻲ ﺃﺭﺤﺏ ﺃﻥ ﻴﺸﺘﺭﻙ ﻤﻌﻲ ﺃﻱ‬
‫ﺸﺨﺹ ﻹﻀﺎﻓﺔ ﺍﻟﻤﺯﻴﺩ ﻤﻥ ﺍﻟﺩﺭﻭﺱ ﻟﻬﺫﺍ ﺍﻟﻤﻠﻑ ﻭﺴﻴﺘﻡ ﻭﻀﻊ ﺃﺴﻤﻪ ﺃﻴﻀﹰﺎ ﻭﺫﻟﻙ‬
‫ﺤﺘﻰ ﻴﻜﻭﻥ ﻫﻨﺎﻙ ﻤﺭﺠﻊ ﻋﺭﺒﻲ ﻟﻠﻐﺔ ﺍﻟﺴﻲ‪.‬‬

‫• ﺠﻤل ﺍﻟﺘﻜﺭﺍﺭ‪:‬‬
‫• ﺠﻤﻠﺔ ﺍﻟﺘﻜﺭﺍﺭ )‪:(for‬‬
‫ﻓﻲ ﺒﻌﺽ ﺍﻷﺤﻴﺎﻥ ﻨﺤﺘﺎﺝ ﺃﻥ ﻨﻘﻭﻡ ﺒﻌﻤل ﻤﻌﻴﻥ ﻋﺩﺩ ﻤﻌﻴﻥ ﻤﻥ ﺍﻟﻤﺭﺍﺕ ﺩﻭﻥ ﺘﻐﻴﻴﺭ‬
‫ﻭﺤﻴﺙ ﺃﻨﻪ ﻤﻥ ﺍﻟﺼﻌﺏ ﺘﻨﻔﻴﺫ ﻫﺫﺍ ﺍﻟﻌﻤل ﺇﺫﺍ ﻜﺎﻥ ﻋﺩﺩ ﻤﺭﺍﺕ ﺍﻟﺘﻜﺭﺍﺭ ﻜﺒﻴﺭﺓ ﺠﺩﹰﺍ ﻟﺫﻟﻙ‬
‫ﻭﺠﺩ ﺍﻟﺒﺩﻴل ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ ﻟﻬﺫﺍ ﺍﻟﺘﻜﺭﺍﺭ ﺤﻴﺙ ﻋﻨﺩﻤﺎ ﻨﺴﺘﻌﻴﻥ ﺒﻬﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻓﺈﻨﻬﺎ ﺴﻭﻑ‬
‫ﺘﻘﻭﻡ ﺒﺘﻜﺭﺍﺭ ﺍﻟﻤﻬﻤﺔ ﺫﺍﺘﻬﺎ ﻋﺩﺩ ﻤﻌﻴﻥ ﻤﻥ ﺍﻟﻤﺭﺍﺕ ﻭﻫﺫﺍ ﺍﻟﺒﺩﻴل ﻫﻭ ﺇﺴﺘﺨﺩﺍﻡ ﺍﻟﺠﻤﻠﺔ )‬
‫‪ .(for‬ﻭﻴﻤﻜﻨﻨﺎ ﺃﻥ ﻨﻘﻭل ﺃﻥ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﺘﻘﻭﻡ ﺒﺘﻜﺭﺍﺭ ﻤﻬﻤﺔ ﻤﻌﻴﻨﺔ ﻴﺤﺩﺩﻫﺎ ﺍﻟﻤﺒﺭﻤﺞ ﺃﻭ‬
‫ﺍﻟﻤﺴﺘﺨﺩﻡ ﻟﻠﺒﺭﻨﺎﻤﺞ‪ .‬ﻭﺍﻟﺼﻭﺭﺓ ﺍﻟﻌﺎﻤﺔ ﻟﻬﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻫﻭ‪:‬‬
‫)‪For (expression1 ;expression2 ;expression3‬‬
‫;‪Statement‬‬
‫ﺤﻴﺙ ﺃﻥ ﺍﻟﺠﺯﺀ )‪ (expression1‬ﻴﻤﺜل ﻨﻘﻁﺔ ﺍﻟﺒﺩﺀ ﻟﻌﻤﻠﻴﺔ ﺍﻟﺘﻜﺭﺍﺭ ﺍﻟﺫﻱ ﺘﻭﺩ ﺍﻟﻘﻴﺎﻡ‬
‫ﺒﻬﺎ‪ .‬ﺃﻤﺎ )‪ (expression2‬ﻓﻬﻲ ﺘﻤﺜل ﻨﻘﻁﺔ ﺍﻟﺘﺤﻘﻕ ﺃﻱ ﻫل ﺴﻴﺘﻡ ﺇﻜﻤﺎل ﻫﺫﺍ ﺍﻟﺘﻜﺭﺍﺭ‬
‫ﺃﻤﺎ ﺃﻥ ﺍﻟﺘﻜﺭﺍﺭ ﻗﺩ ﺇﻨﺘﻬﻰ‪ .‬ﺃﻤﺎ )‪ (expression3‬ﻓﻬﻲ ﺘﻤﺜل ﻤﻘﺩﺍﺭ ﺍﻟﺯﻴﺎﺩﺓ ﺍﻟﺘﻲ‬
‫ﺴﻴﺘﻡ ﻓﻴﻬﺎ ﻜل ﻤﺭﺓ ﺍﻟﺯﻴﺎﺩﺓ‪ .‬ﻭﻻﺤﻅ ﺃﻨﻪ ﻴﺘﻡ ﺍﻟﻔﺼل ﺒﻴﻥ ﻫﺫﻩ ﺍﻷﺠﺯﺍﺀ ﺍﻟﺜﻼﺜﺔ ﺒﻔﺎﺼﻠﺔ‬
‫ﻤﻨﻘﻭﻁﺔ );( ‪ .‬ﻭﻨﺠﺩ ﻓﻲ ﺍﻟﻨﻬﺎﻴﺔ ﻤﺎ ﻴﺴﻤﻰ ﺏ )‪ (statement‬ﻭﻫﻲ ﺘﻌﻨﻲ ﺍﻟﺠﻤﻠﺔ‬
‫ﺍﻟﺘﻲ ﺴﺘﻨﻔﺫ ﻓﻲ ﻜل ﻤﺭﺓ ﺘﺘﻡ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻜﺭﺍﺭ ﻭﺍﻹﻓﺘﺭﺍﻀﻲ ﻭﺠﻭﺩ ﺠﻤﻠﺔ ﻭﺍﺤﺩ ﻓﻘﻁ‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫{‬ ‫ﻭﻟﻜﻥ ﻴﻤﻜﻨﻨﺎ ﺇﻀﺎﻓﺔ ﺃﻜﺜﺭ ﻤﻥ ﺠﻤﻠﺔ ﻭﺫﻟﻙ ﻤﻥ ﺨﻼل ﺤﺼﺭﻫﺎ ﺒﻴﻥ ﺍﻟﻌﻼﻤﺘﻴﻥ )‬
‫}(‪ .‬ﻭﻴﻤﻜﻨﻨﺎ ﻤﻌﺭﻓﺔ ﻤﻴﻜﺎﻨﻴﻜﻴﺔ ﻋﻤل ﺍﻟﺠﻤﻠﺔ )‪ (for‬ﻤﻥ ﺨﻼل ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪ .١‬ﻋﻨﺩ ﻴﺄﺘﻲ ﺍﻟﺩﻭﺭ ﻋﻠﻰ ﺘﻨﻔﻴﺫ ﺠﻤﻠﺔ )‪ (for‬ﻓﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻓﺈﻨﻪ ﺴﻴﺒﺩﺃ ﺏ )‬
‫‪ (expression1‬ﺤﺘﻰ ﻴﺭﻯ ﺍﻟﻘﻴﻤﺔ ﺍﻹﺒﺘﺩﺍﺌﻴﺔ ﻟﻬﺫﺍ ﺍﻟﺘﻜﺭﺍﺭ ﻭﻴﺴﻨﺩ ﻫﺫﻩ ﺍﻟﻘﻴﻤﺔ‬
‫ﻟﻠﻤﺘﻐﻴﺭ ﺍﻟﻤﻁﻠﻭﺏ‪.‬‬
‫‪ .٢‬ﺒﻌﺩ ﺃﻥ ﻴﺤﺼل ﺍﻟﻤﻔﺴﺭ ﻋﻠﻰ ﻨﻘﻁﺔ ﺍﻟﺒﺩﺀ ﻓﺈﻨﻪ ﻴﺘﺠﻪ ﺇﻟﻰ )‪ (expression‬ﺤﻴﺙ‬
‫ﺃﻨﻪ ﻫﻨﺎ ﻴﻘﻭﻡ ﺒﺎﻟﺘﺤﻘﻕ ﻤﻥ ﻗﻴﻤﺔ ﻫﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻫل ﻫﻲ ﺘﺤﻘﻕ ﺍﻟﺸﺭﻁ ﺍﻟﻤﻁﻠﻭﺏ ﺃﻤﺎ‬
‫ﻻ ﺃﻱ ﺃﻥ ﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭ ﻟﻥ ﻴﺘﻡ ﺘﻜﺭﺍﺭﻫﺎ ﺇﺫﺍ ﻜﺎﻥ ﻨﺎﺘﺞ ﺍﻟﺘﺤﻘﻕ ﻫﻭ ﺨﻁﺄ ‪.‬‬
‫‪ .٣‬ﺒﻌﺩ ﺍﻟﺘﺤﻘﻕ ﻤﻥ ﺍﻟﺸﺭﻁ ﻴﺘﺠﻪ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺇﻟﻰ ﺘﻨﻔﻴﺫ ﺍل )‪ (statement‬ﻭﻻﺤﻅ ﺃﻥ‬
‫)‪ (expression3‬ﻻ ﻴﺘﻡ ﺍﻟﻨﻅﺭ ﺇﻟﻴﻬﺎ ﺤﺎﻟﻴﹰﺎ ‪.‬‬
‫‪ .٤‬ﺒﻌﺩ ﺘﻨﻔﻴﺫ ﺍل )‪ (statement‬ﻴﺘﺠﻪ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺇﻟﻰ )‪ (expression3‬ﺤﻴﺙ ﻴﺘﻡ‬
‫ﺍﻟﺯﻴﺎﺩﺓ ﺃﻭ ﺍﻟﻨﻘﺹ ﻭﺫﻟﻙ ﻋﻠﻰ ﺤﺴﺏ ﺍﻟﺒﺭﻨﺎﻤﺞ‪.‬‬
‫‪ .٥‬ﺒﻌﺩ ﺘﻨﻔﻴﺫ )‪ (expression3‬ﻴﺘﺠﻪ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺇﻟﻰ )‪ (expression2‬ﻭﺫﻟﻙ ﺤﺘﻰ‬
‫ﻴﺘﻡ ﺍﻟﺘﺤﻘﻕ ﻫل ﺍﻟﻘﻴﻤﺔ ﺍﻟﺤﺎﻟﻴﺔ ﻟﻬﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﺘﺤﻘﻕ ﺍﻟﺸﺭﻁ ﻓﺈﺫﺍ ﻜﺎﻥ ﺼﺤﻴﺤﹰﺎ ﻨﻔﺫﺕ‬
‫ﺍل)‪ (statement‬ﻭﺇﺫﺍ ﻜﺎﻨﺕ ﺨﻁﺄ ﻴﺨﺭﺝ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻤﻥ ﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭ )‪.(for‬‬
‫ﻻﺤﻅ ﻤﻌﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺘﺎﻟﻲ ﺤﺘﻰ ﻴﺘﻡ ﻓﻬﻡ ﻫﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ‪.‬‬
‫>‪#include<stdio.h‬‬
‫ﻋﺸﺭ )‪ (hello world‬ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﺜﺎل ﺴﻭﻑ ﻨﻘﻭﻡ ﺒﻁﺒﺎﻋﺔ ﺍﻟﺠﻤﻠﺔ *‪main () /‬‬
‫‪*/‬ﻤﺭﺍﺕ‬
‫{‬
‫;‪int a‬‬
‫)‪for (a=1 ; a<=10 ;a++‬‬
‫;)"‪printf("hello world\n‬‬
‫;‪return 0‬‬
‫}‬
‫ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﺜﺎل ﺴﻭﻑ ﻴﺘﻡ ﻁﺒﺎﻋﺔ ﺍﻟﺠﻤﻠﺔ )‪ (hello world‬ﻋﺸﺭ ﻤﺭﺍﺕ‪.‬ﻜﻤﺎ ﻫﻭ‬
‫ﻭﺍﻀﺢ ﻓﻲ ﺍﻟﺘﻌﻠﻴﻕ ‪ .‬ﻭﻻﺤﻅ ﺃﻨﻪ ﻴﻤﻜﻨﻙ ﺃﻥ ﺘﺠﻌل ﺍﻟﺒﺩﺍﻴﺔ ﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭ ﻭﺍﻟﻨﻬﺎﻴﺔ‬
‫ﻤﻌﺘﻤﺩﺓ ﻋﻠﻰ ﺭﻏﺒﺔ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻻﺤﻅ ﻤﻌﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺫﻱ ﻴﻘﻭﻡ ﺒﻌﻤﻠﻴﺔ ﺘﻭﻟﻴﺩ ﺃﺭﻗﺎﻡ‬
‫ﻤﺘﺴﻠﺴﻠﺔ ‪.‬‬
‫>‪#include<stdio.h‬‬
‫‪*/‬ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﻘﻭﻡ ﺒﺘﻭﻟﻴﺩ ﺃﻋﺩﺍﺩ ﻤﺘﺴﻠﺴﻠﺔ*‪main () /‬‬
‫{‬
‫;‪int num1,num2,count‬‬
‫;)"‪printf("enter start point:\n‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫;)‪scanf("%d",&num1‬‬
‫;)"‪printf("enter the end point:\n‬‬
‫;)‪scanf("%d",&num2‬‬
‫)‪for (count=num1 ;count<=num2 ;count++‬‬
‫ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺴﺎﺒﻕ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺸﺭﻁ )>=( ﻭﺫﻟﻙ ﻟﻠﺘﺤﻘﻕ ﻫل ﻭﺼل ﺍﻟﺒﺭﻨﺎﻤﺞ *‪/‬‬

‫‪*/‬ﻟﻨﻘﻁﺔ ﺍﻟﻨﻬﺎﻴﺔ ﺃﻤﺎ ﻻ‬


‫;)‪printf("%d\n",count‬‬
‫;‪return 0‬‬
‫}‬
‫ﻻﺤﻅ ﻓﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﺃﻨﻪ ﺴﻭﻑ ﻴﻘﻭﻡ ﺒﺴﺭﺩ ﺠﻤﻴﻊ ﺍﻷﺭﻗﺎﻡ ﺍﻟﻤﺤﺼﻭﺭﺓ ﺒﻴﻥ‬
‫ﺍﻟﻌﺩﺩﻴﻥ ﺍﻟﻤﺩﺨﻠﻴﻥ‪ .‬ﻭﻫﻨﺎ ﻤﻥ ﺍﻟﺠﻴﺩ ﺫﻜﺭ ﺃﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﻻ ﻴﻌﺩ ﺒﺭﻨﺎﻤﺠﹰﺎ ﻜﺎﻤ ﹰ‬
‫ﻼ‬
‫ﻭﺫﻟﻙ ﻷﻨﻨﺎ ﻟﻭ ﻗﻤﻨﺎ ﺒﺈﺩﺨﺎل ﺍﻟﻌﺩﺩ ﺍﻷﻭل ﺃﻜﺒﺭ ﻤﻥ ﺍﻟﻌﺩﺩ ﺍﻟﺜﺎﻨﻲ ﻓﺈﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺴﻭﻑ‬
‫ﻴﺘﻭﻗﻑ ﻋﻥ ﺍﻟﻌﻤل ﻟﺫﻟﻙ ﻫﻨﺎ ﻴﻔﻴﺩﻨﺎ ﻤﺎ ﺘﻌﻠﻤﻨﺎ ﺴﺎﺒﻘﹰﺎ ﻋﻥ ﺍﻟﺠﻤل ﺍﻟﺸﺭﻁﻴﺔ ﻻﺤﻅ ﺍﻟﻤﺜﺎل‬
‫ﺍﻟﺘﺎﻟﻲ ﺒﻌﺩ ﺃﻥ ﻗﻤﻨﺎ ﺒﻌﻤﻠﻴﺔ ﺇﺩﺨﺎل ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺭﻁﻴﺔ ﻟﻠﺒﺭﻨﺎﻤﺞ ﺤﺘﻰ ﻨﺘﺤﻘﻕ ﻫل ﺍﻟﻌﺩﺩ‬
‫ﺍﻷﻭل ﺃﻗل ﻤﻥ ﺍﻟﻌﺩﺩ ﺍﻟﺜﺎﻨﻲ ﺃﻤﺎ ﻻ‪.‬‬
‫>‪#include<stdio.h‬‬
‫‪*/‬ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﻘﻭﻡ ﺒﺘﻭﻟﻴﺩ ﺃﻋﺩﺍﺩ ﻤﺘﺴﻠﺴﻠﺔ*‪main () /‬‬
‫{‬
‫;‪int num1,num2,count‬‬
‫;)"‪printf("enter start point:\n‬‬
‫;)‪scanf("%d",&num1‬‬
‫;)"‪printf("enter the end point:\n‬‬
‫;)‪scanf("%d",&num2‬‬
‫ﻫﻨﺎ ﻴﺘﻡ ﺍﻟﺘﺤﻘﻕ ﻫل ﻫﺫﺍ ﺍﻟﻌﺩﺩ ﺍﻟﺜﺎﻨﻲ ﺃﻜﺒﺭ ﻤﻥ ﺍﻟﻌﺩﺩ *‪if (num2> num1) /‬‬
‫ﺍﻷﻭل ﻓﺈﺫﺍ‬

‫‪ (else) */‬ﻜﺎﻥ ﻜﺫﻟﻙ ﻓﺈﻨﻪ ﻴﻨﻔﺫ ﺒﻘﻴﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺇﻻ ﻓﺈﻨﻪ ﺴﻭﻑ ﻴﺘﺠﻪ ﺇﻟﻰ ﺍﻟﺠﻤﻠﺔ‬
‫{‬
‫)‪for (count=num1 ;count<=num2 ;count++‬‬
‫ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺴﺎﺒﻕ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺸﺭﻁ )>=( ﻭﺫﻟﻙ ﻟﻠﺘﺤﻘﻕ ﻫل ﻭﺼل ﺍﻟﺒﺭﻨﺎﻤﺞ *‪/‬‬

‫‪*/‬ﻟﻨﻘﻁﺔ ﺍﻟﻨﻬﺎﻴﺔ ﺃﻤﺎ ﻻ‬


‫;)‪printf("%d\n",count‬‬
‫}‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫‪else‬‬
‫;)"‪printf("sorry i can`t do this loop‬‬
‫;‪return 0‬‬
‫}‬
‫ﻻﺤﻅ ﻓﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﻤﺩﻯ ﺍﻹﺴﺘﻔﺎﺩﺓ ﺍﻟﻌﻅﻴﻤﺔ ﻤﻥ ﺍﻟﺠﻤل ﺍﻟﺸﺭﻁﻴﺔ‪.‬‬

‫• ﺠﻤﻠﺔ ﺍﻟﺘﻜﺭﺍﺭ )‪:(while‬‬


‫ﻭﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻫﻲ ﺃﺤﺩ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻤﻥ ﺠﻤل ﺍﻟﺘﻜﺭﺍﺭ ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ ﻭﺘﺨﺘﻠﻑ ﻫﺫﻩ‬
‫ﺍﻟﺠﻤﻠﺔ ﻋﻥ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺴﺎﺒﻘﺔ ﻭﻫﻲ )‪ (for‬ﻓﻲ ﺃﻥ ﺠﻤﻠﺔ ﺍﻟﺘﻜﺭﺍﺭ )‪ (for‬ﻻ ﻨﺴﺘﻁﻴﻊ ﺃﻥ‬
‫ﻨﻌﺭﻑ ﻜﻤﺎ ﻋﺩﺩ ﺍﻟﻤﺭﺍﺕ ﺍﻟﺘﻲ ﺴﻴﺘﻡ ﻓﻴﻬﺎ ﺍﻟﺘﻜﺭﺍﺭ ﻭﻟﻜﻥ ﻓﻲ ﺍﻟﺠﻤﻠﺔ )‪ (while‬ﻓﺈﻥ‬
‫ﻨﻌﺭﻑ ﻋﺩﺩ ﺍﻟﻤﺭﺍﺕ ﺍﻟﺘﻲ ﺴﻭﻑ ﻨﻘﻭﻡ ﺒﻬﺎ ﺒﻌﻤﻠﻴﺔ ﺍﻟﺘﻜﺭﺍﺭ ‪ .‬ﻭﻓﻲ ﺍﻟﺤﻘﻴﻘﺔ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ‬
‫ﻜﺜﻴﺭﹰﺍ ﻤﺎ ﺘﺴﺘﻌﻤل ﻓﻲ ﺠﻌل ﺍﻟﺒﺭﻨﺎﻤﺞ ﻻ ﻤﻨﺘﻬﻲ ﺇﻻ ﺒﺘﺤﻘﻕ ﺸﺭﻁ ﻤﻌﻴﻥ ﻜﻤﺎ ﺴﻨﺭﻯ ﻓﻲ‬
‫ﻻ ﺒﻔﺤﺹ ﺸﺭﻁ ﺍﻟﺘﺤﻘﻕ ﻓﺈﺫﺍ‬ ‫ﺍﻷﻤﺜﻠﺔ ﻭﻁﺭﻴﻘﺔ ﻋﻤل ﻫﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ ﺃﻨﻬﺎ ﺘﻘﻭﻡ ﺃﻭ ﹰ‬
‫ﺘﺤﻘﻕ ﺍﻟﺸﺭﻁ ﻓﺈﻨﻪ ﺘﻨﻔﺫ ﺍﻟﻤﻁﻠﻭﺏ ﻤﻥ ﻫﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺃﻤﺎ ﺇﺫﺍ ﻜﺎﻨﺕ ﻨﺘﻴﺠﺔ ﺍﻟﺘﺤﻘﻕ ﻏﻴﺭ‬
‫ﺼﺤﻴﺤﺔ ﻓﺈﻨﻬﺎ ﻻ ﺘﻨﻔﺫ ﺍﻟﺠﻤل ﺍﻟﺘﺎﺒﻌﺔ ﻟﻬﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ ﻭﺘﻌﻭﺩ ﺇﻟﻰ ﺘﻜﻤﻠﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ‬
‫ﻤﻥ ﺒﻌﺩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ‪ .‬ﻭﺍﻟﺼﻭﺭﺓ ﺍﻟﻌﺎﻤﺔ ﻟﻬﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻫﻲ ‪:‬‬
‫)‪While (expression‬‬
‫;‪Statement‬‬
‫ﻭﻻﺤﻅ ﺃﻨﻪ ﺒﻌﺩ ﺍﻟﺠﻤﻠﺔ )‪ (while‬ﺘﺄﺘﻲ ﺠﻤﺔ ﻭﺍﺤﺩ ﻓﻘﻁ )‪ (statement‬ﻭﻟﻜﻥ ﻴﻤﻜﻥ‬
‫ﺃﻴﻀﹰﺎ ﺃﻥ ﻴﻜﻭﻥ ﺃﻜﺜﺭ ﻤﻥ )‪ (statement‬ﻭﺫﻟﻙ ﻤﻥ ﺨﻼل ﺤﺼﺭﻫﺎ ﺒﻴﻥ )} {( ‪.‬‬
‫ﻻﺤﻅ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺘﺎﻟﻲ ﻭﻫﻭ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺫﻱ ﻜﺘﺒﻨﺎﻩ ﻤﻥ ﻗﻠﻴل ﻭﻫﻭ ﺒﺭﻨﺎﻤﺞ‬
‫ﺘﻭﻟﻴﺩ ﺍﻷﻋﺩﺍﺩ ﺍﻟﺘﺴﻠﺴﻠﻴﺔ‪.‬‬
‫>‪#include<stdio.h‬‬
‫ﺇﺴﺘﺩﻋﻴﻨﺎ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻷﻨﻨﺎ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺩﺍﻟﺔ *‪#include<stdlib.h>/‬‬
‫ﻓﻲ ))‪(exit(0‬‬

‫‪ */‬ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺫﻟﻙ ﻟﻌﻤﻠﻴﺔ ﺍﻟﺨﺭﻭﺝ ﻤﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ‬


‫‪*/‬ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﻘﻭﻡ ﺒﺘﻭﻟﻴﺩ ﺃﻋﺩﺍﺩ ﻤﺘﺴﻠﺴﻠﺔ*‪main () /‬‬
‫{‬
‫;‪int num1,num2,count‬‬
‫;‪char ch‬‬
‫;)"‪printf("press any key to continue or press q to quit\n‬‬
‫;)‪scanf("%c",&ch‬‬
‫ﻫﻨﺎ ﺴﻴﺘﻡ ﺍﻟﻔﺤﺹ ﻫل ﺍﻟﺨﻴﺎﺭ ﺍﻟﺫﻱ ﺃﺩﺨﻠﺘﻪ ﻫﻭ ﺍﻟﺤﺭﻑ *‪while (ch !='q') /‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫‪ */‬ﺃﻤﺎ ﻻ )‪(q‬‬
‫{‬
‫;)"‪printf("enter start point:\n‬‬
‫;)‪scanf("%d",&num1‬‬
‫;)"‪printf("enter the end point:\n‬‬
‫;)‪scanf("%d",&num2‬‬
‫ﻫﻨﺎ ﻴﺘﻡ ﺍﻟﺘﺤﻘﻕ ﻫل ﻫﺫﺍ ﺍﻟﻌﺩﺩ ﺍﻟﺜﺎﻨﻲ ﺃﻜﺒﺭ ﻤﻥ ﺍﻟﻌﺩﺩ *‪if (num2> num1) /‬‬
‫ﺍﻷﻭل ﻓﺈﺫﺍ‬

‫‪ (else) */‬ﻜﺎﻥ ﻜﺫﻟﻙ ﻓﺈﻨﻪ ﻴﻨﻔﺫ ﺒﻘﻴﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺇﻻ ﻓﺈﻨﻪ ﺴﻭﻑ ﻴﺘﺠﻪ ﺇﻟﻰ ﺍﻟﺠﻤﻠﺔ‬
‫{‬
‫)‪for (count=num1 ;count<=num2 ;count++‬‬
‫ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺴﺎﺒﻕ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺸﺭﻁ )>=( ﻭﺫﻟﻙ ﻟﻠﺘﺤﻘﻕ ﻫل ﻭﺼل ﺍﻟﺒﺭﻨﺎﻤﺞ *‪/‬‬

‫‪*/‬ﻟﻨﻘﻁﺔ ﺍﻟﻨﻬﺎﻴﺔ ﺃﻤﺎ ﻻ‬


‫;)‪printf("%d\n",count‬‬
‫}‬
‫‪else‬‬
‫;)"‪printf("sorry i can`t do this loop‬‬
‫}‬
‫‪*/‬ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺩﺍﻟﺔ ﻟﻠﺨﺭﻭﺝ ﻤﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ *‪exit (0);/‬‬
‫;‪return 0‬‬
‫}‬
‫ﻻﺤﻅ ﻓﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﻟﻭ ﺃﺩﺨﻠﺕ ﺃﻱ ﺤﺭﻑ ﻤﻥ ﻟﻭﺤﺔ ﺍﻟﻤﻔﺎﺘﻴﺢ ﺴﻭﻑ ﻴﺘﻡ ﺘﻨﻔﻴﺫ‬
‫ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﻟﻜﻥ ﺇﺫﺍ ﺃﺩﺨﻠﺕ ﺍﻟﺤﺭﻑ )‪ (q‬ﻓﺈﻨﻪ ﺴﻭﻑ ﻴﺨﺭﺠﻙ ﻤﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻤﺒﺎﺸﺭﺓ‪.‬‬
‫ﻭﻻﺤﻅ ﺃﻥ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺴﻭﻑ ﻴﺴﺄﻟﻙ ﻤﺭﺓ ﻭ ﺍﺤﺩﺓ ﻓﻘﻁ ﺜﻡ ﺒﻌﺩ ﺫﻟﻙ ﺒﻌﺩ ﻜل ﻨﻬﺎﻴﺔ‬
‫ﻟﻌﻤﻠﻴﺔ ﺘﻜﺭﺍﺭ ﺴﻭﻑ ﻴﺘﻡ ﻴﻌﻴﺩ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻨﻔﺴﻪ ﻭﺇﻥ ﻀﻐﻁﺕ ﻋﻠﻰ ﺤﺭﻑ )‪ (q‬ﺴﻭﻑ‬
‫ﻴﺘﻡ ﻋﻤل ﺘﻜﺭﺍﺭ ﻟﺠﻤل ﺍﻟﺒﺭ ﻨﺎﻤﺞ ﺩﻭﻥ ﺃﻱ ﺘﺩﺨل ﻤﻨﻙ ﻭﺒﺼﻭﺭﺓ ﺴﺭﻴﻌﺔ ﻭﺘﺴﺘﻁﻴﻊ‬
‫ﺇﻴﻘﺎﻓﻬﺎ ﻤﻥ ﺨﻼل ﺍﻟﻀﻐﻁ ﻋﻠﻰ )‪ (ctrl+c‬ﻨﻼﺤﻅ ﻫﻨﺎ ﺃﻨﻨﺎ ﻭﺍﺠﻬﻨﺎ ﻤﺸﻜﻠﺔ ﺒﺴﻴﻁﺔ‬
‫ﻭﻫﻲ ﺃﻨﻨﺎ ﻻ ﻨﺴﺘﻁﻴﻊ ﻋﻤل ﺒﺭﻨﺎﻤﺞ ﻤﺘﻜﺎﻤل ﻨﺴﺘﻁﻴﻊ ﺇﺴﺘﺨﺩﺍﻤﻪ ﻭﻤﻥ ﺜﻡ ﺇﻏﻼﻗﻪ‬
‫ﺒﺼﻭﺭﺓ ﺼﺤﻴﺤﺔ‪.‬ﻭﺴﻨﺘﻌﻠﻡ ﺒﺈﺫﻥ ﺍﷲ ﻜﻴﻑ ﻨﺘﻐﻠﺏ ﻋﻠﻰ ﻫﺫﻩ ﺍﻟﻤﺸﻜﻠﺔ‪.‬‬

‫• ﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭ )‪:(do -----> while‬‬


‫ﻭﻫﺫﻩ ﺍﻟﺤﻠﻘﺔ ﻫﻲ ﺃﺤﺩ ﺍﻟﺤﻠﻘﺎﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﻟﻐﺔ ﺍﻟﺴﻲ ﻭﻫﻲ ﺸﺒﻴﻪ ﺇﻟﻰ ﺤﺩ ﻤﺎ ﺒﺤﻠﻘﺔ‬
‫ﺍﻟﺘﻜﺭﺍﺭ )‪ (while‬ﻭﻟﻜﻥ ﺍﻟﻔﺭﻕ ﺍﻟﻭﺤﻴﺩ ﺒﻴﻥ ﻫﺎﺘﻴﻥ ﺍﻟﺤﻠﻘﺘﻴﻥ ﻓﻲ ﺃﻥ ﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭ )‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫‪ (while‬ﻤﻥ ﺍﻟﻤﻤﻜﻥ ﺃﻥ ﻻ ﻴﺘﻡ ﺘﻨﻔﻴﺫﻩ ﺃﺒﺩﹰﺍ ﻭﺫﻟﻙ ﻋﻨﺩﻤﺎ ﻻ ﻴﺘﺤﻘﻕ ﺍﻟﺸﺭﻁ ﺒﻴﻨﻤﺎ ﺤﻠﻘﺔ‬
‫ﺍﻟﺘﻜﺭﺍﺭ )‪ (do -----> while‬ﻴﺘﻡ ﺘﻨﻔﻴﺫﻫﺎ ﻤﺭﺓ ﻭﺍﺤﺩﺓ ﻋﻠﻰ ﺍﻷﻗل ﻭﺫﻟﻙ ﻷﻥ ﺍﻟﺸﺭﻁ‬
‫ﻻ ﻴﺘﻡ ﺘﻨﻔﻴﺫﻩ ﺇﻻ ﺒﻌﺩ ﻋﻤﻠﻴﺔ ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ‪ .‬ﻭﺍﻟﺼﻭﺭﺓ ﺍﻟﻌﺎﻤﺔ ﻟﻬﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ‬
‫ﻫﻲ ‪:‬‬
‫‪Do‬‬
‫;‪Statement‬‬
‫;)‪While (expression‬‬
‫ﻨﻼﺤﻅ ﺃﻥ ﺍﻟﺼﻭﺭﺓ ﺍﻟﺴﺎﺒﻘﺔ ﻫﻲ ﺍﻟﺼﻭﺭﺓ ﺍﻟﻌﺎﻤﺔ ﻟﻬﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ ﻭﻫﻲ ﺘﺴﺘﻁﻴﻊ‬
‫ﺘﻨﻔﻴﺫ ﺠﻤﻠﺔ ﻭﺍﺤﺩﺓ ﻓﻘﻁ ﻭﻟﻜﻨﻬﺎ ﺃﻴﻀﹰﺎ ﻴﻤﻜﻨﻬﺎ ﺍﻟﻘﻴﺎﻡ ﺒﺘﻨﻔﻴﺫ ﺃﻜﺜﺭ ﻤﻥ ﺠﻤﻠﺔ ﻭﺫﻟﻙ ﻋﻠﻰ‬
‫ﺍﻟﺼﻭﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫‪Do‬‬
‫{‬
‫;‪statement1‬‬
‫;‪statement2‬‬
‫}‬
‫;)‪while (expression‬‬
‫ﻭﻫﻨﺎ ﻴﺠﺏ ﺃﻥ ﺘﻨﺘﺒﻪ ﺃﻨﻪ ﻴﻭﺠﺩ ﻓﺎﺼﻠﺔ ﻤﻨﻘﻭﻁﺔ ﺒﻌﺩ ))‪while(expression‬‬
‫ﻻ ﺒﺘﻨﻔﻴﺫ ﺍﻟﺠﻤل ﺍﻟﺘﺎﺒﻌﺔ ﻟﻠﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ‬
‫(‪.‬ﻭﺘﻌﻤل ﻫﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ ﺒﺄﻨﻬﺎ ﺘﻘﻭﻡ ﺃﻭ ﹰ‬
‫ﻭﻫﻲ ﻫﻨﺎ )‪ (statement‬ﺜﻡ ﺒﻌﺩ ﺍﻹﻨﺘﻬﺎﺀ ﻤﻥ ﻫﺫﻩ ﺍﻟﺠﻤل ﻴﺘﻡ ﺍﻟﺘﺤﻘﻕ ﻤﻥ ﺍﻟﺸﺭﻁ‬
‫ﻓﺈﺫﺍ ﻜﺎﻥ ﻨﺎﺘﺞ ﺍﻟﺘﺤﻘﻕ ﺼﺤﻴﺢ ﻓﺈﻨﻪ ﻴﻌﻭﺩ ﻭﻴﻨﻔﺫ ﺠﻤل ﺍﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ ﻭﺇﻥ ﻜﺎﻥ ﺨﺎﻁﺌﹰﺎ‬
‫ﻓﺈﻨﻪ ﻴﻜﻤل ﻋﻤل ﺍﻟﺒﺭﻨﺎﻤﺞ‪ .‬ﻭﻓﻲ ﺍﻟﺤﻘﻴﺔ ﻫﺫﻩ ﺍﻟﺩﺍﻟﺔ ﻤﻔﻴﺩﺓ ﺠﺩﹰﺍ ﺨﺎﺼﺔ ﻓﻲ ﺒﺭﻨﺎﻤﺠﻨﺎ‬
‫ﺍﻟﺫﻱ ﻜﺘﺒﻨﺎﻩ ﺴﺎﺒﻘﹰﺎ ﺤﻴﺙ ﺃﻨﻪ ﺒﺈﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ ﻨﺴﺘﻁﻴﻊ ﺃﻥ ﻨﺘﻐﻠﺏ ﻋﻠﻰ‬
‫ﺍﻟﺘﻜﺭﺭ ﺍﻟﻐﻴﺭ ﻤﻨﺘﻬﻲ ﻜﻤﺎ ﺤﺼل ﻤﻌﻨﺎ ﻋﻨﺩﻤﺎ ﺇﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺤﻠﻘﺔ )‪ .(while‬ﻻﺤﻅ‬
‫ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﺒﻌﺩ ﺇﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ‪.‬‬
‫>‪#include<stdio.h‬‬
‫ﺇﺴﺘﺩﻋﻴﻨﺎ ﻫﺫﺍ ﺍﻟﻤﻠﻑ ﻷﻨﻨﺎ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺩﺍﻟﺔ *‪#include<stdlib.h>/‬‬
‫ﻓﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺫﻟﻙ ﻟﻌﻤﻠﻴﺔ ﺍﻟﺨﺭﻭﺝ ﻤﻥ ))‪(exit(0‬‬

‫‪ */‬ﺍﻟﺒﺭﻨﺎﻤﺞ‬
‫‪*/‬ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﻘﻭﻡ ﺒﺘﻭﻟﻴﺩ ﺃﻋﺩﺍﺩ ﻤﺘﺴﻠﺴﻠﺔ*‪main () /‬‬
‫{‬
‫;‪int num1,num2,count‬‬
‫;‪char ch‬‬
‫‪do‬‬
‫{‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫;)"‪printf("enter start point:\n‬‬
‫;)‪scanf("%d",&num1‬‬
‫;)"‪printf("enter the end point:\n‬‬
‫;)‪scanf("%d",&num2‬‬
‫ﻫﻨﺎ ﻴﺘﻡ ﺍﻟﺘﺤﻘﻕ ﻫل ﻫﺫﺍ ﺍﻟﻌﺩﺩ ﺍﻟﺜﺎﻨﻲ ﺃﻜﺒﺭ ﻤﻥ ﺍﻟﻌﺩﺩ *‪if (num2> num1) /‬‬
‫ﺍﻷﻭل ﻓﺈﺫﺍ ﻜﺎﻥ ﻜﺫﻟﻙ ﻓﺈﻨﻪ ﻴﻨﻔﺫ ﺒﻘﻴﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ‬

‫‪ (else) */‬ﻭﺇﻻ ﻓﺈﻨﻪ ﺴﻭﻑ ﻴﺘﺠﻪ ﺇﻟﻰ ﺍﻟﺠﻤﻠﺔ‬


‫{‬
‫*‪for (count=num1 ;count<=num2 ;count++)/‬‬ ‫ﻓﻲ ﺍﻟﺴﻁﺭ‬
‫ﺍﻟﺴﺎﺒﻕ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺸﺭﻁ )>=( ﻭﺫﻟﻙ ﻟﻠﺘﺤﻘﻕ ﻫل‬

‫‪*/‬ﻭﺼل ﺍﻟﺒﺭﻨﺎﻤﺞ ﻟﻨﻘﻁﺔ ﺍﻟﻨﻬﺎﻴﺔ ﺃﻤﺎ ﻻ‬


‫;)‪printf("%d\n",count‬‬
‫;)"‪printf("press any key to continue or press q to quit\n‬‬
‫;)‪scanf("%c",&ch‬‬
‫}‬
‫‪else‬‬
‫;)"‪printf("sorry i can`t do this loop‬‬
‫;)"‪printf("press any key to continue or press q to quit\n‬‬
‫;)‪scanf("%c",&ch‬‬
‫}‬
‫ﻫﻨﺎ ﺴﻴﺘﻡ ﺍﻟﻔﺤﺹ ﻫل ﺍﻟﺨﻴﺎﺭ ﺍﻟﺫﻱ ﺃﺩﺨﻠﺘﻪ ﻫﻭ ﺍﻟﺤﺭﻑ *‪while (ch !='q'); /‬‬
‫‪ */‬ﺃﻤﺎ ﻻ )‪(q‬‬
‫‪*/‬ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺩﺍﻟﺔ ﻟﻠﺨﺭﻭﺝ ﻤﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ *‪exit (0); /‬‬
‫;‪return 0‬‬
‫}‬
‫ﻓﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﺍﺴﺘﻁﻌﻨﺎ ﻋﻠﻰ ﺍﻟﺘﻐﻠﺏ ﻤﻥ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻜﺭﺍﺭ ﺍﻟﻼ ﻤﻨﺘﻬﻲ‪ .‬ﻭﺒﻬﺫﺍ‬
‫ﻨﻜﻭﻥ ﻗﺩ ﺇﻨﺘﻬﻴﻨﺎ ﻤﻥ ﺍﻟﺤﻠﻘﺔ ﺍﻟﺘﻜﺭﺍﺭﻴﺔ )‪. (do -----> while‬‬

‫• ﺍﻟﺠﻤﻠﺔ )‪:(break‬‬
‫ﻼ ﻟﻭ ﺃﺭﺩﺕ ﺇﻴﻘﺎﻑ ﻋﻤﻠﻴﺔ‬ ‫ﻭﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻋﺎﺩﺓ ﻟﻜﻲ ﻨﻘﻭﻡ ﺒﺈﻴﻘﺎﻑ ﻋﻤﻠﻴﺔ ﻤﺎ ﻤﺜ ﹰ‬
‫ﺘﻜﺭﺍﺭ ﺩﻭﻥ ﺍﻟﻭﺼﻭل ﻟﻨﻘﻁﺔ ﺍﻟﻨﻬﺎﻴﺔ ﻓﻬﺫﻩ ﺍﻟﻜﻠﻤﺔ ﺘﻘﻭﻡ ﺒﻁﻠﺒﻙ ﺒﺎﻟﺘﺄﻜﻴﺩ‪ .‬ﻻﺤﻅ ﺍﻟﺒﺭﻨﺎﻤﺞ‬
‫ﺍﻟ ﺘ ﺎ ﻟ ﻲ‪:‬‬
‫>‪#include<stdio.h‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬


‫‪ (break)*/‬ﺇﺴﺘﺨﺩﺍﻡ ﺍﻟﺠﻤﻠﺔ*‪main () /‬‬
‫{‬
‫;‪int num1‬‬
‫)‪for (num1=0 ;num1<=20 ;num1++‬‬
‫{‬
‫;)‪printf("%d\n",num1‬‬
‫ﻻﺤﻅ ﺍﻟﺸﺭﻁ ﻫﻨﺎ ﺇﺫﺍ ﺘﺤﻘﻕ ﻓﺈﻨﻪ ﺴﻭﻑ ﻴﺘﻡ ﺇﻴﻘﺎﻑ ﻋﻤل *‪if (num1==10) /‬‬
‫‪*/‬ﺍﻟﺒﺭﻨﺎﻤﺞ‬
‫;‪break‬‬
‫}‬
‫;‪return 0‬‬
‫}‬
‫ﻻﺤﻅ ﻓﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺴﺎﺒﻕ ﺃﻨﻪ ﻤﻥ ﺍﻟﻤﻔﺘﺭﺽ ﺃﺕ ﻴﻘﻭﻡ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺴﺭﺩ ﺍﻷﻋﺩﺍﺩ ﻤﻥ‬
‫ﺍﻟﻌﺩﺩ )‪ (0‬ﺇﻟﻰ ﺍﻟﻌﺩﺩ )‪ (20‬ﻭﻟﻜﻨﻪ ﻓﻲ ﺍﻟﺤﻘﻴﻘﺔ ﻟﻥ ﻴﺘﻡ ﺫﻟﻙ ﻫﻨﺎ ﻭﺫﻟﻙ ﻷﻨﻨﺎ ﺇﺴﺘﺨﺩﻤﻨﺎ‬
‫ﺍﻟﺠﻤﻠﺔ )‪ (break‬ﺤﻴﺙ ﺃﻨﻪ ﺴﻴﺘﻡ ﻁﺒﺎﻋﺔ ﺍﻷﻋﺩﺍﺩ )‪ (1-10‬ﻭﺫﻟﻙ ﻷﻨﻪ ﺸﺭﻁ ﺘﻭﻗﻔﻨﺎ‬
‫ﺃﻨﻪ ﻴﺴﺎﻭﻱ ﺍﺍﻟﻌﺩﺩ )‪.(10‬‬
‫ﻭﻴﻭﺠﺩ ﻫﻨﺎﻙ ﺃﻴﻀﹰﺎ ﺠﻤﻠﺘﻴﻥ ﻭﻫﻤﺎ )‪ (continue‬ﻭﺍﻟﺠﻤﻠﺔ )‪ (goto‬ﻭﻨﻅﺭﹰﺍ ﻟﻘﻠﺔ‬
‫ﺇﺴﺘﺨﺩﺍﻡ ﺍﻟﺠﻤﻠﺔ )‪ (continue‬ﻓﺈﻨﻲ ﻟﻡ ﺃﺠﺩ ﺃﻱ ﻤﺜﺎل ﻓﻲ ﺃﻱ ﻜﺘﺎﺏ ﻋﻨﺩﻱ ﺃﻤﺎ ﺍﻟﺠﻤﻠﺔ‬
‫)‪ (goto‬ﻓﻐﺎﻟﺒﹰﺎ ﻤﺒﺭﻤﺠﻲ ﻻﻴﻨﺼﺤﻭﻥ ﺒﺈﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻓﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻷﻥ ﺒﺭﺍﻤﺞ‬
‫ﻋﺒﺎﺭﺓ ﻋﻥ ﻤﺘﺴﻠﺴﻠﺔ ﺒﻨﻴﻭﻴﺔ ﺃﻱ ﻜل ﺠﺯﺀ ﻓﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﻜﻤل ﺍﻟﺠﺯﺀ ﺍﻟﺫﻱ ﻴﻠﻴﻪ ﻟﺫﻟﻙ‬
‫ﻴﻔﻀل ﺃﻥ ﺘﻜﻭﻥ ﺒﺭﺍﻤﺞ ﺨﺎﻟﻴﺔ ﻤﻥ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻜﻤﺎ ﺃﻥ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻤﻥ ﺍﻟﻤﻤﻜﻥ ﺃﻥ‬
‫ﺘﺘﺴﺒﺏ ﺒﺄﺨﻁﺎﺀ ﻓﻲ ﺒﺭﻨﺎﻤﺠﻙ‪.‬‬

‫ﻭﺘﻘﺒﻠﻭﺍ ﺨﺎﻟﺹ ﺘﺤﻴﺎﺕ ﺃﺨﻭﻜﻡ ﺍﻟﻤﺤﺏ )‪(The-oNe‬‬


‫ﺍﻟﺭﺠﺎﺀ ﺇﺭﺴﺎل ﻤﻘﺘﺭﺤﺎﺘﻜﻡ ﻭﺁﺭﺍﺌﻜﻡ ﻋﻠﻰ ﺍﻟﻌﻨﺎﻭﻴﻥ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪The-one@pharaonics.net‬‬
‫‪OR‬‬
‫‪The_o0ne@hotmail.com‬‬
‫‪OR‬‬
‫‪The_o0one@yahoo.com‬‬

‫‪PDF created with FinePrint pdfFactory trial version http://www.fineprint.com‬‬

You might also like