אופרטורים לוגיים חלק 3
חלק מהיחידה יסודות במסלול ה-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 (true)windSpeedעם הערך 5.4temperatureעם הערך 23solarPanelOutputעם הערך 9isCloudyעם הערך 0 (false)
צרו ביטוי לוגי אחד שבודק את כל התנאים האלה:
- יש שמש
- מהירות הרוח נמוכה מ-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;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: קומפיילר C אונליין