You are on page 1of 27

‫بقمل ‪:‬‬ ‫نسخه إلكرتونيه‬

‫معاويه نورإدلين‬ ‫‪2013‬‬ ‫جمانيه‬


‫الفهرس‬

‫رقم الصفحه‬ ‫إسم الموضوع‬


‫‪3‬‬ ‫انًقذيّ‬
‫‪3‬‬ ‫اإلْذاء‬
‫‪4‬‬ ‫انعبيم انشرطي‬
‫‪6‬‬ ‫عبيم انزيبدِ ٔانُقصبٌ‬
‫‪10‬‬ ‫عٕايم انتععيٍ انحسبثي‬
‫‪11‬‬ ‫انتركيجّ ‪switch‬‬
‫‪13‬‬ ‫حهقّ انتكرار ‪for‬‬
‫‪16‬‬ ‫حهقّ انتكرار ‪do .. while‬‬
‫‪19‬‬ ‫حهقّ انتكرار ‪while‬‬
‫‪21‬‬ ‫ثرايج يتُٕعّ‬
‫مقدمه‬
‫أ‬
‫الحمد هلل موء السمٍات و الرض ‪ ،‬وموء ما بّوٌما ‪ ،‬وموء ما شاء هللا من شئ بػد ‪.‬‬
‫والصالة والسالم غلُ غبد هللا المصعفَ وغلَ هبُ هللا المرتضُ وغلُ رسٍل هللا المجتبَ وغلَ الي‬
‫أ‬ ‫أ‬
‫واصحابي ومن بٌم اًتدى‪ ( .‬سبحاهم ل غلم لوا ال ما غلمتوا اهم اهت الػلیم الحنیم )‬

‫أ‬
‫الدم لنم ًذى الصفحات التُ تواولت فٌّا مبادئ للغي ال ـ ‪ C++‬بشنو مبسط وشرح مباشر‬
‫أ أ‬
‫وارجٍ ان تنٍن هذلم ‪ ،‬وتتٍافق مع مكرر بػض هلّات الحاسٍب بالسٍدان وًُ منملي للوسخي‬
‫أ‬ ‫أ‬ ‫أ‬ ‫أ‬
‫الولَ من ًذا الػمو واسال هللا الػظّم رب الػرش الػظّم ان ِوفػوُ واِاهم بٌا واسالنم الدغاء‬
‫أ‬ ‫أ‬ ‫أ‬ ‫أ‬ ‫أ‬
‫فاهُ احٍج مااهٍن لدغٍى الخٍان ‪ .‬واذا هان لدِم اي استفسار ‪ ،‬او مالحظي فّمنن ارسالٌا الُ‬
‫غبر البرِد ال لنـتروهُ ‪ mawia93@gmail.com‬ووكك ًاإ‪.‬‬
‫أ‬
‫اخّنم فُ هللا‬
‫مػاوِي هٍرالدِن‬
‫السٍدان‪ /‬الخرظٍم‬
‫‪2013-12-01‬‬

‫إهـداء‬
‫إلي أمي الحبيبه وأبي الحبيب أسأل هللا أن يطيل بقائهما ويجعل الجنه مسكنهم‬

‫إلي كل من قدم لألمه اإلسالميه من دعاء إلي جهاد في سبيل هللا‬

‫إلي زمالء الدراسه بكليه المشرق للعلوم والتكنولوجيا‬

‫إلي روح جدي أسال هللا أن يجعل الجنه مثواه‬

‫إلي كل من شجعني إلي كتابه هذا العمل‬

‫إلي كل من له فضل علي‬


‫انعبيم انشرطي ‪conditional operator‬‬

‫ال ٌختلف هذا العامل عن التركٌب الشرطً لألداة ‪ if…else‬بل هو إختصار لها بحٌث ٌمكن كتابه‬
‫الشرط وجوابً الشرط فً سطر برمجً واحد وصٌغته العامه ‪:‬‬

‫; ‪if (condition) ? Statement..1 : Statement..2‬‬


‫كما هو واضح نكتب الشرط بٌن القوسٌن ونكتب الجمله البرمجٌه المراد تنفٌذها فً حاله تحقق الشرط‬
‫مكان ‪ Statement..1‬ونكتب الجمله البرمجٌه المراد تنفٌذها فً حاله عدم تحقق الشرط مكان‬
‫‪. Statement..2‬‬
‫مثال لذلك ‪:‬‬

‫ثرَبيج إلختجبر انرقى سبنت أو يٕجت ثخالف انصفر‪.‬‬ ‫‪‬‬

‫مناقشه ‪:‬‬
‫سنقوم بكتابه برنامج ٌستقبل رقم من المستخدم ‪.‬‬
‫ونختبر هذا الرقم هل ٌساوي الصفر؟ ألننا ال نرٌد إختبار الصفر بواسطه العامل الشرطً‪.‬‬
‫وفً حاله الرقم المدخل ٌساوي صفر ‪ٌ ،‬ظهر رساله ‪.‬وإال ٌقوم بإختبار الرقم هل هو سالب أم موجب‬
‫بإستخدام العامل الشرطً وٌقوم بطباعه رساله توضح نوع الرقم‪.‬‬
‫ملحوظه ‪ :‬سنستخدم المترجم ‪ Borland c++‬لجمٌع البرامج‪.‬‬
‫كود البرنامج ‪:‬‬
‫ُ‬
‫قصدت إستخدام التركٌبه ‪ if… else‬فً نفس الوقت مع العامل الشرطً للتوضٌح والفهم ‪.‬حٌث أن‬
‫جواب الشرط األول (‪ if )num==0‬فً حاله لم ٌتحقق ‪ .‬هو شرط أخر له جوابان إما سالب وإما‬
‫موجب‪.‬‬

‫ٌمكننا إستخدام العامل الشرطً وحده من دون إستخدام أداة الشرط ‪ . if‬وٌمكن أن ُنسند قٌمه لمتغٌر‬
‫بإستخدام عامل الشرط ومثال لذلك ‪:‬‬

‫‪ ‬وهذا ٌعنً أن قٌمه المتغٌر ‪ y‬ستصبح ‪ 5‬فً حاله أن المتغٌر ‪ num‬قٌمته أكبر من صفر وإال‬
‫ستصبح ‪.10‬‬

‫‪ٌ ‬مكن أن ٌكون أحد جواب الشرط هو شرط أخر له جوابان وهكذا‪.‬و العامل الشرطً قابل للتكٌف‬
‫مع مثل هذه الحاله ‪.‬‬

‫‪ٌ ‬ستخدم العامل الشرطً للتقلٌل والتسهٌل فً عملٌه كتابه البرامج‪.‬‬


‫‪ ++‬عامل الزياده والنقصان ‪--‬‬

‫نكتب عامل الزٌاده فً لغه ‪ C++‬بالرمز ‪ ++‬وعامل النقصان بالرمز ‪ --‬ونستعملهما مع أسماء‬
‫المتغٌرات ‪ ،‬إما لزٌاده قٌمه المتغٌر بمقدار واحد ‪ ،‬أو إلنقاص قٌمته بمقدار واحد‪.‬‬

‫ونكتب العامالن بطرٌقتان ‪:‬‬


‫‪.‬‬
‫إما قبل إسم المتغٌر مثل ( ‪ ) --var ، ++var‬أو بعد إسم المتغٌر مثل )‪.) var -- ، var++‬‬

‫; ‪var+=1‬‬ ‫;‪ var=var+1‬تكافئ‬ ‫; ‪ var++‬تكافئ‬

‫وكلها تعنً أن قٌمه المتغٌر ‪ var‬الجدٌده تساوي قٌمه المتغٌر القدٌمه مضاف إلٌها واحد‪.‬‬

‫وبنفس المعنى إذا استخدمنا عامل النقصان‪ .‬إال أنه ٌعمل فً االتجاه السالب‪.‬‬
‫‪ ‬سوف أشرح علً عامل الزٌاده فقط لتسهٌل الدرس ‪.‬‬

‫عندما نكتب عامل الزٌاده قبل إسم المتغٌر نعنً به أضف واحد لقٌمه المتغٌر أوالًال‪ .‬وبعدها نفذ‬
‫المطلوب من باقً الجمله البرمجٌه‪.‬‬
‫وعنما نكتب عامل الزٌاده بعد إسم المتغٌر نعنً به نفذ المطلوب من الجمله البرمجٌه أوالًال وبعدها‬
‫أضف واحد للمتغٌر‪.‬‬

‫‪ ‬مثال" إذا كان لدٌنا المتغٌر ‪ a‬قٌمته تساوي ‪ . 10‬ونسبنا قٌمه (‪ )a++‬للمتغٌر ‪ y‬فان قٌمه ‪y‬‬
‫; ‪y= a++‬‬ ‫ستصبح ‪ 10‬ألن عامل الزٌاده كتبناه بعد المتغٌر ‪. a‬‬
‫‪ ‬و قٌمه ‪ a‬تصبح ‪ 11‬بعد تنفٌذ هذا السطرالبرمجً ‪.‬‬

‫بإختصار ‪ :‬أسندنا قٌمه المتغٌر ‪ a‬للمتغٌر ‪ y‬أوالًال ثم بعد ذلك أضفنا الواحد للمتغٌر ‪.a‬‬

‫‪ ‬وإذا أسندنا قٌمه (‪ )++a‬للمتغٌر ‪ y‬فإن قٌمه ‪ y‬تصبح ‪ 11‬ألن عامل الزٌاده كتبناه قبل المتغٌر ‪a‬‬
‫; ‪y= ++a‬‬ ‫و قٌمه ‪ a‬تساوي ‪ 11‬عند وبعد تنفٌذ السطر البرمجً‪.‬‬

‫بإختصار ‪ :‬أضفنا الواحد للمتغٌر ‪ a‬أوالًال ‪ .‬ثم بعد ذلك أسندنا قٌمه المتغٌر ‪ a‬للمتغٌر ‪.y‬‬
‫والكود التالً ٌوضح الطرٌقتٌن السابقتٌن ‪:‬‬

‫ومخرجات هذا الكود ماٌلً‪:‬‬

‫عندما نكتب السطر البرمجً التالً ‪:‬‬


‫; ‪a++‬‬
‫أو‬

‫; ‪++a‬‬

‫فال فرق بٌنهما فً هذه الحاله ألنه عند اإلنتهاء من تنفٌذ أي من السطرٌن تكون قٌمه المتغٌر ‪ a‬الجدٌده‬
‫تساوي قٌمته القدٌمه مضاف إلٌها واحد ‪.‬‬
‫ةستخذاو عبيم انزيبدِ ؟‬
‫‪ ‬ثرَبيج إلظٓبر االرقبو يٍ ‪ 1‬اني ‪ 4‬إ‬

‫‪ ‬أما عامل النقصان فهو ٌعمل بنفس طرٌقه عامل الزٌاده إال أنه ٌقوم بالطرح‪.‬‬

‫ما ناتج ماٌلً ‪:‬‬ ‫‪‬‬


‫)‪1‬‬

‫;‪int y =5 , z=10‬‬
‫; ) ‪cout<< ( y++ + --z‬‬
‫‪ ‬بما أن قٌمه المتغٌر ‪ y‬االبتدائٌه تساوي ‪ 5‬وعامل الزٌاده بعده‪ .‬فإن قٌمته فً هذا السطرهً ‪5‬‬
‫والزٌاده تكون بعد الخروج من تنفٌذ هذا السطر‪.‬‬
‫وبما أن قٌمه المتغٌر ‪ z‬االبتدائٌه ‪ 10‬وعامل النقصان قبله فإن قٌمته فً هذا السطر هً ‪ 9‬حتى بعد‬
‫الخروج من تنفٌذه ‪.‬‬
‫إذن سٌطبع علً الشاشه ‪ 14‬وهو ناتج الجمع‪.‬‬
‫)‪2‬‬

‫; ‪int a =10‬‬
‫; ‪int b = 20‬‬
‫; ) ‪cout<<( --b + ++a‬‬

‫عامل الزٌاده والنقصان قبل المتغٌرٌن إذن سٌطبع علً الشاشه ‪. 30‬‬
‫)‪3‬‬
‫; ‪int a=3 , b=2‬‬
‫;‪cout<<(a++ + --b)<<endl‬‬
‫;)‪cout<<(a + b‬‬

‫‪ ‬عندما ٌكون عامل الزٌاده أو النقصان بعد المتغٌر نقوم بتجاهله فً هذا السطر‪.‬علما ًال بأن الزٌاده أو‬
‫النقصان نتعامل معها بمجرد تنفٌذ هذا السطر‪.‬‬
‫إذن سٌطبع ‪:‬‬
‫‪4‬‬
‫‪5‬‬

‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬
‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬
‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬

‫ﺇﻧﻪ ﺍﻟﺨﻠﻖ ﺍﻟﻌﻈﻴﻥ ﺍﻟﻤﺠﺘﺒَﻰ‬


‫ﻭﻫﻮ ﻣﺸﻜﺎﺓ ﺍﻟﻔﻀﻴﻠﺔ ﻭ ﺍﻟﻤَﻌﻴﻩ‬
‫ﺻﻠﻰ ﺍﻟﻠﻪ ﻋﻠﻰ ﻣﺤﻤﺪ ﺻﻠﻰ ﺍﻟﻠﻪ ﻋﻠﻴﻪ ﻭﺳﻠﻥ‬
‫" لو ضربت الجبل بالزجاج ألف ضربة ما انكسر ‪ !!..‬ولو سترت الصبح بكل شيء ما أنستر ‪ !!..‬إنو خيار من خيار من‬
‫ِ‬ ‫ض َّل ِ‬
‫صاحبُ ُك ْم َوَما غَ َوى ) ‪ ..‬ونطقو ( َوَما يَنط ُق َع ِن ال َْه َوى ) ‪ ..‬وعلمو ( َعلَّ َموُ‬ ‫خيار زكاه اهلل وكفاه ‪ ..‬زكى استقامتو ( َما َ َ‬
‫ص ُر َوَما طَغَى ) ‪ ..‬وصدره وذكره ( أَلَ ْم نَ ْش َر ْح‬ ‫ِ‬
‫غ الْبَ َ‬
‫اد َما َرأَى ) ‪ ..‬وبصره ( َما َزا َ‬ ‫ب الْ ُف َؤ ُ‬
‫َشدي ُد الْ ُق َوى ) ‪ ..‬وفؤاده ( َما َك َذ َ‬
‫ِّل ِ‬ ‫ِ‬ ‫ِ‬ ‫ِ‬
‫وخلقو ( َوإنَّ َ لَ َلى ُخلُ ٍقق َع ٍقيم ) ‪ ..‬وزكاه كلو ( َوَما أ َْر َسلْنَا َ إ َّ َر ْح َمةًة ل ْل َالَم َ‬
‫ين)‬ ‫ض ْنَا َعن َ ِوْزَر َ ) ‪ُ ..‬‬ ‫ص ْد َر َ * َوَو َ‬
‫لَ َ َ‬
‫فذا كتاب اهلل أثنى مفصحا ** كان القصور قصارى كل فصيح "‬ ‫إ‬

‫من كتاب " إٌماض البرق فً خلق سٌد الخلق صلى وسلم علٌه الحق لفضٌلة الشٌخ علً بن عبدالخالق القرنً"‬

‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬
‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬
‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬
‫** عوامل التعيين الحسابي **‬

‫هً عوامل حسابٌه ( ‪ ) - ، % ، * ، / ،+‬تكتب قبل عالمه ٌساوي ( =) مثل ‪:‬‬

‫=‪+‬‬ ‫=‪%‬‬ ‫=*‬ ‫=‪-‬‬ ‫=‪/‬‬

‫وعندما تكتب بهذه الطرٌقه فإن لها معنى برمجً فً لغه ‪ c++‬وفً لغات أخرر أٌضا ًال‪ .‬وهً عنصر‬
‫قوي فً البرمجه‪.‬‬
‫وتعمل هذه العوامل مع المتغٌرات وذلك إلجراء إضافه أو طرح أو قسمه أو باقً القسمه للمتغٌرات ‪.‬‬
‫مثالًال اذا كتبنا ); ‪ ) a+=10‬فهذا ٌعنً إضافه ‪ 10‬للمتغٌر ‪.a‬‬
‫أي بمعنً أن قٌمه المتغٌر ‪ a‬الجدٌده تساوي قٌمته القدٌمه مضاف الٌها الـ ‪ .10‬وبهذا ٌمكن أن نكتب‬
‫السطر البرمجً السابق بهذه الطرٌقه (;‪ . ) a= a+10‬وكل السطرٌن ٌؤدي الً نفس المعنى‪ .‬أي ال‬
‫فرق بٌنهما‪.‬‬

‫;‪int a=3‬‬
‫\‪1‬‬ ‫قيمه ‪ a‬الجديده ستصبح ‪. 1‬‬
‫;‪a -=2‬‬
‫;‪int x=100‬‬
‫\‪2‬‬ ‫قيمه المتغير ‪ x‬ستصبح ‪. 50‬‬
‫;‪x/=2‬‬
‫; ‪int num=12‬‬
‫\‪3‬‬ ‫قيمه المتغير ‪ num‬تصبح صفر ‪(.‬باقي القسمه)‬
‫;‪num%=3‬‬
‫; ‪int num=12‬‬
‫\‪4‬‬ ‫قيمه المتغير ‪ num‬تصبح ‪.4‬‬
‫;‪num/=3‬‬

‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬
‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬

‫"ٌا أٌها الذٌن آمنوا اتقوا هللا حق تـُــقاته و ال تموتـُــنّ إال و أنتم مسلمون"‬
‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬
‫ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال ًال‬
‫التركيبو ‪switch‬‬

‫هً أداة شرطٌه تستخدم إلختبار متغٌر ما‪ ،‬له مجموعه من الحاالت‪.‬أي بمعنى أخر عندما نرٌد أن نفعل‬
‫شئ بناء علً وقوع حدث معٌن وفضاء العٌنه (مجموعه األحداث الممكن وقوعها) لهذه األحداث لٌست‬
‫بالقلٌله‪.‬‬
‫مثالًال إذ أردنا أن نكتب برنامج ٌستقبل رقم من المستخدم وٌقوم البرنامج بتحوٌل الرقم الً صٌغه لفظٌه‪.‬‬
‫‪ 1‬إلً ‪ one‬و ‪ 2‬إلً ‪ .. tow‬وهكذا الً الرقم ‪. 10‬فً هذه الحاله ٌمكن ان نستخدم التركٌبه ‪، switch‬‬
‫لسهولتها فً التعامل مع مثل هذه الحاالت‪.‬‬
‫الصٌغه العامع لها ‪:‬‬
‫)المتغٌر المراد اختباره ( ‪Switch‬‬
‫بداٌه التركٌبه ‪{ //‬‬
‫‪ :‬الحادثه ‪case 1‬‬
‫‪Statement..‬‬
‫;‪break‬‬
‫‪ :‬الحادثه ‪case 2‬‬
‫‪Statement..‬‬
‫;‪break‬‬

‫‪ :‬الحادثه ‪case n‬‬


‫;‪break‬‬
‫‪default :‬‬
‫‪Statement..‬‬
‫نهاٌه التركٌبه ‪} //‬‬

‫‪ ‬نكتب بعد الكلمه المحجوزه )‪ (case‬أحد القٌم للمتغٌرالمتوقع حدوثها ‪ .‬ومكان ‪Statement‬‬
‫نكتب مانرٌده‪.‬‬
‫‪ ‬الكلمه المحجوزه ‪ break‬هً إلٌقاف التركٌبه ‪ switch‬حتً التختبر باقً الحاالت فً حاله وجود‬
‫الحدث المعٌن‪.‬‬
‫‪ ‬الكلمه المحجوزه ‪ default‬نكتب بعدها مانرٌده فً حاله لم تتحقق ( تتطابق) أي حاله من الحاالت‪.‬‬

‫بالمثال ٌتضح المقال ‪: : :‬‬


‫ةستخذاو انتركيجّ ‪ switch‬إلختجبر انحرف انًذخم يٍ‬‫‪ ‬أكتت ثرَبيج إ‬
‫إَتٓبء‬
‫انًستخذو ارا كبٌ ‪ y‬يظٓر رسبنّ ترحيت ٔإرا ‪ n‬يظٓر رسبنّ تفيذ ة‬
‫عًم انجرَبيج ‪:‬‬

‫مناقشه ‪:‬‬
‫سنتعامل مع أربعه حروف ألن لغه الـ ‪ c++‬حساسه لحاله األحرف (هناك فرق بٌن الحرف الصغٌر‬
‫والكبٌر)‪.‬‬
‫عندما نرٌد لوقوع أكثر من حدث نفس الفعل‪ ،‬ما علٌنا إال أن نكتب كل الحاالت مع بعض ثم بعد ذلك‬
‫نكتب الفعل ‪ ...‬الحظ المستطٌلٌن فً الكود ‪:‬‬

‫الكود ‪:‬‬
‫حلقات التكرار‬

‫ٌوجد ثالث أنواع من حلقات التكرار ال تختلف كثٌراًال عن بعضها ‪:‬‬


‫‪1. for‬‬
‫‪2. do….. While‬‬
‫‪3. while‬‬

‫ونسخدم حلقات التكرار عندما نرٌد أن ننفذ سطر برمجً أو عدد من األسطر البرمجٌه عدد من المرات‪.‬‬
‫فمثالَ إذا أردنا أن نظهر كلمه " ‪ " Software‬ثالثون مره علً شاشه اإلخراج البد لنا من كتابه الكلمه‬
‫ثالثون مره علً المحرر ‪ ...‬والكن بإستخدام إحدر حلقات التكرار ٌمكن ان نكتب الكلمه مره واحده فقط‬
‫علً المحرر ‪ .‬وهذا ساعد من تقلٌل الوقوع فً االخطاء‪.‬‬

‫ﻋﻨﺪﻣﺎ ﻧريﺪ أﻦ ﻧﻜﺘب حﻠقﻪ تﻜرﺍر لابﺪ أﻦ ﻧرﺍﻋي ﻟثلاثﻪ أشﻴﺎء ‪:‬‬

‫أوالًال ‪ :‬تحدٌد قٌمه إبتدائٌه أبدا منها العد وغالبا ًال ماٌكون عدد صحٌح مثالًال أبدا من الرقم واحد ‪)int i=1;(.‬‬
‫ثانٌا ًال ‪ :‬شرط لتشغٌل وإٌقاف حلقه التكرار‪ .‬كأن أقول إبدا من واحد ونفذ المطلوب مراراًال وتكراراًال طالما أن‬
‫عداد الحلقه أقل من أو ٌساوي الثالثون ‪.)i<=30(.‬‬
‫ثالثا ًال ‪ :‬تحدٌد مقدار الزٌاده فً الحلقه أي بمعنً أن الحلقه بدأت من الرقم واحد ومع كل دوره للحلقه‬
‫ستزٌد القٌمه االبتدائٌه بمقدار واحد مثالًال‪)i++ ( .‬‬

‫حلقه التكرار ‪for‬‬

‫الصيغه العامه لها ‪:‬‬

‫) مقدار الزياده ; شرط التشغيل_التكرار_ ; قيمه ابتدائيه ( ‪for‬‬

‫{‬
‫‪Statement..‬‬

‫}‬
‫‪ ‬نطجبعّ انكهًّ ‪ software‬ثالثٌٕ يرِ ستكٌٕ حهقّ انتكرار كبنتبني‪:‬‬

‫) ‪for ( int i=1 ; i<=30 ; i++‬‬


‫{‬
‫;"‪cout<<"software \n‬‬
‫}‬

‫وسٌتم تنفٌذها بالصوره التالٌه ‪ :‬إبدا من قٌمه الـ ‪ i‬االبتدائٌه وهً واحد واذا تحقق الشرط (‪ )i<=30‬نفذ‬
‫العباره بٌن قوس البداٌه والنهاٌه ;"‪ cout<<"software \n‬وإرجع للحلقه مره أخرر وسٌزٌد مقدار‬
‫الــ ‪ i‬بواحد ألن ‪ i++‬تعنً إضافه واحد كما أوضحنا فً ما سبق‪.‬وٌتحقق من الشرط مره أخري وبتحققه‬
‫سٌنفذ العباره وسٌزٌد قٌمه الــ ‪ i‬وٌتحقق من الشرط مره أخرر وهكذا‪ ...‬إلً أن ٌصل قٌمه المتغٌر ‪i‬‬
‫لثالثون وستنتهً الحلقه ألن الشرط لن ٌتححقق بعد هذه الدوره‪.‬‬

‫الكود كامل ‪:‬‬

‫‪ ‬ملحوظه ‪ :‬عندما نرٌد تنفٌذ سطر برمجً واحد بإستخدام حلقه التكرار فلن نحتاج لقوس بداٌه‬
‫ونهاٌه للحلقه ألن أول سطر ٌكتب بعد الحلقه ٌعتبر تبع الحلقه فال حاجه لكتابه االقواس‪.‬‬
‫‪ٌ ‬مكن تعرٌف متغٌر القٌمه االبتدائٌه خارج الحلقه هكذا ‪:‬‬
‫; ‪int i‬‬

‫)‪for (i=0 ; i<=30 ; i++‬‬

‫‪ٌ ‬مكن اٌقاف الحلقه والخروج منها بإستخدام أداة شرط ‪.‬وٌمكن أن نجعل الحلقه تعمل دون توقف‪.‬‬

‫ةستخذاو حهقّ ‪: for‬‬


‫‪ ‬ثرَبيج نطجبعّ االعذاد يٍ ‪ 1‬اني ‪ 10‬إ‬

‫ٌمكننا طباعه هذه االعداد بطباعه قٌم عداد الحلقه وغالبا ُ مانسمٌه ‪ i‬كعُرف بٌن المبرمجٌن‪.‬‬

‫الكود ‪:‬‬

‫إذا لم نقم بوضع مسافه بٌن االعداد فإن األعداد ستظهر بالشكل التالً ‪:‬‬

‫وهناك الكثٌر الكثٌر بما ٌمكن أن نفعله بهذه الحلقه وٌمكن إضافه حلقه أخرر داخل الحلقه الرئٌسٌه وهذا‬
‫ما ٌسمى بتداخل حلقات الــ ‪. for‬‬
‫حلقو التكرار ‪do... while‬‬

‫وتعنً إفعل ‪ ...‬طالما (بٌنما) أي نفذ العبارات طالما أن الشرط متحقق‪.‬وأٌضا ًال لها قٌمه إبتدائٌه نبدأ منها‬
‫وشرط توقف ومقدار زٌاده أو نقصان‪.‬‬

‫الفرق بٌنها وبٌن حلقه التكرار ‪: : : for‬‬

‫لٌس هناك إختالف كبٌر بٌنهم ‪ٌ.‬مكن أن نقول بأن اإلختالف حسب إستخدامنا لها‪ .‬نستخدم الـ‬
‫‪ do..while‬غالبا ًال عندما ال نعرف عدد مرات التكرار الالزمه للوصول الً نتٌجه معٌنه ‪ .‬مثالًال أرٌد‬
‫برنامج ٌضرب اي عدد أقل من ‪ 50‬فً الرقم ‪ 2‬وٌكرر هذه العملٌه إلٌـــــن ما ٌصبح الرقم أكبر من أو‬
‫ٌساوي ‪ . 50‬فً هذه الحاله نحن ال نعرف كم عدد مرات التكرار (الضرب فً ‪ )2‬المطلوبه لذلك‪ .‬وهذا‬
‫مثال للتقرٌب‪.‬ونستخدم األخرر غالباًالعندما نعلم مسبقا عدد مرات التكرار الالزمه‪.‬‬

‫الصيغه العامه ‪:‬‬

‫; قيمه إبتدائيه لعداد الحلقه‬


‫‪do‬‬
‫{‬
‫‪statement..‬‬
‫; مقدار الزياده لعداد الحلقه‬
‫}‬
‫; ) شرط التشغيل_التكرار_ ( ‪while‬‬

‫‪ ‬فً حلقه التكرار هذه ٌُنفذ ما بداخل أقواس الـ ‪ do‬أوالًال ثم ٌتم التحقق من الشرط الموجود داخل‬
‫أقواس الكلمه المحجوزه ‪ while‬وٌكرر ذلك إلً أن ال ٌتحقق شرط االستمرار‪.‬‬
‫ةستخذاو حهقّ انتكرار‬
‫‪ ‬ثرَبيج الستخراج األعذاد انفرديّ يٍ ‪ 10‬إني ‪ 30‬إ‬
‫‪: do..while‬‬

‫مناقشه ‪:‬‬
‫سنبدا من الرقم ‪ 10‬مروراًال بكل األرقام الصحٌحه إلً أن نصل الً ‪ 30‬وفً كل مره نختبر إذا كان‬
‫العدد فردي أم ال ‪.‬وٌُطبع علً الشاشه إذا كان فردي‪.‬‬

‫تعمل الحلقه بهذه الطرٌقه ‪:‬‬


‫إفعل } إختبر القٌمه اإلبتدائٌه هل فردٌه ؟ أم ال ‪ .‬إذا فردٌه أرسلها لشاشه اإلخراج‪ .‬أضف واحد لقٌمه‬
‫المتغٌر الذي بدأنا به حلقه التكرار {‬
‫طالما ‪ :‬أن قٌمه المتغٌر لم تتجاوز الثالثون‪.‬‬

‫كود البرنامج ‪:‬‬

‫=! تعنً الٌساوي‬

‫‪ٌ ‬مكن كتابه هذا البرنامج بدون أداة الشرط ‪ if‬والكن على أن نستعمل عامل التعٌٌن الحسابً‬
‫إلضافه ‪ 2‬مع كل دوره للحلقه‪ .‬أي بمعنً إبدال ;‪ i++‬بـــ ;‪ . i+=2‬والكن ٌجب أن تكون القٌمه‬
‫االبتدائٌه ‪ 11‬ألنها أول عدد صحٌح فردي بعد الـ ‪ 10‬وإذا بدأنا من الـ ‪ 10‬سٌتم طباعتها‪ .‬وشرط‬
‫التوقف والتشغٌل ٌكون (‪ . )i<=29‬وهذه الطرٌقه أسرع من الطرٌقه األولً ‪.‬ولكن إستخدمت‬
‫الطرٌقه األولً ألنها أكثر فائده للتعلم‪.‬‬
‫ٌصبح الكود بالشكل التالً ‪:‬‬

‫سؤال ‪ :‬لماذا أوقفنا الحلقه عند العدد ‪ 29‬؟؟؟ جاوب أنت حبٌبً الغالً‪.‬‬

‫=<‬ ‫أقل من أو ٌساوي‬


‫=>‬ ‫أكبر من أو ٌساوي‬
‫!=‬ ‫ال ٌساوي‬

‫سبحان هللا و الحمدهلل و ال إله إال هللا و هللا أكبر‬


‫حلقو التكرار ‪while‬‬

‫الصيغه العامه ‪:‬‬

‫; قٌمه إبتدائٌه لعداد الحلقه‬


‫)شرط التكرار( ‪While‬‬

‫{‬ ‫قوس البداٌه ‪//‬‬


‫‪Statement..‬‬
‫; مقدار الزٌاده لعداد الحلقه‬
‫}‬ ‫قوس النهاٌه ‪//‬‬

‫هذه الحلقه ال تختلف كثٌراًال عن حلقه التكرار ‪ٌ do.. while‬مكن أن نقول أن اإلختالف بٌنهما أن هذه‬
‫الحلقه (‪ )while‬تختبر الشرط أوالًال وإذا تحقق تبدأ بتنفٌذ المطلوب‪ .‬أما الثانٌه فتنفذ المطلوب مره واحده‬
‫علً األقل ثم ترجع للتختبر شرط التكرار‪.‬‬

‫جدول ٌوضح الفرق بٌنهما ‪:‬‬

‫‪do.. while‬‬ ‫‪While‬‬ ‫‪No‬‬

‫تختبر الشرط أوالًال ثم تبدأ فً التنفٌذ اذا‬


‫تنفذ ثم تختبر الشرط لالستمرار‬ ‫‪/1‬‬
‫تحقق‬

‫لها تنفٌذ واحد علً االقل‬ ‫قد ال ٌكون لها أي تنفٌذ‬ ‫‪/2‬‬

‫نكتب ‪ );( semicolon‬نهاٌه تركٌبه‬ ‫النكتب ‪ );( semicolon‬نهاٌه تركٌبه‬


‫‪/3‬‬
‫‪while‬‬ ‫‪while‬‬
‫‪ ‬ثرَبيج إلظٓبر األعذاد يٍ ‪ 100‬إني ٔاحذ ثإستخذاو حهقّ انتكرار ‪. while‬‬

‫مناقشه ‪:‬‬
‫ستبدأ الحلقه من الرقم‪ 100‬وصوالًال الً الرقم واحد وفً كل مره نقوم بإظهار عداد حلقه التكرار( ‪.)i‬‬
‫والكن مقدار الزٌاده سٌكون بالسالب ‪ ،‬واألفضل أن نستخدم عامل النقصان ألن ترتٌب األرقام‬
‫المطلوب تنازلً‪.‬وٌكون شرط اإلستمرار أن ٌصل عداد الحلقه الً الواحد وال ٌتعداه ( ‪.)i>=1‬‬

‫الكود ‪:‬‬

‫الكيِّلس من دان نفسو وعمل لما ب د الموت‪ ،‬وال اجز من أتبع نفسو ىواىا وتمنى على اهلل األماني‬
‫برامج متنوعو‬

‫ةستخذاو حهقّ ‪: for‬‬


‫‪ ‬أكتت ثرَبيج يقٕو ثحسبة يضرٔة انعذد إ‬
‫مناقشه ‪:‬‬
‫من المعروف أنه إلٌجاد مضروب العدد فإننا نقوم بضرب العدد فً العدد األقل منه مباشره فً األقل‬
‫منه ‪ ..‬إلً أن نصل ‪ 1‬والٌؤثر الضرب فً واحد كما نعلم ( محاٌد ضربً) ‪.‬‬
‫إذا فرضنا أن الرقم المراد إٌجاد مضروبه ‪ N‬فإن مضروبه ٌساوي ‪:‬‬

‫‪N * n-1 * n-2 * ….. * 3 * 2 * 1‬‬

‫هذا ٌعنً أننا سنستخدم عامل التعٌٌن الضربً‪.‬‬


‫ٌجب أن ٌكون المتغٌر _المراد حفظ الناتج األخٌر فٌه_ قٌمته اإلبتدائٌه واحد ألنه ال ٌتاثر بالضرب‪.‬‬

‫‪ ‬إذن عداد الحلقه سٌبدأ من الرقم المدخل من قبل المستخدم (‪ )i=n‬وشرط اإلستمرار أن قٌمه عداد‬
‫الحلقه ال ٌصل الصفر وٌتوقف عند الواحد أو اإلثنٌن ال ٌفرق‪ . )i>=1 ) .‬ومقدار الزٌاده ٌكون‬
‫بالسالب واألفضل أن نستخدم عامل النقصان ألننا نرٌد الوصول الً الواحد (‪)i--‬‬
‫‪ ‬بما أن الصفر حاله خاصه فإننا سنخرجه من الحلقه بأداة الشرط ‪.if‬‬

‫الكود‪:‬‬
‫‪ ‬الحظ أننا تجاهلنا التعامل مع األرقام السالبه ‪ .‬ماذا سٌحدث إذا أدخلنا رقم سالب ؟؟؟ أترك‬
‫االجابه لك أخً‪/‬أختً فً هللا‪.‬‬

‫‪ ‬أكتت ثرَبيج نطجبعّ جذأل انضرة ‪:‬‬


‫مناقشه ‪:‬‬
‫سنستخدم حلقتٌن ‪. for‬وهذا ماٌسمً بتداخل حلقات الـ ‪ for‬كما سبق‪.‬‬

‫شرح سرٌع لها (تداخل الـ ‪ :)for‬مع كل دوره للحلقه الخارجٌه ٌتم تنفٌذ الحلقه التً بداخلها بكاملها‬
‫الً نهاٌتها وٌرجع مره أخري الً الخارجٌه وٌكرر ذلك الً أن تنتهً الحلقه الخارجٌه أو تلك التً‬
‫كتبت اوالًال أنظر الً الكود‪.‬‬

‫الكود ‪:‬‬

‫‪ ‬مع كل قٌمه من قٌم الـمتغٌر ‪ . i‬قٌم الـمتغٌر ‪ j‬تتغٌر من ‪ 1‬الً ‪. 12‬‬


‫جزء من الناتج ‪:‬‬

‫‪ ‬ثرَبيج إلظٓبر األرقبو انزٔجيّ ٔانفرديّ دٌٔ إستخذاو أداح شرط‪ .‬يٍ ‪ 1‬اني‬
‫‪: 100‬‬
‫مناقشه ‪:‬‬
‫سنستعمل حلقتٌن تكرار منفصلتٌن عن بعضهما علً أن تكون الزٌاده بمقدار ‪ 2‬مع كل دروه‬
‫للحلقه ونبدأ بأول رقم زوجً من إتجاه الواحد إلظهار األرقام الزوجٌه و هذه الحلقه األولى‪.‬‬
‫وأول رقم فردي إلستخراج األرقام الفردٌه وتكون هذه حلقه التكرار الثانٌه‪.‬‬
‫الكود ‪:‬‬
‫هل ٌمكن أن تعمل حلقات التكرار مع الحروف ؟؟؟ لماذا ال نجرب !‬
‫‪ ‬ثرَبيج نطجبعّ انحرٔف اإلَجهيزيّ انكجيرِ ٔ انصغيرِ ثإستخذاو حهقّ تكرار ‪:‬‬

‫‪ ‬نغٌر عداد الحلقه من رقمً الً حرفً ‪.‬‬


‫الكود ‪:‬‬
‫ةستخراج انُسجّ انًئٕيّ نخًس عاليبت‪ .‬عهًب أٌ‬ ‫‪ ‬أكتت ثرَبيج يقٕو إ‬
‫انذرجّ انقصٕٖ ألي يبدِ يبئّ درجّ ‪:‬‬
‫الكود ‪:‬‬

‫إذا رأٌت الناس ٌعجبون بك ‪ ،‬فأعلم أنهم ٌعجبون بجمٌل أظهره هللا منك ‪ ،‬وال‬
‫ٌعلمون عن قبٌح ستره هللا علٌك ‪ " ،‬فاشكر هللا والتغتر"‬
‫‪ ‬أكتت كٕد الستخراج انشكم انتبني ‪:‬‬

‫الكود ‪:‬‬

‫‪ ‬ثرَبيج يتعبيم يع َص (يصفٕفّ حرفيّ) ‪:‬‬


‫أنظر فقط !!‬
‫الكود والناتج ‪:‬‬
‫نصيحه‪:‬‬
‫ُخذ الفكره فقط من كل برنامج (الهدف منه) وحاول أن تكتبه بطريقتك الخاصه فهذا ُينمي قدرتك‬
‫في البرمجه إن شاءهللا‪.‬‬

‫سؤال ؟‪:‬‬
‫_ أكتب برنامج يتضمن التركيبه ‪ switch‬لها ثالث حاالت مع كل حاله أكتب حلقه من حلقات التكرار‬
‫الثالثه ‪ ،‬وكل حلقه لها عمل مختلف من ألاخري ‪،‬أي أن املستخدم عليه أن يدخل واحد من ثالث‬
‫خيارات ومع كل اختيار يظهر ش ئ مختلف علي شاشه الاخراج‪.‬‬
‫ملحىظه ‪ :‬إستخدم قىس بدايه ونهايه لكل حاله إذا كان هناك أكثر من جمله برمجيه للحاله مثل ‪:‬‬

‫‪case 1 :‬‬
‫{‬
‫;"‪cout<<"!!!!!!\n‬‬
‫)‪for(…;…;….‬‬
‫;"@@@"<<‪cout‬‬
‫;‪} break‬‬

‫عــذراَ إن قصرت و أخطأت فإنً إجتهدت وقصدت الخٌر‪ ،‬وعـذراًال إن نسٌت فمن نفسً‬
‫والشٌطان وماتوفٌقً إال باهلل‬

You might also like