0Pricing
R Academy · درس

العوامل المنطقية والمنطق البولياني

افهم ‎&‎ و‎|‎ و‎!‎ وxor() وany() وall() لإجراء العمليات البوليانية.

العوامل المنطقية والمنطق البولياني درس مجاني في R Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في R Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة R Academy 4 دروس في المجموع.

مقدمة إلى المنطق البولياني

المنطق البولياني هو أساس اتخاذ القرارات في البرمجة. في R، القيم المنطقية هي TRUE وFALSE. وتجمع عوامل التشغيل المنطقية هذه القيم لتكوين شروط معقدة.

# Boolean values in R
is_raining <- TRUE
is_cold <- FALSE
cat('Is raining:', is_raining, '
')
cat('Is cold:', is_cold, '
')
cat('Class:', class(is_raining), '
')

AND عنصرًا بعنصر باستخدام &

ينفّذ عامل التشغيل & عملية AND عنصرًا بعنصر على المتجهات. ويُرجع TRUE فقط عندما يكون كلا العنصرين المتناظرين TRUE. وهو يعالج كل عنصر في المتجه.

ages <- c(15, 22, 17, 30, 19)
has_id <- c(FALSE, TRUE, FALSE, TRUE, TRUE)

# Can buy alcohol? (must be 18+ AND have ID)
can_buy <- (ages >= 18) & has_id
cat('Ages >= 18:', ages >= 18, '
')
cat('Has ID:', has_id, '
')
cat('Can buy:', can_buy, '
')

OR عنصرًا بعنصر باستخدام |

ينفّذ عامل التشغيل | عملية OR عنصرًا بعنصر. ويُرجع TRUE عندما يكون عنصر واحد على الأقل من العناصر المتناظرة هو TRUE.

scores_math <- c(85, 45, 72, 38, 90)
scores_english <- c(40, 88, 65, 70, 55)

# Pass if either subject >= 60
passes <- (scores_math >= 60) | (scores_english >= 60)
cat('Math pass:', scores_math >= 60, '
')
cat('English pass:', scores_english >= 60, '
')
cat('Overall pass:', passes, '
')

النفي المنطقي باستخدام !

ينفي عامل التشغيل ! قيمة منطقية، فيحوّل TRUE إلى FALSE والعكس. ويُطبّق قبل & و| وفق ترتيب التقييم.

is_weekend <- c(TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE)
cat('Is weekend:', is_weekend, '
')
cat('Is weekday:', !is_weekend, '
')

# Count weekdays
cat('Number of weekdays:', sum(!is_weekend), '
')

AND القياسي باستخدام &&

يمثّل && الإصدار القياسي من AND — فهو يقيّم العنصر الأول فقط من كل متجه ويستخدم التقييم قصير الدائرة: إذا كان الجانب الأيسر FALSE، فلن يُقيّم الجانب الأيمن مطلقًا.

x <- 10

# Short-circuit: second condition skipped if first is FALSE
if (x > 0 && x < 100) {
  cat('x is a positive double-digit or less
')
}

# && only looks at first element
cat('TRUE && FALSE:', TRUE && FALSE, '
')
cat('TRUE & FALSE (vectorised):', TRUE & FALSE, '
')

OR القياسي باستخدام ||

يمثّل || الإصدار القياسي من OR مع التقييم قصير الدائرة: إذا كان الجانب الأيسر TRUE، فلن يُقيّم الجانب الأيمن مطلقًا. استخدم || في عبارات if عندما تحتاج إلى نتيجة واحدة فقط.

user_role <- 'admin'

# Short-circuit OR — stops at first TRUE
if (user_role == 'admin' || user_role == 'superuser') {
  cat('Access granted
')
} else {
  cat('Access denied
')
}

cat('FALSE || TRUE:', FALSE || TRUE, '
')

OR الحصري باستخدام xor()

تُرجع xor(x, y) القيمة TRUE عندما يكون واحد فقط من x أو y هو TRUE. وتُرجع FALSE عندما تكون القيمتان متماثلتين. ويفيد ذلك في منطق التبديل.

# xor truth table
cat('xor(TRUE, TRUE):', xor(TRUE, TRUE), '
')   # FALSE
cat('xor(TRUE, FALSE):', xor(TRUE, FALSE), '
')  # TRUE
cat('xor(FALSE, TRUE):', xor(FALSE, TRUE), '
')  # TRUE
cat('xor(FALSE, FALSE):', xor(FALSE, FALSE), '
') # FALSE

# Practical: exactly one sensor triggered
sensor_a <- c(TRUE, FALSE, TRUE, FALSE)
sensor_b <- c(FALSE, FALSE, TRUE, TRUE)
cat('Exactly one sensor:', xor(sensor_a, sensor_b), '
')

any() وall()

تُرجع any() القيمة TRUE إذا كان عنصر واحد على الأقل هو TRUE. وتُرجع all() القيمة TRUE فقط إذا كان كل عنصر هو TRUE. وتختزل الدالتان المتجه المنطقي إلى قيمة واحدة.

temperatures <- c(22.1, 24.5, 19.8, 31.2, 28.0)

cat('Any temperature above 30?', any(temperatures > 30), '
')
cat('All temperatures above 15?', all(temperatures > 15), '
')
cat('All temperatures above 25?', all(temperatures > 25), '
')

# Useful for data validation
test_scores <- c(78, 85, 92, 88, 76)
cat('All passed (>=60)?', all(test_scores >= 60), '
')

دمج عوامل التشغيل المنطقية

يمكنك ربط عدة عوامل تشغيل منطقية لإنشاء شروط معقدة. يقيّم R العامل ! أولًا، ثم &، ثم |. استخدم الأقواس لتوضيح المقصود.

age <- 25
income <- 55000
credit_score <- 720

# Loan eligibility: age 21-65, income >= 40000, credit >= 700
eligible <- (age >= 21 && age <= 65) &&
            (income >= 40000) &&
            (credit_score >= 700)
cat('Loan eligible:', eligible, '
')

عوامل التشغيل المنطقية على إطارات البيانات

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

# Simple data frame
names_vec <- c('Alice', 'Bob', 'Carol', 'Dave', 'Eve')
ages_vec <- c(28, 35, 22, 45, 31)
salaries <- c(55000, 72000, 38000, 90000, 61000)

# Filter: age 25-40 AND salary above 50000
mask <- (ages_vec >= 25 & ages_vec <= 40) & (salaries > 50000)
cat('Matching employees:', names_vec[mask], '
')

الحساب البولياني

في R، تُعامل TRUE باعتبارها 1 وFALSE باعتبارها 0 في العمليات الحسابية. وهذا يعني أنه يمكنك استخدام sum() لعدّ قيم TRUE وmean() لحساب النسبة.

responses <- c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE)

cat('Number of TRUE:', sum(responses), '
')
cat('Proportion TRUE:', mean(responses), '
')
cat('Percentage:', mean(responses) * 100, '%
')

# Count values meeting a condition
scores <- c(88, 45, 92, 61, 73, 55, 84)
cat('Number passing (>=60):', sum(scores >= 60), '
')

تحقق سريع

ما الفرق بين & و&& في R؟

مراجعة: المنطق البولياني في R

ممتاز! إليك أهم النقاط المستفادة من هذا الدرس:

  • إن & و| متجهان — فهما يقارنان العناصر عنصرًا بعنصر
  • إن && و|| قياسيان مع التقييم قصير الدائرة — استخدمهما في عبارات if
  • ينفي ! قيمة منطقية
  • تُرجع xor() القيمة TRUE عندما يكون أحد الوسيطين فقط هو TRUE
  • تختزل any() وall() المتجهات المنطقية إلى قيمة واحدة
  • TRUE == 1 وFALSE == 0، لذا يمكنك جمع المتجهات المنطقية أو حساب متوسطها
# Summary: all logical operators at a glance
x <- c(TRUE, FALSE, TRUE)
y <- c(TRUE, TRUE, FALSE)
cat('x & y :', x & y, '
')
cat('x | y :', x | y, '
')
cat('!x    :', !x, '
')
cat('xor   :', xor(x, y), '
')
cat('any(x):', any(x), '
')
cat('all(x):', all(x), '
')

الأسئلة الشائعة

هل درس «العوامل المنطقية والمنطق البولياني» مجاني؟

نعم — نص درس «العوامل المنطقية والمنطق البولياني» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة R Academy، انتقل إلى CoddyKit PRO. تتضمن دورة R Academy 4 دروس في المجموع.

ماذا ستتعلم في «العوامل المنطقية والمنطق البولياني»؟

افهم ‎&‎ و‎|‎ و‎!‎ وxor() وany() وall() لإجراء العمليات البوليانية. تتمرن على R Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ R Academy؟

لا تُشترط خبرة سابقة. R Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «العوامل المنطقية والمنطق البولياني»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس R Academy هذا؟

نعم. كل درس في R Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. عوامل الحساب والمقارنة
  2. العوامل المنطقية والمنطق البولياني
  3. عوامل الإسناد والعوامل الخاصة
  4. أولوية العوامل والتعبيرات المعقدة
← العودة إلى R Academy