Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

أولوية المعاملات

جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 38 من 66.

تحدد أولوية العمليات الترتيب الذي يتم بموجبه تقييم العمليات في التعبير. يعد فهم الأولوية أمراً بالغ الأهمية لكتابة تعبيرات منطقية صحيحة.

انظر إلى هذا المثال:

int result = 5 + 3 * 2;

ما هي قيمة result؟ إنها 11، وليست 16، لأن الضرب له أسبقية أعلى من الجمع.

إليك ترتيب أسبقية مبسط (من الأعلى إلى الأدنى):

  1. الأقواس ()
  2. الضرب/القسمة * / %
  3. الجمع/الطرح + -
  1. معاملات المقارنة < > <= >=
  2. معاملات المساواة == !=
  1. عامل AND المنطقي &&
  2. عامل OR المنطقي ||
  3. عوامل التعيين = += -= إلخ.

لنرى كيف ينطبق هذا:

bool result = 5 > 3 && 10 < 20 || 7 == 8;

أولاً، يتم تقييم المقارنات: 5 > 3 هو true، و 10 < 20 هو true، و 7 == 8 هو false.
ثم، عملية AND المنطقية: true && true هي true.
وأخيراً، عملية OR المنطقية: true || false هي true.

إذًا النتيجة هي true.

استخدم الأقواس لجعل الكود الخاص بك أكثر وضوحًا:

bool result = (5 > 3 && 10 < 20) || (7 == 8);
challenge icon

التحدي

سهل

قم بإنشاء دالة باسم EvaluateExpression تأخذ ثلاثة أعداد صحيحة (a, b, c) وتعيد قيمة منطقية (boolean).

يجب أن تعيد الدالة نتيجة هذا التعبير:
a > b || a == c && b < c

ثم، قم بإنشاء دالة أخرى باسم EvaluateWithParentheses تقوم بتقييم:
(a > b || a == c) && b < c

يجب أن يقرأ برنامجك ثلاثة أعداد صحيحة من وحدة التحكم (console) ويطبع نتائج كلا التقييمين في أسطر منفصلة.

ورقة مرجعية

تحدد أسبقية العمليات الترتيب الذي يتم بموجبه تقييم العمليات في التعبير.

ترتيب الأسبقية (من الأعلى إلى الأقل):

  1. الأقواس ()
  2. الضرب/القسمة * / %
  3. الجمع/الطرح + -
  4. عمليات المقارنة < > <= >=
  5. عمليات التساوي == !=
  6. AND المنطقية &&
  7. OR المنطقية ||
  8. عمليات التعيين = += -= إلخ.

مثال:

int result = 5 + 3 * 2; // النتيجة هي 11، وليست 16

تعبير منطقي معقد:

bool result = 5 > 3 && 10 < 20 || 7 == 8;
// يتم التقييم إلى: true && true || false = true || false = true

استخدم الأقواس للتوضيح:

bool result = (5 > 3 && 10 < 20) || (7 == 8);

جرّب بنفسك

using System;

class Program
{
    public static bool EvaluateExpression(int a, int b, int c)
    {
        // اكتب الكود الخاص بك هنا
    }
    
    public static bool EvaluateWithParentheses(int a, int b, int c)
    {
        // اكتب الكود الخاص بك هنا
    }
    
    static void Main(string[] args)
    {
        Console.WriteLine("Enter three integers:");
        int a = int.Parse(Console.ReadLine());
        int b = int.Parse(Console.ReadLine());
        int c = int.Parse(Console.ReadLine());
        
        // استدعِ الدوال الخاصة بك واطبع النتائج
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow