Menu
CoddyTech

Menghapus Tugas

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

challenge icon

Tantangan

Mudah

Kamu akan menerima tiga input: pertama, daftar tugas yang sudah ada dan dipisahkan dengan koma; kedua, nomor tugas yang akan dihapus (indeks berbasis 1); dan ketiga, tugas baru yang akan ditambahkan setelah penghapusan. Baca semua input, buat vector dari tugas-tugas tersebut, hapus tugas yang ditentukan, tambahkan tugas baru, lalu tampilkan daftar tugas yang sudah diperbarui.

Persyaratan:

  • Baca input pertama yang berisi deskripsi tugas yang dipisahkan dengan koma (misalnya, Buy groceries,Call dentist,Finish homework)
  • Pisahkan string dengan koma untuk mendapatkan setiap tugas
  • Buat vector yang mutable dan tambahkan setiap tugas ke dalamnya
  • Baca input kedua dan ubah menjadi bilangan bulat (nomor tugas yang akan dihapus, menggunakan indeks berbasis 1)
  • Ubah indeks berbasis 1 menjadi indeks berbasis 0, lalu gunakan .remove() untuk menghapus tugas pada indeks tersebut
  • Baca input ketiga yang berisi tugas baru untuk ditambahkan
  • Gunakan .push() untuk menambahkan tugas baru ke vector
  • Cetak jumlah total tugas dengan format: Total tasks: X
  • Cetak setiap tugas pada baris terpisah dengan format: Task: [task description]

Input:

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

Output:

  • Baris pertama: Total tasks: X dengan X sebagai jumlah total tugas setelah penghapusan dan penambahan
  • Baris berikutnya: Setiap tugas dicetak dengan format Task: [task description]

Coba sendiri

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

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Baca tugas-tugas yang dipisahkan koma
    let tasks_input = lines.next().unwrap().unwrap();
    
    // Baca nomor tugas yang akan dihapus (indeks dimulai dari 1)
    let task_to_remove = lines.next().unwrap().unwrap();
    let task_number: usize = task_to_remove.trim().parse().unwrap();
    
    // Baca tugas baru yang akan ditambahkan
    let new_task = lines.next().unwrap().unwrap();
    
    // TODO: Tulis kodemu di bawah ini
    // Pisahkan tasks_input berdasarkan koma dan buat vektor yang dapat diubah
    // Hapus tugas pada indeks yang ditentukan (ubah indeks yang dimulai dari 1 menjadi dimulai dari 0)
    // Tambahkan tugas baru ke vektor
    
    // Tampilkan hasilnya
    // Cetak jumlah tugas dengan format: Total tasks: X
    // Cetak setiap tugas dengan format: Task: [deskripsi tugas]
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Rust online