Menu
Coddy logo textTech

סיכום - פונקציית חילוק בטוחה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 48 מתוך 66.

challenge icon

אתגר

קל

תקבלו שתי קלטים. הקלט הראשון הוא מספר שמייצג את המחולק, והקלט השני הוא מספר שמייצג את המחלק. צרו פונקציה safe_divide שמקבלת שני פרמטרים מסוג f64 ומחזירה Result<f64, &'static str>. הפונקציה צריכה להחזיר Err("Cannot divide by zero") כאשר המחלק הוא אפס, ולהחזיר Ok עם תוצאת החילוק אחרת. השתמשו בביטוי match כדי לטפל בתוצאה ולהדפיס את הפלט המתאים.

דרישות:

  • קראו את הקלט הראשון (המחולק) והסירו רווחים לבנים
  • נתחו את הקלט הראשון ל-f64
  • קראו את הקלט השני (המחלק) והסירו רווחים לבנים
  • נתחו את הקלט השני ל-f64
  • צרו פונקציה safe_divide שמקבלת שני פרמטרים מסוג f64 ומחזירה Result<f64, &'static str>
  • בתוך הפונקציה, בדקו אם המחלק הוא 0.0:
    • אם כן, החזירו Err("Cannot divide by zero")
    • אם לא, החזירו Ok(dividend / divisor)
  • קראו לפונקציה עם שני המספרים שנותחו
  • השתמשו בביטוי match כדי לטפל ב-Result
  • בזרוע Ok(value), הדפיסו: Division result: [value]
  • בזרוע Err(error), הדפיסו: Error: [error]

קלט:

  • שורה ראשונה: מספר שמייצג את המחולק (לדוגמה, 20.0)
  • שורה שנייה: מספר שמייצג את המחלק (לדוגמה, 4.0)

פלט:

  • אם החילוק הצליח: Division result: [result]
  • אם מתבצע חילוק באפס: Error: Cannot divide by zero

נסו בעצמכם

use std::io;

// TODO: צרו כאן את הפונקציה safe_divide
// fn safe_divide(dividend: f64, divisor: f64) -> Result<f64, &'static str> {
//     הקוד שלכם כאן
// }

fn main() {
    // קראו את הקלט הראשון (dividend)
    let mut dividend_input = String::new();
    io::stdin().read_line(&mut dividend_input).expect("Failed to read line");
    let dividend: f64 = dividend_input.trim().parse().expect("Invalid number");
    
    // קראו את הקלט השני (divisor)
    let mut divisor_input = String::new();
    io::stdin().read_line(&mut divisor_input).expect("Failed to read line");
    let divisor: f64 = divisor_input.trim().parse().expect("Invalid number");
    
    // TODO: קראו ל־safe_divide והשתמשו ב־match כדי לטפל ב־Result
    // הדפיסו את הפלט המתאים בהתאם לתוצאה
}

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Rust אונליין