Özet - Temel Skor Takipçisi
Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası. Ders 14 / 66.
Görev
Kolayİki girdi alacaksın: önce virgülle ayrılmış bir test scores listesi, ardından eklenecek bir score. İlk scores değerlerinden bir vector oluştur, yeni score değerini ekle, tüm scores değerlerinin average değerini hesapla ve sonuçları yazdır.
Gereksinimler:
- Virgülle ayrılmış scores içeren ilk girdiyi oku (ör.
85,92,78) - String'i virgüllere göre ayır ve integer değerine dönüştürmeden önce her bir token'ı trim yap (ör. ayırma işleminden sonra her öğe üzerinde
.trim()kullan) - Bu scores değerlerinden mutable bir vector oluştur
- İkinci girdiyi oku ve integer değerine dönüştür (önce trim yap)
- Yeni score değerini vector'e eklemek için
.push()kullan - Vector içindeki tüm scores değerlerinin average değerini hesapla
- Toplam scores sayısını yazdır
- Average score değerini integer olarak yazdır
Girdi:
- İlk satır: İlk scores değerlerini temsil eden virgülle ayrılmış integers (ör.
85,92,78) - İkinci satır: Eklenecek yeni score değerini temsil eden bir integer
Çıktı:
- İlk satır: Toplam scores sayısı
- İkinci satır: Average score değeri (integer olarak, kesilmiş)
Not: Girdi satırının tamamında .trim() ve virgülle ayırma işleminden sonra her bir score token'ında her zaman .trim() çağır. Girdi string'leri, kaldırılmadıkları takdirde ayrıştırma sırasında panic'e neden olacak görünmez boşluklar veya yeni satır karakterleri içerebilir.
Kendin dene
use std::io;
fn main() {
// Virgülle ayrılmış puanları oku
let mut scores_input = String::new();
io::stdin().read_line(&mut scores_input).expect("Failed to read line");
// Eklenecek yeni puanı oku
let mut new_score_input = String::new();
io::stdin().read_line(&mut new_score_input).expect("Failed to read line");
// TODO: Kodunuzu aşağıya yazın
// 1. scores_input'u virgüllere göre ayır ve tamsayılara dönüştür
// 2. Bu puanlardan değiştirilebilir bir vektör oluştur
// 3. new_score_input'u bir tamsayıya dönüştür
// 4. Yeni puanı vektöre ekle
// 5. Tüm puanların ortalamasını hesapla
// Toplam puan sayısını yazdır
// println!("{}", total_scores);
// Ortalama puanı yazdır
// println!("{}", average);
}Logic & Flow bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
'match' İfadesiBirden Çok Değeri EşleştirmeAralıkları Eşleştirme'if let' İfadesiİfade Olarak DöngülerÖzet - Basit Komut Ayrıştırıcı4Struct'lar ile Verileri Gruplama
Struct Nedir?Struct'lara Genel BakışStruct Alanlarına ErişmeMutable Struct'larFonksiyon Parametresi Olarak Struct'larTuple Struct'larÖzet - Bir Kitap Struct'ı Oluşturun7'Result' ile Hata Yönetimi
'Result' Nedir?'Result' ile 'match' Kullanımıis_ok() ve is_err()Kısayollar: unwrap ve expectSoru İşareti Operatörü '?'String'leri Sayılara DönüştürmeÖzet - Güvenli Bölme Fonksiyonu10Closures ve Anonim Fonksiyonlar
Closure Nedir?Basit Bir Closure TanımlamaParametreli Closure'larOrtamı YakalamakÖzet - Basit Toplayıcı Closure2Vektörlere Giriş
Vektör Nedir?Vektör Oluşturmapush ile Eleman EklemeVektör Elemanlarına ErişmeVektör Üzerinde YinelemeDeğiştirilebilir YinelemeEleman KaldırmaÖzet - Temel Skor Takipçisi5Hash Map'ler ile Anahtar-Değer Çiftleri
Hash Map Nedir?Bir Hash Map OluşturmaAnahtar-Değer Çiftleri EklemeDeğerlere ErişmeBir Hash Map Üzerinde GezinmeBir Değeri GüncellemeBir Çifti KaldırmaÖzet - Kelime Sayacı11Son Meydan Okumalar
Özet - Benzersiz ÖğelerÖzet - Kullanıcı Profili DoğrulayıcıÖzet - Not Özetleyici3Komut Satırı Yapılacaklar Listesi
Proje KurulumuGörev EklemeTüm Görevleri GörüntülemeGörev SilmeFinal Kodu6'Option' ile Yokluğu Yönetme
'Option' Nedir?'Option' ile 'match' Kullanımıis_some() ve is_none()Bir 'Option' Değerini Açmak (Unwrapping)expect MetoduVarsayılan Değer Sağlama: unwrap_orÖzet - Bir Eleman Bulma9String Dilimleri ve Daha Fazlası
String ve &strString Dilimleri OluşturmaFonksiyon Parametresi Olarak DilimlerDiğer DilimlerÖzet - İlk Kelimeyi BulmaKendi başına pratik yap: Online Rust derleyicisi