
المشاركة الأصلية كتبت بواسطة الذيبه العسوله
السلام عليكم و الرحمه..

عندي امتحان c++
بس انا ما مب فاهمه قاعده الloop
while
switch
for
:shock22: هالقواعد لافه راسي ومب قادره افهمها ..

الله يخيليكم
ولو شرح بسيط..

if و switch امتشابهتان. هؤلاء ادوات استجواب الحالة. بالعربي, انهما مثل عبارات "اذا كان كذا و كذا. فافعل كذا و كذا". نستخدم هذه الشروط لنتصرف على حالة ما نترقبها, و لاكن لا ندري اذا سوف نقابلها. مثلا:
"اذا اتى والدك, اخبره باني انتظره"
"اذا رائيت التنين, استخدم هذه العصاة السحرية"
"اذا جاء نصر الله و الفتح .. فسبح بحمد ربك و استغفره"
if تعني "اذا". كل الجمل اعلاه لديها شرط و "تصرف". اعتذر عن عربيتي الركيكة مسبقا. الشرط يحدد الحالة التي نتوقعها, و التصرف يحدد كيف نتصرف مع الحالة. و لكن, ما اذا كان لدينا اكثر من حالة؟ بالعربية نقول "اذا كذا و كذا, فافعل كذا و كذا, اما اذا ..."
هل رائيتي ذلك؟ كل ما علينا فعله هو لصق حالتين ب "اما". مثلا:
"اذا رائيت التنين, استخدم هذه العصاة السحرية, اما اذا رائيت العفريت فاستخدم سيفك ..."
نفس الشيئ مع if, فهي تعني "اذا" بالانجليزية.
كود:
if (you_see (dragon)) {
use_magic_stick ();
}
و اذا لديك اكثر من حالة, تستخدم "اما" و هي if-then-else.
كود:
if (you_see (dragon)) {
use_magic_stick ();
else
if (you_see (genie)) {
use_sword ();
}
}
و لكن مع ازدياد الحالات تتراكم علينا التصرفات و يصعب معرفة ما يحدث. البرمجة ليست كالحديث و القراءة, قليلا ما يجب علينا تغيير ما نقراءه او نسمعه من اشارات. ولكن في البرمجة, و كاننا نساهم في تحرير و تغيير هذا الخطاب, يجب ان نتلقاه و ايضا يجب ان نلقيه الى الحاسوب. ازدواجية دور المبرمج كملتقي التعليمات من الكاتب السابق للبرنامج, و ايضا كونه كملقي لهذه الاشارات و الامور كونه كمحرر, هذه الازدواجية تفرض علينا ان ننتبه للبرامج اكثر مما ننتبه الى اي نوع اخر من تعليمات. قد لا يبالي قراء الصحف بالعمل الصحفي, و كيفية البحث عن الحقيقة و التاكد من المصادر و الاعمال الميكانيكية التي تحدث في كل دار نشر من تصميم الصفحات الى صيانة الاّت الطباعة الخ. و لكن المبرمجين نوع من "القراء" يجب عليهم الانتباه الى كل هذه التفاصيل. لا يجب ان نقراء برنامجا كما نقراء صفحة الرياضة, غالبا ما نقراء البرامج لكي نصححها و نغيرها.
لهذه الاسباب ترى لغات البرمجة تيسرن التحرير و تصرن على دقة الاشارة اكثر من لغات الخطاب بين البشر. من هذه التيسيرات هو تيسير عبارات فحص الحالات. كما ذكرت سابقا, يمكننا ان نختبر حالات عدة بمجرد استخدام "اذا .. ف .. اما اذا ... ف ..الخ.". لغة برمجة سي تبسط هذا الى تقرين بسيط. لنستخدم المثال السابق, سندباد يستعد الى الرحيل و يهيء نفسه لمقابلة تنينات و عفاريت. يمكننا برمجة لعبة عن سندباد حيث نقوم باستخدام دالات لوصف افعاله و تصرفاته:
see ()
hear ()
use ()
run ()
jump ()
fight ()
الدالات ترمز الى افعال. اذا اردنا الرمز الى الاشياء, نستخدم البيانات و المتغيرات المناسبة.
ٍSinbad
Beast
Ship
Baghdad
Dragon
Genie
يمكننا ان نرمز المثال اعلاه برمجايا مثل:
كود:
switch ( see() ) {
case Dragon:
use (magic_stick);
break;
case Beast:
use (sword);
break;
default:
break;
}
هذه نفس الاداة السابقة "اذا", لا تقلقي عن بقية الكلمات هناك, سوف تفهميا لا حقا, انها فقط قوالب, مثلا حين تقرائين رواية ممتعة هل تبدائين بقراءة الصفحة عن حقوق النشر و اسم الناشر؟ طبعا لا, نعبرها و نسرع الى اول صفحة.
فائدة ال switch تظهر حين نريد اضافة المزيد من الحالات. حتى الان, كان صديقنا سندباد يترقب و جود عفاريت و اشباح و لم يعرف كيف يتصرف حين يلقى اميرة جميلة, او احد من اصدقائه او بحيرة و سط الصحراء, الخ. دعنا نغير سندباد من محارب متربص, و نعطيه بعض الصفات التي تمكنه من "النظر", و البصيرة من الله سبحانه و تعالى و حده.
كود:
switch ( see() ) {
case Dragon:
use (magic_stick);
break;
case Beast:
use (sword);
break;
case Princess:
say ("اهلا بك اميرتي");
give (flower);
break;
case Aladin:
say ("اهلا بك مجددا يا علاء الدين, سررت بلقائك");
break;
default:
break;
}
كل الحالات تلك كنا نترقبها و اعددنا للتصرف بها. و لكن اذا كنا في حالة عادية, مثلا حين يمش سندباد و يرى اشياء لا يحتاج الى التصرف لها, مثلا اذا مر بجبل او بوادي او باشجار, اشياء لا تلفت نظره, فهو لا يقف و لا يغير من حركاته. لتلك الحالات الغير خصوصية, نستخدم التصرف الطبيعي. التصرف الطبيعي لطائرة هو مواصلة الطيران, و لسندباد اللعبة قد يكون مواصلة الجري:
كود:
....
default:
run ();
break;
هذا عن ادوات الاختيار. سوف اكتب عن ادوات التكرار لاحقا, اذا كان لدي بعض الوقت.