אופרטורים לוגיים חלק 3
חלק מהיחידה יסודות במסלול ה-C++ של Coddy. שיעור 26 מתוך 74.
כשבודקים כמה תנאים, המחשב מפסיק לבדוק ברגע שהוא יודע מה התשובה הסופית (הדבר נקרא הערכה בקיצור דרך).
לדוגמה:
int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2;כאן x שווה ל־0, ולכן הביטוי y / x > 2 לא יחושב. אם נהפוך את הסדר:
bool result = y / x > 2 && x != 0;הדבר יגרום לשגיאה, כי y יחולק ב־0, וזה אסור במתמטיקה.
משתמשים בטכניקה הזאת כדי לייעל את ההערכה של ביטויים לוגיים. לדוגמה:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
bool result = (a > 0 && b < 2) || (c < -5 && d < 10);בדוגמה הזו, b < 2 ו-d < 10 לא יוערכו, כי a > 0 וגם c < -5 הם שקריים.
אתגר
מתחיליםצרו תוכנית שתחליט אם זה יום טוב לייצור אנרגיה באמצעות פאנלים סולאריים
אתחלו את המשתנים האלה:
isSunnyעם הערך truewindSpeedעם הערך 5.4temperatureעם הערך 23solarPanelOutputעם הערך 9isCloudyעם הערך false
צרו ביטוי לוגי אחד שבודק את כל התנאים האלה:
- השמש זורחת
- מהירות הרוח קטנה מ-10
- התפוקה של הפאנלים הסולאריים קטנה מ-15
- הטמפרטורה גבוהה מ-20 או שאין שום עננים
נסו בעצמכם
#include <iostream>
int main() {
// אתחלו את המשתנים
// החליפו כל ערך זמני להלן בערך המבוקש במשימה
bool isSunny = false;
double windSpeed = 0.0;
int temperature = 0;
int solarPanelOutput = 0;
bool isCloudy = false;
// הביטוי הלוגי המלא
// החליפו את הערך הזמני להלן בביטוי אחד המשלב את כל ארבעת התנאים
bool result = false;
// הדפיסו את התוצאות
std::cout << "1. Is it sunny? " << std::boolalpha << isSunny << std::endl;
std::cout << "2. Is wind speed safe? " << (windSpeed < 10) << std::endl;
std::cout << "3. Do panels produce less? " << (solarPanelOutput < 15) << std::endl;
std::cout << "4. Is temperature good OR no clouds? " << (temperature > 20 || !isCloudy) << std::endl;
std::cout << "5. Final result: " << result << std::endl;
return 0;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוהגדלה/הקטנההגדלה/הקטנה לאחר הפעולהקיצורים אריתמטייםאופרטורי השוואההשוואת מחרוזות5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר C++ אונליין