المعاملات المنطقية - الجزء الثالث
جزء من قسم Fundamentals في رحلة 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 أو لا توجد غيوم
اطبع "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;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
2المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة3المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعةتدرّب بنفسك: مترجم C عبر الإنترنت