Menu
CoddyTech

Kode Akhir

Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 19 dari 66.

challenge icon

Tantangan

Mudah

Kamu akan menerima empat input yang mewakili alur kerja daftar tugas lengkap: pertama, daftar tugas awal yang dipisahkan dengan koma; kedua, tugas baru yang akan ditambahkan; ketiga, nomor tugas yang akan dilihat (indeks berbasis 1); dan keempat, nomor tugas yang akan dihapus (indeks berbasis 1). Buat pengelola daftar tugas lengkap yang memproses semua operasi ini dan menampilkan keadaan akhirnya.

Persyaratan:

  • Baca input pertama yang berisi deskripsi tugas yang dipisahkan dengan koma (misalnya, Buy groceries,Call dentist,Finish homework)
  • Pisahkan string berdasarkan koma dan buat vector yang bisa diubah dari tugas-tugas awal ini
  • Baca input kedua dan tambahkan tugas baru ini ke vector menggunakan .push()
  • Baca input ketiga, lalu ubah menjadi bilangan bulat (nomor tugas berbasis 1 yang akan dilihat)
  • Baca input keempat, lalu ubah menjadi bilangan bulat (nomor tugas berbasis 1 yang akan dihapus)
  • Hapus tugas yang ditentukan dengan mengubah indeks berbasis 1 menjadi indeks berbasis 0 dan menggunakan .remove()
  • Cetak Total tasks: X dengan X sebagai jumlah akhir tugas
  • Cetak Viewing task: Y dengan Y sebagai nomor tugas yang diminta untuk dilihat
  • Telusuri daftar tugas akhir dan cetak setiap tugas beserta nomornya (berbasis 1)
  • Untuk tugas yang cocok dengan nomor yang akan dilihat (setelah penyesuaian akibat penghapusan), cetak: [X] [task description] (selected)
  • Untuk semua tugas lainnya, cetak: [X] [task description]

Input:

  • Baris pertama: Deskripsi tugas yang dipisahkan dengan koma (misalnya, Buy groceries,Call dentist,Finish homework)
  • Baris kedua: Tugas baru yang akan ditambahkan (misalnya, Study for exam)
  • Baris ketiga: Bilangan bulat yang mewakili nomor tugas yang akan dilihat (indeks berbasis 1)
  • Baris keempat: Bilangan bulat yang mewakili nomor tugas yang akan dihapus (indeks berbasis 1)

Output:

  • Baris pertama: Total tasks: X dengan X sebagai jumlah akhir tugas
  • Baris kedua: Viewing task: Y dengan Y sebagai nomor yang diminta untuk dilihat
  • Baris berikutnya: Setiap tugas beserta nomornya dalam format [X] [task description]
  • Tugas yang dipilih (yang cocok dengan nomor yang akan dilihat) harus diikuti (selected)

Coba sendiri

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

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Baca tugas awal yang dipisahkan koma
    let initial_tasks = lines.next().unwrap().unwrap();
    
    // Baca tugas baru yang akan ditambahkan
    let new_task = lines.next().unwrap().unwrap();
    
    // Baca nomor tugas yang akan dilihat (berbasis 1)
    let view_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
    
    // Baca nomor tugas yang akan dihapus (berbasis 1)
    let remove_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
    
    // TODO: Tulis kodemu di bawah ini
    // 1. Pisahkan initial_tasks berdasarkan koma dan buat vektor yang dapat diubah
    // 2. Tambahkan new_task ke vektor
    // 3. Hapus tugas pada remove_number (ubah menjadi indeks berbasis 0)
    // 4. Cetak jumlah tugas dan informasi tugas yang dilihat
    // 5. Telusuri list akhir dan cetak setiap tugas
    
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Rust online