אופרטורים לוגיים חלק 3
חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 23 מתוך 75.
כשבודקים כמה תנאים, המחשב מפסיק לבדוק ברגע שהוא יודע מה התשובה הסופית (זה נקרא הערכה בקיצור דרך).
לדוגמה:
let x: i32 = 0;
let y: i32 = 5;
let result: bool = x != 0 && y / x > 2;כאן x שווה ל־0, ולכן הוא לא יעריך את y / x > 2. אם נהפוך את הסדר:
let result: bool = y / x > 2 && x != 0;התוצאה תהיה שגיאה, כי y יחולק ב־0, וזה אסור במתמטיקה.
משתמשים בטכניקה הזו כדי לייעל את ההערכה של ביטויים לוגיים. לדוגמה:
let a: i32 = 0;
let b: i32 = 2;
let c: i32 = 3;
let d: i32 = 5;
let result: bool = (a > 0 && b < 2) || (c < -5 && d < 10);בדוגמה הזו b < 2 ו־d < 10 לא יוערכו, כי a > 0 וגם c < -5 הם שקר.
אתגר
מתחיליםבואו ניצור תוכנית שתחליט אם זה יום טוב לייצור אנרגיה באמצעות פאנלים סולאריים
אתחלו את המשתנים האלה:
is_sunnyבערך truewind_speedבערך 5.4temperatureבערך 23solar_panel_outputבערך 9is_cloudyבערך false
צרו ביטוי לוגי אחד שבודק את כל התנאים האלה:
- השמש זורחת
- מהירות הרוח נמוכה מ־10
- תפוקת הפאנל הסולארי נמוכה מ־15
- הטמפרטורה גבוהה מ־20 או שאין עננים
נסו בעצמכם
fn main() {
// אתחלו משתנים
// החליפו את ערכי ברירת המקום שלהלן בערכים מהמשימה
let is_sunny: bool = false;
let wind_speed: f64 = 99.0;
let temperature: i32 = 0;
let solar_panel_output: i32 = 99;
let is_cloudy: bool = true;
// הביטוי הלוגי המלא
// החליפו את ערך ברירת המקום שלהלן בתנאי המלא
let result: bool = false;
// אל תמחקו את השורות שלהלן
println!("Checking conditions for solar energy production...");
println!("1. Is it sunny? {}", is_sunny);
println!("2. Is wind speed safe? {}", (wind_speed < 10.0));
println!("3. Can panels produce more? {}", (solar_panel_output < 15));
println!("4. Is temperature good OR no clouds? {}", (temperature > 20 || !is_cloudy));
println!("\\nFinal result - Good day for solar energy production: {}", result);
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר Rust אונליין