אופרטורים לוגיים חלק 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 (אמת)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;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: קומפיילר C אונליין