Menu
Coddy logo textTech

Final Kodu

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

challenge icon

Görev

Kolay

Tam bir yapılacaklar listesi iş akışını temsil eden dört girdi alacaksınız: birincisi, virgülle ayrılmış başlangıç görevleri listesi; ikincisi, eklenecek yeni bir görev; üçüncüsü, görüntülenecek bir görev numarası (1 tabanlı indeksleme); ve dördüncüsü, silinecek bir görev numarası (1 tabanlı indeksleme). Tüm bu işlemleri işleyen ve son durumu görüntüleyen eksiksiz bir yapılacaklar listesi yöneticisi oluşturun.

Gereksinimler:

  • Virgülle ayrılmış görev açıklamalarını içeren ilk girdiyi okuyun (örneğin, Buy groceries,Call dentist,Finish homework)
  • Dizeyi virgüllere göre ayırın ve bu başlangıç görevleriyle değiştirilebilir bir vektör (mutable vector) oluşturun
  • İkinci girdiyi okuyun ve .push() kullanarak bu yeni görevi vektöre ekleyin
  • Üçüncü girdiyi okuyun, bunu bir tam sayıya dönüştürün (görüntülenecek 1 tabanlı görev numarası)
  • Dördüncü girdiyi okuyun, bunu bir tam sayıya dönüştürün (silinecek 1 tabanlı görev numarası)
  • 1 tabanlı indeksi 0 tabanlıya dönüştürerek ve .remove() kullanarak belirtilen görevi silin
  • Total tasks: X yazdırın, burada X son görev sayısıdır
  • Viewing task: Y yazdırın, burada Y görüntülenmesi istenen görev numarasıdır
  • Son görev listesi üzerinde döngü kurun ve her görevi numarasıyla (1 tabanlı) birlikte yazdırın
  • Görüntüleme numarasıyla eşleşen görev için (silme düzeltmelerinden sonra) şunu yazdırın: [X] [task description] (selected)
  • Diğer tüm görevler için şunu yazdırın: [X] [task description]

Girdi:

  • Birinci satır: Virgülle ayrılmış görev açıklamaları (örneğin, Buy groceries,Call dentist,Finish homework)
  • İkinci satır: Eklenecek yeni bir görev (örneğin, Study for exam)
  • Üçüncü satır: Görüntülenecek görev numarasını temsil eden bir tam sayı (1 tabanlı indeksleme)
  • Dördüncü satır: Silinecek görev numarasını temsil eden bir tam sayı (1 tabanlı indeksleme)

Çıktı:

  • Birinci satır: Total tasks: X burada X son görev sayısıdır
  • İkinci satır: Viewing task: Y burada Y istenen görüntüleme numarasıdır
  • Sonraki satırlar: [X] [task description] formatında her bir görev ve numarası
  • Seçilen görevin (görüntüleme numarasıyla eşleşen) sonuna (selected) eklenmelidir

Kendin dene

use std::io::{self, BufRead};

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Başlangıçtaki virgülle ayrılmış görevleri oku
    let initial_tasks = lines.next().unwrap().unwrap();
    
    // Eklenecek yeni görevi oku
    let new_task = lines.next().unwrap().unwrap();
    
    // Görüntülenecek görev numarasını oku (1 tabanlı)
    let view_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
    
    // Silinecek görev numarasını oku (1 tabanlı)
    let remove_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
    
    // TODO: Kodunuzu aşağıya yazın
    // 1. initial_tasks değişkenini virgüllere göre ayırın ve değiştirilebilir bir vektör oluşturun
    // 2. new_task değişkenini vektöre ekleyin
    // 3. remove_number konumundaki görevi silin (0 tabanlı dizine dönüştürün)
    // 4. Toplam görev sayısını ve görüntülenen görev bilgisini yazdırın
    // 5. Nihai liste üzerinde döngü kurun ve her bir görevi yazdırın
    
}

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