تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الفصل(5):صنع القرار...الجزء الأول-الجمل الشرطية
#1
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم


سنتحدث اليوم عن قضية هامة جدا في البرمجة وهي صنع القرار .
صنع القرار : توجيه سير البرنامج عند الوصول لنتيجة معينة.

يتم ذلك عن طريق الجمل الشرطية والتي تنقسم لقسمين:

  1. الجمل الشرطية باستخدام الكلمة المحجوزة If
  2. الجمل الشرطية باستخدام الكلمتان المحجوزتان Select Case
أولاً:الجمل الشرطية باستخدام If
للتوضيح:يقصد ب Condition الشرط قيد الفحص
و Statement التعليمة التي يتم تنفيذها عند تحقيق الشرط
يمكن استخدام القاعدة If باكثر من صورة:
التصنيف الأول - من حيث التركيب:

1)
If Condition Then Statement
وهنا اذا تأكد البرنامج من صحة الشرط يتم تنفيذ التعليمة بعد Then وان فشل الشرط يتم تخطيها
مثال:
كود :
If Mark > 90 Then Result = "Very Good"
2)

If Condition Then
Statement
End If
وهنا اذا تأكد البرنامج من صحة الشرط يتم تنفيذ التعليمة داخل الIf وان فشل الشرط يتم تخطيها
مثال:
كود :
If Mark>90 ThenResult = "Very Good"End If
3)

If Condition Then
Statement1
Statement2
Statement3

....
....
End If
وهنا اذا تأكد البرنامج من صحة الشرط يتم تنفيذ التعليمات داخل الIf وان فشل الشرط يتم تخطيها

مثال:
كود :
If Mark>90 ThenResult1="Very"Result2="Good"Result=Result1+Result2End If
4)

If Condition Then
Statement1
Statement2
ElseStatement3
....
End If
وهنا نخبر البرنامج انه في حال صحة الشرط يتم تطبيق التعليمات Statement1 و Statement2
وفي حال فشل الشرط يتم تنفيذ التعليمات بعد Else وهي تستخدم لتنفيذ التعليمات التي تحتضنها في حال فشل الشروط السابقة لها.
ملاحظة:Else تعني غير

مثال:
كود :
If Mark>50 ThenResult="Successful"ElseResult="Not Successful"End If
5)

If Condition1 Then
Statement1
ElseIf Condition2
Statement2
Else
Statement3
....
End If
وهنا نخبر البرنامج انه اذا تأكد من صحة الشرط الأول يتم تنفيذ ما بعد Then في نفس سطر الشرط إلى أن تنتهي بابتداء الشرط الآخر وهكذا مع بقية الشروط في حال فشل الشروط السالقة وصولا الى Else والتي تنفذ في حال فشل كل الشروط السابقة

التصنيف الثاني-من حيث التوزيع:
1) في سطر واحد:

If Condition Then Statement
If Condition Then Statement1 : Statement2 :.....
If Condition Then Statement1 Else Statement2
حيث في الصورة الثانية بتحقق الشروط يتم تنفيذ التعليمات المرتبطة ويتم الفصل بينها بعلامة ":"
أما في الصورة الثالثة فتعادل الصورة رقم 4 في التصنيف الأول
2) في أكثر من سطر:
If Condition Then
Statement
End If


وباقي الحالات في التصنيف العلوي ما عدا الرقم واحد ينطبق عليها تصنيف اكثر من سطر
كما في الامثلة السابقة
ملاحظة مهمة: في حال تعدد الاسطر علينا انهاء كتلة الشرط If ب End If لكي يستطيع المترجم تحديد نهابة كتلة If

مثال يوضح قاعدة If وهو حساب معدل ثلاث علامات وعرض النتيجة
1) قم بانشاء مشروع جديد من نوع Windows Application بلغة فيجوال بيسك دوت نت
2) أضف ثلاث صناديق نص (TextBox) للنموذج واضف زر تحكم Button وأداتان تسمية Label.
3)أعد ضبط الخصائص

4) اضغط ضغطا مزدوجا على زر التحكم Button ليتم ادخال الكود في حدث من احداثه والحدث الافتراضي له هو Click
كود :
Dim Mark1, Mark2, Mark3, Total As Integer
        Dim Abrave As Double
        Mark1 = Integer.Parse(TextBox1.Text)
        Mark2 = Integer.Parse(TextBox2.Text)
        Mark3 = Integer.Parse(TextBox3.Text)
        Total = Mark1 + Mark2 + Mark3
        Abrave = (Total / 3)
        Label1.Text = Abrave.ToString
        If Abrave > 90 Then
            Label2.Text = "ممتاز"
        ElseIf Abrave > 80 Then
            Label2.Text = "جيد جدا"
        ElseIf Abrave > 70 Then
            Label2.Text = "جيد"
        ElseIf Abrave > 60 Then
            Label2.Text = "متوسط"
        ElseIf Abrave > 50 Then
            Label2.Text = "مقبول"
        Else
            Label2.Text = "راسب"
        End If
الآن قمنا بحجز اربع وتغيرات من النوع Integer وهم الثلاث علامات ومجموعهم وقمنا بحجز متغير آخر من النوع Double وهو المعدل لانه من المتوقع أن يحمل المعدل كسور عشرية
لعلك لاحظت جديد في الكود وهو الدالة
كود :
Integer.Parse(String)
كما نعلم فان القيم التي يتم ادخالها لمربع النص TextBox تكون على شكل نص وهنا لا نحتاجها كنص بل نريدها عدد صحيح وهي تعمل عكس عمل .ToString وتقوم بتغيير نوع المدخل من نص إلى رقم صحيح

ملاحظة:كتلة If هي كتلة متداخلة(Nested)
ثانيا: الجمل الشرطية باستخدام Select Case
لا تختلف قاعدة Select Case كثيرا عن قاعدة If من ناحية الوظيف لكن لكل حادث حديث
كيف يمكننا استخدام Select Case
1)
يمكننا استخدام لمقارنة قيمة واحدة
مثال:
كود :
Dim X As Integer = 20Select Case XCase 20 MsgBox("القيمة هي 20")Case ElseMsgBox("القيمة غير 20")End Select
وهنا قمنا باختبار هل المتغير X يحمل القيمة 20 أم لا


2)
مقارنة مدى معين
تمعن في المثال التالي:

كود :
Select Case X
Case Is >= 90  
Result = "ممتاز"
Case 80 To 89
Result = "جيد جدا"
Case 70 To 79
Result = "جيد"
Case 60 To 69
Result = "متوسط"
Case 50 To 59
Result = "مقبول"
Case Else
Result="راسب"
End Select
الآن نستطيع القول اننا انتهينا من الجمل الشرط بنوعيها الرئيسين والآن انتظروا الجزء الثاني في الفصل القادم -ان شاء الله-

أبلغكم تحياتنا
Lo2i و Mohammed Asaad
انتظروا الدرس القادم
اللَّهُمَّ أَنْتَ رَبِّي ، لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ ، وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ ، أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ ، أَبوءُ لَكَ بِنِعْمتِكَ علَيَ ، وأَبُوءُ بذَنْبي فَاغْفِرْ لي ، فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ .
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله
اخي الكريم لدي تعليق بسيط وهو عند كتابة الكود ارجو كتابته بصورة اوضح
مثلا :If Mark>50 ThenResult="Successful"ElseResult="Not Successful"End If
لو قمت بكتابته هكذا
If Mark>50 Then
Result="Successful"
Else
Result="Not Successful"
End If
لكي يسهل علينا فهمه
بارك الله فيك وجزاك الله كل خير
الرد }}}
تم الشكر بواسطة:
#3
الرد }}}
تم الشكر بواسطة:
#4
شكرااااااااااااااااعالطرح الجميل
الرد }}}
تم الشكر بواسطة:
#5
abdoojh كتب :وعليكم السلام ورحمة الله
اخي الكريم لدي تعليق بسيط وهو عند كتابة الكود ارجو كتابته بصورة اوضح
مثلا :If Mark>50 ThenResult="Successful"ElseResult="Not Successful"End If
لو قمت بكتابته هكذا
If Mark>50 Then
Result="Successful"
Else
Result="Not Successful"
End If
لكي يسهل علينا فهمه
بارك الله فيك وجزاك الله كل خير

جاري التحرير Smile
الله يعطيك العافية
اللَّهُمَّ أَنْتَ رَبِّي ، لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ ، وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ ، أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ ، أَبوءُ لَكَ بِنِعْمتِكَ علَيَ ، وأَبُوءُ بذَنْبي فَاغْفِرْ لي ، فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ .
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الفصل(8): الدوال والاجراءات B3dak Hbebe 3 19,655 15-08-18, 09:20 AM
آخر رد: nagoma
  الفصل(9):مدخل الى الفئاتClasses - الجزء الأول B3dak Hbebe 5 4,328 30-05-17, 01:09 PM
آخر رد: ali hussein
  الفصل(3): التركيبات أنواعها واستخداماتها Omar Mekkawy 4 4,155 10-08-13, 05:32 PM
آخر رد: Omar Mekkawy
  الفصل (1) : الفيجوال بيسك دوت نت (لمحة تعريفية) Omar Mekkawy 2 3,492 27-07-13, 02:39 PM
آخر رد: green.grass52
  الفصل (0) : دورة تعلم معنا فيجوال بيسك دوت نيت Omar Mekkawy 7 4,823 18-07-13, 06:29 PM
آخر رد: el@nsary
  الفصل(16): مدخل لمسارات التنفيذ Threading B3dak Hbebe 3 3,778 27-04-13, 10:58 AM
آخر رد: خليل اسماعيل
  الفصل(15): الفئتان Stack و Queue B3dak Hbebe 2 3,225 27-04-13, 09:20 AM
آخر رد: خليل اسماعيل
  الفصل(12): Oop بالتفصيل...الجزء الثاني B3dak Hbebe 3 3,901 27-04-13, 09:16 AM
آخر رد: خليل اسماعيل
  الفصل (11) :oop بالتفصيل ..الجزء الاول Easy4ever 3 3,569 27-04-13, 09:08 AM
آخر رد: خليل اسماعيل
  الفصل(10):مدخل الى الفئات..الجزء الثاني B3dak Hbebe 2 3,204 27-04-13, 08:59 AM
آخر رد: خليل اسماعيل

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم