Özet - Not Özetleyici
Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 66 / 66.
Görev
KolayÖğrenci notlarını temsil eden birden fazla girdi alacaksınız. İlk girdi, kaç tane notun takip edeceğini belirten bir sayıdır. Ardından, o kadar not değerini (her satırda bir tane) alacaksınız. Bu notları işleyin ve kapsamlı bir özet sunun.
Gereksinimler:
- İlk girdiyi (not sayısı) okuyun, boşlukları temizleyin ve
i32türüne dönüştürün - Notları saklamak için boş bir vektör oluşturun
- Her bir notu okumak, boşlukları temizlemek,
i32türüne dönüştürmek ve vektöre eklemek için bir döngü kullanın - Ortalama notu hesaplayın (tüm notların toplamının not sayısına bölümü)
- Vektördeki en yüksek notu bulun
- Vektördeki en düşük notu bulun
- Kaç notun başarılı (70 veya üzeri) olduğunu sayın
- Kaç notun başarısız (70'in altı) olduğunu sayın
- Sonuçları aşağıda gösterilen tam formatta yazdırın
Çıktı Formatı:
- Satır 1:
Average: X(burada X, tam sayı olarak ortalamadır) - Satır 2:
Highest: X(burada X, en yüksek nottur) - Satır 3:
Lowest: X(burada X, en düşük nottur) - Satır 4:
Passing: X(burada X, başarılı notların sayısıdır) - Satır 5:
Failing: X(burada X, başarısız notların sayısıdır)
Girdi:
- İlk satır: Not sayısı (örneğin,
5) - Takip eden satırlar: Bireysel not değerleri (örneğin,
85,92,67,78,95)
Çıktı:
- Ortalamayı, en yüksek notu, en düşük notu, başarılı sayısını ve başarısız sayısını gösteren beş satır
Kendin dene
use std::io;
fn main() {
// Not sayısını oku
let mut count_input = String::new();
io::stdin().read_line(&mut count_input).expect("Failed to read line");
let count: i32 = count_input.trim().parse().expect("Invalid number");
// Notları saklamak için bir vektör oluştur
let mut grades: Vec<i32> = Vec::new();
// Her bir notu oku
for _ in 0..count {
let mut grade_input = String::new();
io::stdin().read_line(&mut grade_input).expect("Failed to read line");
let grade: i32 = grade_input.trim().parse().expect("Invalid number");
grades.push(grade);
}
// TODO: Kodunuzu aşağıya yazın
// Ortalamayı hesaplayın, en yükseği bulun, en düşüğü bulun, geçen ve kalan notları sayın
// Sonuçları istenen formatta yazdırın
// println!("Average: {}", average);
// println!("Highest: {}", highest);
// println!("Lowest: {}", lowest);
// println!("Passing: {}", passing_count);
// println!("Failing: {}", failing_count);
}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 Bulma