إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

الدرس الثالث : إتخاذ القرارات Making Decisions

تقليص
X
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • الدرس الثالث : إتخاذ القرارات Making Decisions

    الدرس الثالث : إتخاذ القرارات Making Decisions

    منطق " بول" أو المنطق البولى Boolean Logic
    الشروط القابلة للبرمجة فى VB أو أى برنامج آخر تستند إلى فرع من فروع الرياضيات يسمى "الجبر البولى" أو "المنطق البولى" . يسمح لك المنطق البولى بتمثيل وعلاج قيمتان يسميان "صواب" true و "خطأ" false . سوف يكون من السهل مساواة "الصواب" بالقيمة الثنائية "1" ومساواة "الخطأ" بالقيمة الثنائية "0" .
    العبارات AND, OR, NOT تمثل التعبيرات البولية الأساسية لمعالجة القيم البولية "الصواب" و "الخطأ" . كل من هذه التعبيرات يقيم (أى تكون نتيجته أو مخرجه) إما بالقيمة "صواب"true أو "خطأ" false فقط .

    لنرى كيف يمكن أن تنتج هذه التعبيرات القيم البولية .
    لنلقى نظرة على جدول الحقيقة truth table التالى ( وهو تمثيل فى شكل جدول للتعبيرات البولية والمداخل والخارج المرتبطة بها) .



    التعبير AND :
    الشكل السابق يمثل جدول الحقيقة للتعبير AND . التعبير AND له "مدخلان" هما a و b ومخرج واحد . كل مدخل يمكن أن يكون أما بالقيمة true أو بالقيمة false والمدخلان ينتجان إجمالى أربع تركيبات أو أربع إحتمالات للمخرج .
    والخرج المناسب (الفعال) هو عندما تكون نتيجة التعبير AND صواب أى true وذلك عندما يكون "كل" مدخل بالقيمة true . فى أى حالة يكون "أى من" أو "كلا" المدخلين بالقيمة false فأن نتيجة التعبير AND تكون false .
    نأخذ مثالا فى العالم الحقيقى على التعبير AND : "يمكننى أن أذهب إلى محل بقالة لو كان لدى المال ووسيلة الانتقال" . لدينا مدخلان لتعبير AND "المال" و "وسيلة الانتقال" . الحالة الوحيدة التى يمكننى الذهاب إلى محل البقالة تكون عندما يكون "لدى المال" (صواب true ) و "لدى وسيلة الانتقال" (صواب true ) أيضا . إذا كان أى من المدخلين غير متحقق (خطأ false ) عندئذ لن يتحقق التعبير برمته وتكون النتيجة false .

    التعبير OR :
    مشابه للتعبير AND فى أن له مدخلان هما a وb ومخرج واحد لكن المخارج الناتجة تختلف تماما كما فى جدول الحقيقة .





    يمكن للتعبير OR أن يعطى خرج بالقيمة true طالما أن "أحد" المداخل بالقيمة true . الحالة الوحيدة التى يكون فيها خرج التعبير OR بالقيمة false هى عندما يكون "كل من " المدخلان بالقيمة false . على سبيل المثال "زوجتى سوف تكون سعيدة بى إذا (قمت بطهى العشاء) أو (قمت بتنظيف الأطباق) " . هنا لدينا "طهى العشاء" و "تنظيف الأطباق" كمدخلان للتعبير OR والمخرج أو النتيجة "تكون سعيدة" . طالما أقوم بتنفيذ "أحد المدخلين (أو كليهما ) فسوف تكون زوجتى سعيدة . مع ذلك إذا لم أقم بتنفيذ أى من المدخلين (كلهما غير متحقق false ) فإن التعبير برمته سوف لا يتحقق false (وسوف أنام على الأريكة).

    التعبير NOT :
    هذا التعبير له مدخل واحد ولذلك يوجد للمخرج إحتمال لحالتان فقط . يمكنك التفكير فى هذا التعبير على أن حالة الخرج هى عكس (معكوس) حالة الدخل . على سبيل المثال خرج false هو true وخرج true هو false .

    لنرى النهج الرياضى فى حل التعبيرات البولية من خلال المسائل البولية التالية :
    نفترض أن x = 1 و y = 5 فيكون :

    • (y = 4) AND (x = 1) results in the value false .(false AND true = false)
    • (x = 5) OR (x = 1) results in the value true .(false OR true = true)
    • (x = 1) AND (y = 5) results in the value true .( true AND true = true)
    • (y = x) OR (x = 5) results in the value false .(false OR false = false)
    • NOT [(x = 1) OR (x = y)] results in the value false .NOT [true OR false ] = NOT true = false
    التحكم فى سير البرنامج :

  • #2
    التحكم فى سير البرنامج :

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

    جمل اتخاذ القرار :

    جملة الشرط If Then Else :

    أحد الطرق التى يستخدم فيها برنامج VB القيم البولية true و false هى مع جملة If Then Else . فيما يلى بعض أمثلة على بناء جملة الشرط الأساسية .




    ملحوظة :
    يتم استخدام أقواس لتطويق "الشرط" وهى ليست مطلوبة فى بناء الجملة ولكن يجب أن تتعود على استخدامها لإزالة أى إلتباس أو أى نتائج غير صحيحة . فائدة هذه الأقواس سوف تتضح جليا عندما تتعلم استخدام جمل الشرط المركبة compound conditions .
    • يتم اختبار (تقييم) شرط If وهو (condition1 = condition2) .
    • إذا كانت نتيجته (عائده) صواب trueأى تحقق الشرط عندئذ Then يتم تنفيذ Do this "إفعل ذلك" .
    • وإذا كانت نتيجة الشرط خطأ false إى لم يتحقق الشرط فلا يتم تنفيذ Do this بل يتغير مسار البرنامج ويخرج ليقوم بتنفيذ التعليمات التالية للعبارة End If .




    شكل آخر من أشكال جملة الشرط : If…..Then….Else….End If

    تعليق


    • #3
      شكل آخر من أشكال جملة الشرط : If…..Then….Else….End If

      If (condition1 = condition2) Then
      ‘Do this
      Else
      ‘Do that
      End If

      جملة الشرط هذه تشبه الجملة السابقة فيما عدا إستثناء واحد . هذه الجملة تستخدم الكلمة Else لتقول " حسنا , إذا لم يتحقق الشرط الأول (condition1 = condition2) عندئذ قم بفعل شىء آخر ( وهو هنا ممثل بالعبارة ‘Do that ) .
      يمكن استخدام كلمة Else عندما تريد أن يستمر عمل شىء عندما لم يتم إستيفاء (تحقيق) الشرط .




      لكن ماذا لو كان لديك العديد من السناريوهات تريد اختبارها لحالة (شرط) واحد ؟

      تعليق


      • #4
        لكن ماذا لو كان لديك العديد من السناريوهات تريد اختبارها لحالة (شرط) واحد ؟

        الجواب هو استخدام الكلمة Elseif . يمكن استخدام هذه الكلمة لاختبار "شرط واحد" أمام "إحتمالات كثيرة" . أى اختيار تنفيذ أحد المجاميع . المثال التالى يبين استخدام Elseif لمعرفة من هو اللاعب الحالى :

        If (currentPlayer = Player1) Then
        ‘Assign high score to Player1
        ElseIf (currentPlayer = Player2) Then
        ‘Assign high score to Player2
        ElseIf (currentPlayer = Player3) Then
        ‘Assign high score to Player3
        Else
        ‘There is no current player
        End if



        يتم اختبار المتغير "اللاعب الحالى" currentPlayer ضد ثلاثة سناريوهات (إحتمالات) لمعرفة ما إذا كان اللاعب الحالى هو "اللاعب الأول" Player1 أو "اللاعب الثانى" Player2 أو "اللاعب الثالث" Player3 وتنفيذ كود السيناريو الصواب true . وإذا لم يكن أى من هذه السناريوهات صحيح true عندئذ يتم تطبق فقرة "وإلا" Else .

        تعليق


        • #5
          العبارة End If تستخدم لإنهاء جملة شرط If . وعلى الرغم أنه عامة يتطلب وجودها فى نهاية كل كتلة جملة شرط إلا أنه يمكن إنشاء جملة شرط فى سطر واحد والتى لا تحتاج للعبارة End If كما يلى :



          If (x = y ) Then x = 5
          هذه الجملة لا تخدم أى غرض حقيقى إلا عرض استخدام جملة شرط If فى سطر واحد حيث لا تحتاج إلى End If .

          ملحوظة هامة :
          المشكلة الأكثر شيوعا ليست فى استخدام جملة الشرط ولكن فى كتابته بالنمط (الشكل) المناسب أى استخدام الأقواس وترك المسافات المناسبة للتنسيق حتى تصبح عادة لمنع الإلتباس فى وقت مبكر وإلا عانيت فيما بعد .

          لنلقى نظرة على جملتين من جمل شرط If . كلاهما يعبر عن نفس المعنى ولكن أحدهما مكتوب بالشكل الصحيح حيث يستخدم الأقواس والمسافات .

          إليك الطريقة الصحيحة :
          If (condition1 = condition2) Then
          If (conditionX >= conditionY) And (Temp1 = Temp2) Then
          ‘Go here
          Else
          ‘Go there
          End If
          Else
          ‘Do that
          End If





          وإليك الطريقة الغير صحيحة :

          If condition1 = condition2 Then
          If conditionX >= conditionY And Temp1 = Temp2 Then
          ‘Go here
          Else
          ‘Go there
          End If
          Else
          ‘Do that
          End If
          جملة الشرط المركبة Compound Conditions

          تعليق


          • #6
            جملة الشرط المركبة Compound Conditions
            جملة الشرط المركبة تعتمد على المنطق البولى . هذه الجملة يكون لها نفس شكل جملة If Then Else المذكورة سابقا باستثناء واحد , هو أن جمل الشرط المركبة تستخدم التعبيرات البولية لتقييم (إيجاد قيمة) الشرط . مثال ذلك :

            If (condition1 = condition2) And (conditionX = conditionY) Then
            ‘Do this
            End If




            لتنفيذ الكود ‘Do this code يجب أن يتحقق الشرط : (condition1 يساوى condition2 ) و أيضا AND الشرط (conditionX = conditionY) كل من جانبى عبارة AND يجب أن يكون صواب true حتى تكون قيمة (نتيجة العائد) العبارة ككل صواب true .
            إذا استبدلنا عبارة AND بعبارة OR نحصل على إمكانية أخرى :


            If (condition1 = condition2) Or (conditionX = conditionY) Then
            ‘Do this
            End If

            عبارة OR تحتاج فقط لأن يكون أحد جانبيها صواب true حتى تكون العبارة ككل صواب true .
            عند الحاجة فإن جمل الشرط المركبة لا تتوقف على شرطين بل يمكن أن تحتوى على شروط متعددة من مختلف الأنواع لعمل جملة شرط مركبة واحدة .


            If ((condition1 = condition2) And (conditionX = conditionY)) Or (condition1
            = conditionX) Then
            ‘Do this
            End If
            لاحظ أن تضمين الأقواس يجعل ترتيب العمليات فى جملة الشرط المركبة واضحا .
            باستخدام القيم التالية , ما هى قيمة عائد جملة الشرط المركب ؟ بمعنى آخر هل يتم تنفيذ الكود الممثل بالجملة ‘Do this أم لا ؟



            condition1 = 5
            condition2 = 10
            conditionX = 5
            conditionY = 10
            إذا كانت إجابتك أى من True أو Yes فأنت على صواب .
            سوف نضع القيم السابقة فى جملة الشرط لكى تلقى نظرة أفضل عما يجرى .



            بالتعويض عن نتيجة (عائد) كل جملة شرط بالمكافىء البولى نحصل على النتيجة الإجمالية بالقيمة true كما يلى :

            عبارات If المتداخلة Nested If Statements :

            تعليق


            • #7
              عبارات If المتداخلة Nested If Statements :

              أحيانا تحتاج إلى تضمين جملة شرط باستخداك If . على سبيل المثال دعنا نقول أنك تريد إضافة تحسين للعبة game والتى لا تتحقق من "الضرب أو الركل" hit المباشر فقط ولكن أيضا بالتسجيل (النتيجة) score الأعلى . لإنجاز ذلك يمكنك استخدام جملة الشرط التالية :

              If (directHit = target) Then
              If (currentScore > highScore) Then
              ‘Display new high score
              End If
              ‘Increment current score
              End If

              الجزء الأول من هذه الجملة يتحقق من الضربة المباشرة (directHit = target) . إذا كان هذا الشرط صحيحا true يتم فحص شرط جديد متداخل nested condition للتسجيل الأعلى (currentScore > highScore). إذا كان هناك تسجيل إعلى عندئذ يتم عرضه ‘Display new high score. إذا لم يكن هناك تسجيل جديد أعلى فلا شىء يحدث فى الشرط المتداخل . بعد اكتمال الشرط المتداخل يتم تزايد التسجيل الحالى ‘Increment current score ولكن فقط إذا كان تقييم الشرط الأصلى (الشرط الأول) صحيحا true .

              من المثير للاهتمام , إذا لم يتم استيفاء الشرط الأول عندئذ لا يتم على الأطلاق معالجة عبرة If المتداخلة . من المهم أن نفهم أن الشروط المتداخلة تنتمى إلى الشروط الأصلية (الأباء) . إذا كنت تريد التأكد من أن يتم التحقق دائما من التسجيل الأعلى , بغض النظر عن نتيجة شرط "الضربة المباشرة " عندئذ يتم سحب التحقق من شرط "التسجيل الأعلى" خارجا عن شرط "الأب" .
              أفضل طريقة لفهم لفهم جمل الشرط هى أن نراها وهى تعمل أو بعبارة أخرى فى البرنامج .

              جملة الشرط باستخدام Select Case :

              تعليق


              • #8
                جملة الشرط باستخدام " اختيار حالة" Select Case :





                معظم لغات البرمجة توفر آلية أخرى لتوليد الشروط واتخاذ القرارات علاوة على جملة الشرط If . يوفر VB هذا البديل ببناء الجملة Select Case . هذا البناء مفيد عندما تريد التحقق من متغير أو تعبير تجاه قيم متعددة محتملة . أى شرط متولد بالجملة Select Case يمكن بناءه أيضا عن طريق جملة الشرط If .






                فيما يلى البناء العام لجملة Select Case :



                Select Case expression or variable
                Case range, constant, or variable
                ‘Statements
                Case range, constant, or variable
                ‘Statements
                Case range, constant, or variable
                ‘Statements
                Case Else
                ‘Statements
                End Select




                الجزء الأول من بناء جملة Select يخبر VB بما تريد أن تقارن به , مثل الخصائص properties أو المتغيرات variables أو العبارات expressions . بعد ذلك كل حالة case تحتوى على سيناريو معين مع "القيم" values مثل المتغيرات والثوابت والخصائص والأعداد والحروف (الرموز) أو مع "النطاق أو المدى" range . عبارة Case Else يتم تنفيذها إذا لم يتم أى من الحالات المقابلة . لا يوجد حدود لعدد الحالات التى يمكن أن تأخذها .
                المثال التالى يبين البحث عن "اللاعب الحالى" فى اللعبة :




                Select Case CurrentPlayer
                Case Player1
                ‘Statements
                Case Player2
                ‘Statements
                Case Player3
                ‘Statements
                Case Else
                ‘Statements
                End Select



                والمثال التالى يستخدم عدد من النطاقات ranges فى كل حالة للتحقق من درجة الحرارة الحالية :


                Select Case CurrentTemp
                Case > 90
                ‘Statements
                Case 60 To 89
                ‘Statements
                Case 32 To 59
                ‘Statements
                Case Else
                ‘Statements
                End Select





                تعليق


                • #9
                  جملة الشرط باستخدام " اختيار حالة" Select Case :





                  معظم لغات البرمجة توفر آلية أخرى لتوليد الشروط واتخاذ القرارات علاوة على جملة الشرط If . يوفر VB هذا البديل ببناء الجملة Select Case . هذا البناء مفيد عندما تريد التحقق من متغير أو تعبير تجاه قيم متعددة محتملة . أى شرط متولد بالجملة Select Case يمكن بناءه أيضا عن طريق جملة الشرط If .






                  فيما يلى البناء العام لجملة Select Case :



                  Select Case expression or variable
                  Case range, constant, or variable
                  ‘Statements
                  Case range, constant, or variable
                  ‘Statements
                  Case range, constant, or variable
                  ‘Statements
                  Case Else
                  ‘Statements
                  End Select




                  الجزء الأول من بناء جملة Select يخبر VB بما تريد أن تقارن به , مثل الخصائص properties أو المتغيرات variables أو العبارات expressions . بعد ذلك كل حالة case تحتوى على سيناريو معين مع "القيم" values مثل المتغيرات والثوابت والخصائص والأعداد والحروف (الرموز) أو مع "النطاق أو المدى" range . عبارة Case Else يتم تنفيذها إذا لم يتم أى من الحالات المقابلة . لا يوجد حدود لعدد الحالات التى يمكن أن تأخذها .
                  المثال التالى يبين البحث عن "اللاعب الحالى" فى اللعبة :




                  Select Case CurrentPlayer
                  Case Player1
                  ‘Statements
                  Case Player2
                  ‘Statements
                  Case Player3
                  ‘Statements
                  Case Else
                  ‘Statements
                  End Select



                  والمثال التالى يستخدم عدد من النطاقات ranges فى كل حالة للتحقق من درجة الحرارة الحالية :


                  Select Case CurrentTemp
                  Case > 90
                  ‘Statements
                  Case 60 To 89
                  ‘Statements
                  Case 32 To 59
                  ‘Statements
                  Case Else
                  ‘Statements
                  End Select




                  تعليق

                  يعمل...
                  X