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

المعاملات المنطقية - الجزء الرابع

جزء من قسم Fundamentals في رحلة Java على Coddy — الدرس 26 من 73.

قانون دي مورغان (De Morgan's Law) هو قاعدة تساعدنا في تبسيط التعبيرات التي تحتوي على NOT. عند العمل مع التعبيرات المنطقية، نحتاج أحياناً إلى تبسيطها أو إعادة ترتيبها.

عندما يكون لديك not أمام شرطين مرتبطين بـ and، يمكنك تقسيمها إلى جزأين منفصلين. تصبح الـ and هي or، ويحصل كل جزء على الـ not الخاصة به:

!(A && B) هي نفسها (!A) || (!B)

على سبيل المثال:

// دعونا نتحقق مما إذا كان الرقم ليس (بين 1 و 10)
int number = 15;

// هذان التعبيران متكافئان:
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);

System.out.println(result1);  // true
System.out.println(result2);  // true

والعكس صحيح أيضاً: !(A || B) هو نفسه (!A) && (!B)

على سبيل المثال:

// التحقق مما إذا كان الشخص ليس (طالباً أو موظفاً)
boolean isStudent = false;
boolean isEmployed = false;

// هذان التعبيران متكافئان:
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);

System.out.println(result1);  // true
System.out.println(result2);  // true
challenge icon

التحدي

مبتدئ

أنت تساعد متجر حيوانات أليفة في إنشاء نظام لتحديد ما إذا كان بإمكانهم بيع حيوان أليف لعميل.

قم بتهيئة المتغيرات التالية:

  • hasLicense بالقيمة true
  • hasSpace بالقيمة false
  • hasExperience بالقيمة true

اكتب التعبيرات المنطقية التالية لتحديد ما إذا كان:

  • canSellRegularPet: يحتاج العميل إما إلى رخصة (license) أو خبرة (experience)، ويجب أن تتوفر لديه مساحة (space)
  • canSellExoticPet: يحتاج العميل إلى كل من الرخصة والخبرة معاً، ويجب أن تتوفر لديه مساحة
  • cannotSellAnyPet: ليس لدى العميل رخصة وليس لديه خبرة، أو ليس لديه مساحة
  • result: canSellRegularPet أو canSellExoticPet أو cannotSellAnyPet

نصيحة: استخدم قيم المتغيرات مباشرة في تعبيراتك. على سبيل المثال، hasSpace هي false، لذا فإن "يجب أن تتوفر لديه مساحة" تعني أنك تستخدم hasSpace كما هي (بدون !) — فالمتغير يحمل بالفعل القيمة الحقيقية. استخدم ! فقط عندما يتطلب الشرط عكس ما يحمله المتغير، مثل "ليس لديه رخصة" ← !hasLicense.

ورقة مرجعية

يساعد قانون دي مورغان في تبسيط التعبيرات المنطقية باستخدام معاملات NOT:

!(A && B) يكافئ (!A) || (!B)

!(A || B) يكافئ (!A) && (!B)

مثال مع AND:

int number = 15;
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
// كلا التعبيرين متكافئان

مثال مع OR:

boolean isStudent = false;
boolean isEmployed = false;
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
// كلا التعبيرين متكافئان

جرّب بنفسك

public class Main {
    public static void main(String[] args) {
        // تهيئة المتغيرات
        

        // حساب الشروط
        boolean canSellRegularPet = 
        boolean canSellExoticPet = 
        boolean cannotSellAnyPet =
        boolean result =

        // لا تحذف الأسطر أدناه
        System.out.println("Can sell regular pet: " + canSellRegularPet);
        System.out.println("Can sell exotic pet: " + canSellExoticPet);
        System.out.println("Cannot sell any pet: " + cannotSellAnyPet);
        System.out.println("Result: " + result);
    }
}
quiz iconاختبر نفسك

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

جميع دروس Fundamentals