الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الفائدة الحادية عشر ( الحالات او الاحتمالات )

مغلق
بدأه عبدالرحمن في 10 نوفمبر 2001 · 4 رد · 476 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سنتعرض في هذه الفائدة لجملة معروفة في معظم لغات البرمج وهي ال case .

في البداية ابدا بعمل مشروع mfc وادخل اداة ال Edit وهي التي تمكن للمستخدم من ادخال قيم فيها (معروفة:) )

ثم اضف اداة ال Button .

اذهب الى ال Class wizard وذلك من قائمة view ومن ثم من علامة التبويب Member Variable اختر الاداة التي ادرجتها وهي ال Edit .

بعدها اضغط على زر Add Variable لكي تضيف متغير من فئة هذا النوع (Edit) وسميه m_sresult. واختر value من ال category . وذلك لكي يكون التعامل مع القيمة المدخلة وليس مع كنترول الاداة .

اغلق ال class wizard واضغط مرتين على الزر button لكي تضيف وظيفة لهذه الاداة . وادخل هذا الكود

كود

	int iresult
	iresult = MessageBox("press the yes, no, or cancel button","y,n,cncl diag",MB_YESNOCANCEL | MB_ICONINFORMATION);

	switch(iresult)
	{
	case IDYES:
		m_sresult = "yes";
		break;

	case IDNO:
		m_sresult = "no";
		break;

	case IDCANCEL:
		m_sresult = "sorry,canceled";
		break;
	}

	UpdateData(FALSE);

}

في البداية عرفت متغير من نوع int .

وفي السطر الثاني توجد الدالة messgaebox من النوع الذي يعرض 3 ازرار yes , no ,cancel . وعرفتها جميعا للمتغير iresult .

الان نبدا في الموضوع الاصلي . كلمة switch تعني اختر واحد من الاحتمالات التالية .

والكلمة iresult هو المتغير الذي اضيف للدالة صاحبة 3 ازرار يعني 3 اختيارات .

الحالة الاولى : ان يكون زر yes هو الذي ضغط عليه المستخدم (IDYES)

وبالتالي نعطيه امر بان يكتب في المتغير التابع للاداة Edit كلمة yes .

وبعدها نكتب كلمة break لكي نخبر الفيجوال سي++ بانتهاء الاحتمال الاول .

اما الاحتمال الثاني والثالث فتكون بنفس الطريقة وهي IDNO و IDCANEL .

نغلق القوس ونضيف الدالة (UpdateData(FALSE وذلك لتحديث بيانات المتغيرات .

لدي ملاحظة وهي ان في الفيجوال بيسك كلمة select تاتي مكان كلمة switch في الفيجوال سي++ .

اسال الله العلي القدير ان ينفعنا بكل ما هو خير . وارجو من الجميع كتابة الملحظات والاسئلة والمناقشات . لان هذا الموضوع لم انقله من موقع ا كتاب او اي مصدر وانما بحسب فهمي لقراءة كتاب . وبالتالي اتوقع ان الشرح يحتوي على اخطاء .

هذا والله اعلم .

اجو من المشرفين ان يعدلو في شكل الكود ليظهر بالشكل الصحيح . لاني حاولت لكن مافي فايدة .

#2

ارجو من مشرفي الموقع تغيير شكل الكود ليظهر بالشكل المناسب .

لتتم مناقشة هذا الموضوع .

#3

أخي العزيز

إستخدم مايلي عند كتابة الـ code

code2

/code2

طبعآ بين الاقواس المربعة []

مثال :

printf("click إ قتباس لترى ذلك");
printf(" إجتماع لغتين في سطر واحد يختلط الحابل بالنابل كما في السطر السابق:D :D :D ");
printf("تحياتي !:) ");

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#4

يعطيك العافية أخي عبدالرحمن ..

سوف اضيف شئ بسيط وهو عن عبارة break .. تلاحظ بعد كل قسم من أقسام عبارة switch فإنك استخدمت break وهذا يعني ايقاف تنفيذ الكود هنا والخروج من عبارة switch .. في حالة لم تكتب break فسوف ينتقل التنفيذ بشكل آلي إلى القسم التالي وهكذا .

ويوجد أيضا عبارة default وتفيد في انتقال التنفيذ لها إذا لم يكن هناك توافق بين قيمة متحول عبارة switch والثوابت في الأقسام .. ولك هذا المثال :

switch (nValue)
{
case 1:
case 2:
     cout << "1 or 2" << endl;
     break;

case 3:
    cout << "3" << endl;
    break;

default:
   cout << "not 1 or 2 or 3" << endl;
};

Coding on the Cloud and for the Cloud!

My Blog

#5

جزاك الله خير يا اخ هاني

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…