Wyświetlanie wszystkich zadań
Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 17 z 66.
Wyzwanie
ŁatwyOtrzymasz dwa wejścia: najpierw listę istniejących zadań oddzielonych przecinkami, a następnie numer zadania do wyświetlenia (numerowanie od 1). Odczytaj oba wejścia, utwórz tablicę z zadań i wyświetl wszystkie zadania wraz z ich numerami, wyróżniając wskazane zadanie.
Wymagania:
- Odczytaj pierwsze wejście zawierające opisy zadań oddzielone przecinkami (np.
Buy groceries,Call dentist,Finish homework) - Podziel ciąg znaków po przecinkach, aby uzyskać poszczególne zadania
- Utwórz wektor i dodaj do niego każde zadanie
- Odczytaj drugie wejście i przekonwertuj je na liczbę całkowitą (numer zadania do wyróżnienia, numerowanie od 1)
- Wyświetl łączną liczbę zadań w formacie:
Total tasks: X - Przejdź przez wektor i wyświetl każde zadanie wraz z jego numerem (numerowanie od 1)
- Dla wskazanego numeru zadania wyświetl je w formacie:
[X] [task description] (selected) - Wszystkie pozostałe zadania wyświetl w formacie:
[X] [task description]
Dane wejściowe:
- Pierwszy wiersz: opisy zadań oddzielone przecinkami (np.
Buy groceries,Call dentist,Finish homework) - Drugi wiersz: liczba całkowita oznaczająca numer zadania do wyróżnienia (numerowanie od 1)
Dane wyjściowe:
- Pierwszy wiersz:
Total tasks: X, gdzie X oznacza łączną liczbę zadań - Kolejne wiersze: każde zadanie wraz z jego numerem w formacie
[X] [task description] - Do wybranego zadania należy dopisać
(selected)
Spróbuj swoich sił
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// Wczytaj zadania oddzielone przecinkami
let tasks_input = lines.next().unwrap().unwrap();
// Wczytaj numer zadania, które ma zostać wyróżnione
let task_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
// TODO: Napisz swój kod poniżej
// Podziel tasks_input według przecinków i utwórz wektor
// Wypisz łączną liczbę zadań
// Przejdź przez zadania i wypisz każde z nich wraz z jego numerem
// Wyróżnij wybrane zadanie, dodając na końcu " (selected)"
}Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane sterowanie przepływem
Wyrażenie „match”Dopasowywanie wielu wartościDopasowywanie zakresówWyrażenie „if let”Pętle jako wyrażeniaPodsumowanie — prosty parser poleceń4Grupowanie danych za pomocą struktur
Czym jest struktura?Przegląd strukturDostęp do pól strukturyModyfikowalne strukturyStruktury jako parametry funkcjiStruktury krotkowePodsumowanie — utwórz strukturę Book2Wprowadzenie do wektorów
Czym jest wektor?Tworzenie wektoraDodawanie elementów za pomocą pushDostęp do elementów wektoraIterowanie po wektorzeIterowanie z możliwością modyfikacjiUsuwanie elementówPodsumowanie — prosty licznik punktów5Pary klucz–wartość z mapami hashującymi
Czym jest mapa haszująca?Tworzenie mapy haszującejWstawianie par klucz–wartośćDostęp do wartościIterowanie po mapie haszującejAktualizowanie wartościUsuwanie paryPodsumowanie – licznik słów8Projekt: Prosty system inwentaryzacji
Konfiguracja projektuDodawanie produktuSprawdzanie stanu magazynowegoSprzedaż produktuŁączenie wszystkiego w całość3Lista zadań w wierszu poleceń
Konfiguracja projektuDodawanie zadaniaWyświetlanie wszystkich zadańUsuwanie zadaniaKońcowy kodPoćwicz samodzielnie: Kompilator Rust online