Menu
Coddy logo textTech

Özet - Shape Enum

Coddy'nin Rust Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 18 / 61.

challenge icon

Görev

Kolay

Her biri kendi boyutlarını saklayan farklı şekilleri temsil etmek için bir enum kullanan bir geometri hesaplayıcısı oluşturalım. Shape enum'unuz, tek bir türün farklı veri yapılarını nasıl tutabileceğini ve metotlar aracılığıyla birleşik davranış sağlayabileceğini gösterecek.

Kodunuzu düzenlemek için iki dosya oluşturacaksınız:

  • shape.rs: İki varyanta sahip herkese açık bir Shape enum'u tanımlayın:
    • Circle: yarıçapı temsil eden tek bir f64 değeri tutar (demet söz dizimi)
    • Rectangle: adlandırılmış alanları tutar: width (f64) ve height (f64)
    Varyanta göre doğru alanı hesaplamak için desen eşleştirme kullanan bir area metodu uygulayın. Daireler için π değeri olarak 3.14159 kullanın.
  • main.rs: shape modülünü dahil edin, sağlanan girdileri kullanarak her şekil varyantından bir örnek oluşturun ve her şeklin alanını yazdırın.

area metodunuz bir f64 döndürmelidir. Eşleştirme yaparken, boyutlarını çıkarmak ve uygun formülü uygulamak için her varyantın iç yapısını açın:

  • Daire alanı: π × radius²
  • Dikdörtgen alanı: width × height

Çıktınız, her şeklin alanını kendi satırında ve tam olarak bir ondalık basamakla göstermelidir:

Circle area: {area}
Rectangle area: {area}

Örneğin, daire yarıçapı 5.0 ve genişliği 4.0, yüksekliği 6.0 olan bir dikdörtgen için çıktı şöyle olur:

Circle area: 78.5
Rectangle area: 24.0

Üç girdi alacaksınız: dairenin yarıçapı, dikdörtgenin genişliği ve dikdörtgenin yüksekliği.

Kendin dene

mod shape;

use shape::Shape;

fn main() {
    // Girdileri oku
    let mut radius_input = String::new();
    std::io::stdin().read_line(&mut radius_input).expect("Failed to read line");
    let radius: f64 = radius_input.trim().parse().expect("Invalid number");

    let mut width_input = String::new();
    std::io::stdin().read_line(&mut width_input).expect("Failed to read line");
    let width: f64 = width_input.trim().parse().expect("Invalid number");

    let mut height_input = String::new();
    std::io::stdin().read_line(&mut height_input).expect("Failed to read line");
    let height: f64 = height_input.trim().parse().expect("Invalid number");

    // TODO: radius kullanarak bir Circle şekli oluştur
    
    // TODO: width ve height kullanarak bir Rectangle şekli oluştur
    
    // TODO: Her şeklin alanını bir ondalık basamakla yazdır
    // Format: "Circle area: {area}" and "Rectangle area: {area}"
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Rust derleyicisi