المعاملات المنطقية - الجزء الثالث
جزء من قسم الأساسيات في رحلة C على Coddy. الدرس 23 من 63.
عند التحقق من شروط متعددة، يتوقف البرنامج عن التحقق بمجرد أن يعرف الإجابة النهائية. يُسمى هذا التقييم بالتقصير.
على سبيل المثال:
int x = 0;
int y = 5;
int result = (x != 0) && (y / x > 2);هنا x يساوي 0، لذلك لن يُقيّم y / x > 2. إذا عكسنا الترتيب:
int result = (y / x > 2) && (x != 0);سيؤدي ذلك إلى حدوث خطأ لأن y ستُقسَم على 0، وهذا غير معرّف في C. لذا من الممارسات الجيدة التفكير مليًا في العمليات، حتى تتمكن من كتابة شيفرة صحيحة وفعّالة وخالية من الأخطاء.
تُستخدم هذه التقنية لتحسين تقييم التعبيرات المنطقية. على سبيل المثال:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
int result = (a > 0 && b < 2) || (c < -5 && d < 10);في هذا المثال، لن يتم تقييم b < 2 وd < 10 لأن a > 0 وc < -5 كلاهما خاطئ.
التحدي
سهلأنشئ برنامجًا لتحديد ما إذا كان اليوم مناسبًا لإنتاج الطاقة باستخدام الألواح الشمسية
هيّئ هذه المتغيرات:
isSunnyبالقيمة 1 (صحيح)windSpeedبالقيمة 5.4temperatureبالقيمة 23solarPanelOutputبالقيمة 9isCloudyبالقيمة 0 (خطأ)
أنشئ تعبيرًا منطقيًا واحدًا يتحقق من كل هذه الشروط:
- الجو مشمس
- سرعة الرياح أقل من 10
- إنتاج الألواح الشمسية أقل من 15
- درجة الحرارة أعلى من 20 OR لا توجد غيوم
اطبع "Good day for solar energy" إذا تحققت جميع الشروط، وإلا فاطبع "Not ideal for solar energy".
جرّب بنفسك
#include <stdio.h>
int main() {
// هيّئ المتغيرات
int isSunny = 1;
float windSpeed = 5.4;
int temperature = 23;
int solarPanelOutput = 9;
int isCloudy = 0;
// أنشئ التعبير المنطقي
int isGoodDay =
// لا تغيّر ما يلي
if (isGoodDay) {
printf("Good day for solar energy\n");
} else {
printf("Not ideal for solar energy\n");
}
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة3المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعةتدرّب بنفسك: مترجم C عبر الإنترنت