Menu
Coddy logo textTech

Özet - Güvenli Bölme Fonksiyonu

Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 48 / 66.

challenge icon

Görev

Kolay

İki girdi alacaksınız. İlk girdi bölüneni temsil eden bir sayı, ikinci girdi ise böleni temsil eden bir sayıdır. İki f64 parametresi alan ve bir Result<f64, &'static str> döndüren bir safe_divide fonksiyonu oluşturun. Fonksiyon, bölen sıfır olduğunda Err("Cannot divide by zero"), aksi takdirde bölme sonucuyla birlikte Ok döndürmelidir. Sonucu işlemek ve uygun çıktıyı yazdırmak için bir match ifadesi kullanın.

Gereksinimler:

  • İlk girdiyi (bölünen) okuyun ve boşlukları temizleyin
  • İlk girdiyi f64 türüne dönüştürün
  • İkinci girdiyi (bölen) okuyun ve boşlukları temizleyin
  • İkinci girdiyi f64 türüne dönüştürün
  • İki f64 parametresi alan ve Result<f64, &'static str> döndüren bir safe_divide fonksiyonu oluşturun
  • Fonksiyonun içinde, bölenin 0.0 olup olmadığını kontrol edin:
    • Eğer öyleyse, Err("Cannot divide by zero") döndürün
    • Değilse, Ok(dividend / divisor) döndürün
  • Fonksiyonu ayrıştırılan iki sayı ile çağırın
  • Result değerini işlemek için bir match ifadesi kullanın
  • Ok(value) kolunda şunu yazdırın: Division result: [value]
  • Err(error) kolunda şunu yazdırın: Error: [error]

Girdi:

  • İlk satır: Bölüneni temsil eden bir sayı (örneğin, 20.0)
  • İkinci satır: Böleni temsil eden bir sayı (örneğin, 4.0)

Çıktı:

  • Bölme başarılıysa: Division result: [result]
  • Sıfıra bölme durumunda: Error: Cannot divide by zero

Kendin dene

use std::io;

// TODO: safe_divide fonksiyonunu burada oluşturun
// fn safe_divide(dividend: f64, divisor: f64) -> Result<f64, &'static str> {
//     Kodunuz buraya
// }

fn main() {
    // İlk girdiyi oku (bölünen)
    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");
    
    // İkinci girdiyi oku (bölen)
    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 fonksiyonunu çağırın ve Result'ı işlemek için match kullanın
    // Sonuca göre uygun çıktıyı yazdırın
}

Logic & Flow bölümündeki tüm dersler