![]() |
|
دورة في اساسيات c++ - الدرس الرابع - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4) +--- قسم : قسم لغة ++C (http://vb4arb.com/vb/forumdisplay.php?fid=19) +---- قسم : قسم دورات ++C (http://vb4arb.com/vb/forumdisplay.php?fid=38) +---- الموضوع : دورة في اساسيات c++ - الدرس الرابع (/showthread.php?tid=11258) |
دورة في اساسيات c++ - الدرس الرابع - AGASHE - 28-01-15 الدرس الرابع
* حلقات التكرار : عرفنا في الدرس السابق ان هناك نوعين من عبارات التحكم في البرامج الأولى هي الشرط و الثانية و هي التكرار و التي سوف نتعلمها اليوم بإذن الله . - معنى التكرار : يقصد بالتكرار هو إمكانية تنفيذ كود لعدة مرات بغرض توفير الوقت . مثلا لو طلب منك حصر درجات 1000 طالب ، المنطقي هو ان تمر على كل طالب و تأخذ درجته ، لكن الف طالب لا تستعجب في الماضي حتى لو كانوا 100000 كانوا يفعلوها ، لكن اليوم نحن لدينا الحاسوب الذي يستطيع تكرير الكود و استخراج درجات جميع الطلاب حتى لو كانوا 100000000 ، اذا التكرار له فوائد لا حصر لها و تظهر تلك الفوائد في المصفوفات كما سنرى في الدرس القادم .- مكونات أي تكرار : أي تكرار في أي لغة برمجة حتى لو كانت 0 و 1 يتكون من ثلاث أمور 1 - بداية التكرار : أي نقطة الانطلاق التي سيبدأ منها العد و هي غالبا 0 أو 1 (لا يشترط فقد تبدأ من 2775 مثلا ) 2 - نهاية التكرار : و هي تلك النقطة التي يتوقف عندها التكرار و هي في الغالب تكون عبارة شرط كما سنرى . 3 - العداد : و هو مقدار الزيادة او النقص . - التكرار قد يكون من 0 الى 10 و العداد موجب ، لكن لو اردنا العد من 10 الى 0 فتاكد من ان العداد بالسالب --------------------------------------------------
عبارات التكرار
1 - دالة for : و هي تعتبر الأكثر شمولية و شيوعا و بساطة كود : for(start ; stop ; counter){- في البداية نعرف متغير يفضل ان يكون int . - لا تنسى ان تفصل بين كل عبارة و الأخرى بالفاصلة المنقوطة ";" . - العداد - counter غالبا يكون على صيغة ++ او - - (راجع الدرس الثاني ) . - النهاية - stop ستراها على هيئة >10 , =<5 - البداية - start دائما = n . ناخذ مثال لطباعة الأرقام من 1 الى 10 : كود : int main(){كل ما قلناه موجود 1- عرفنا متغير i . 2 - البداية من 1 . 3- النهاية عند الشرط فاذا وصلت i الى 11 عندها ستتوقف الحلقة التكرارية . 4- كما تلاحظ ++i معناه زيادة بمقدرا واحد في كل دورة . - يعني ان كل دورة يتم اختبار الشرط فاذا تحقق ينفذ الكود و يزداد العداد الى ان يصل الى نقطة لا يتحقق فيها الشرط فتتوقف الحلقة . - بالنسبة لموضوع الزيادة : كود : I = I + 1جميع الطرق الموضحة أعلاه صحيحة و جرب كتابة الكود مرة أخرى بهم و سوف يعمل . ------------------------------------------
نأخذ مثال آخر يطبع الاعداد الزوجية من 0 الى 10 . كود : int main(){------------------------------------
طباعة الاعداد الفردية من 11 الى 0 :كود : int main(){1 - بدأنا من 11 كي نطبع الاعداد الفردية . 2 - لاحظ ان التوقف كان عند ( I >= 0 ) فلو عكستها لن يتوقف البرنامج و سيظل يعد حتى سالب مالانهاية لكنها لا تحدث في الواقع فالبرنامج لن ينفذ .-------------------------------------------------
هذه امثلة بسيطة و يوجد الكثير من الأفكار مثل إيجاد مجموع الاعداد من 1 الى 100 و .... الخ ، أمور أتمنى ان تجربها بنفسك اما المثال التالي فهو من اشهر الأمثلة عن التكرار و هو " برنامج المضروب " ، يقوم هذا البرنامج بحساب المضروب لرقم ما يدخله المستخدم .كود : int main(){لمن لا يعرف المضروب فهو حاصل ضرب الاعداد الأصغر الى 1 يعني مضروب 5 يساوي 5 * 4 * 3 *2 *1 = 120 . 1 - عرفنا ثلاث متغيرات I و هو عداد التكرار ، x و هي القيمة التي نريد لها المضروب ، z و هو المتغير الذي سيحمل المضروب . 2 - طلبنا من المستخدم ان يدخل رقم و نحمل القيمة للمتغير x . 3- وضعنا القيمة المبدئية لل z بواحد لا تنساها و لازم يكون 1 لانه المعامل المحايد الضربي يعني لا يؤثر في الضرب و أيضا لكي لا تواجهك مشاكل التنفيذ . 4 - بدائنا الحلقة من 1 لنفس السبب . 5 - اوقفنا الحلقة عند العدد الذي ادخله المستخدم و لاحظ ان مقدار الزيادة هو 1 في كل مرة . 6 - في كل دورة نجدد قيمة z بضربها في قيمة i الجديدة . 7 - بعد انتهاء الحلقة نطبع قيمة z للمستخدم و شكرا . -------------------------------------------
2 - دالة while : و هي أيضا مهمة و شائعة .كود : start;تماما كما درسنا for لكن الفرق في الشكل فهنا شرط التوقف هو فقط من يكون داخل الاقواس اما البداية فتعرف خارج الدالة و العداد يكون داخل الدالة . يعني شوف اول مثال اخذناه لكن مع while : كود : int main(){فط اختلاف في الشكل لكن أحيانا تكون while اكثر فائدة من for لكن ليس دائما . ----------------------------------------------------
- مثال المضروب ب while : كود : int main(){----------------------------------------------------------
3 - دالة do while : الأقل شيوعاكود : start;تختلف هذه عن اخواتها في ان السابقين يختبرون الشرط أولا ثم ينفذون الكود ام هنا فالامر مختلف فالتنفيذ أولا ثم اختبار الشرط . شوف مثالنا البسيط : كود : int main(){و هذا مثال المضروب : كود : int main(){ -------------------------------------------------------
4 -دالة goto : هذه الطريقة غير مضمونة لكنها تعتبر حركة تكتيكية مهارية يستعملها المحترفون و يضيع بها المبتدئون ![]() تعتمد عموما على (الملصقات - labels ) و هي شكل مختصر من الدوال لكنها ليست دالة ركز هي مجرد تعبير يتضمن مجموعة من الأوامر كالآتي :كود : start;انظر الى مثالنا الشهير : كود : int main(){كود : int main(){=====================================
رجاء اكرره في كل مرة ليس شرط ان تجرب كل الطرق
لكني أتمنى ان تجرب اكثر من برنامج من صنعك
يمكن ان تضيف if داخل الحلقات يمكن ان تعقد
العداد و تجعله يزداد بناء على قيم عمليات
جمع و طرح هناك الكثير من الأفكار
المهم هو التجريب و أي مشكلة
أي شيء لم تفهمه
او غير واضح
فلا تتردد
في السؤال
المفروض "في السؤال " تكون اصغر من "فلا تتردد" عشان يكتمل هرم
و الى اللقاء في المحاضرة القادمة
RE: دورة في اساسيات c++ - الدرس الرابع - Khamis abkr - 13-03-17 بالاول أود أن أشكرهذا المنتدى الرائع منتدى فجوال بيسك لك العرب والشكر الجزيل لك استاذ الدورة الغاليAGASHE على ما تقدمه... أنا جديد في المنتدى وفي كل المواقع ياريت تتحمل ثقلي عليكم ثانيا الدالهGOTO لم افهمها خاصة كلمة label ايش عملها ياريت لو توضح لي الطريقة بشكل أوسع أنا فهمي بطيئ شوي بارك الله فيكم وفي علمكم... RE: دورة في اساسيات c++ - الدرس الرابع - AGASHE - 03-06-17 (13-03-17, 10:30 AM)Khamis abkr كتب : بالاول أود أن أشكرهذا المنتدى الرائع منتدى فجوال بيسك لك العرب والشكر الجزيل لك استاذ الدورة الغاليAGASHE أهلا أخي ، بصراحة لم أزر المنتدى منذ فترة مع الأسف ، فأعتذر عن التأخر في الرد بالنسبة لدالة GoTo فهي تعني "عد للنقطة label " حيث أن label هو مجرد كلمة تشير لسطر معين ، طالما أن الشرط مازال محقق يعني مثلا (I < 10) سيعود التنفيذ إلى تلك النقطة حتى يخرج من الشرط و عندها يتابع البرنامج العمل. عموما هذه الطريقة تعتبر من أقدم الطرق و تقريبا هي أصل الحلقات التكرارية و من الأفضل تجنبها فهي تعبث بسير البرنامج، فقط أن ذكرتها للأمانة العلمية لا غير
|