Podsumowanie – Organizator listy
Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 9 z 65.
Wyzwanie
ŁatwyUtwórz program, który zarządza potokiem przetwarzania danych, wykonując kolejno wiele operacji na liście liczb. Twój program powinien:
- Odczytać ciąg znaków reprezentujący nazwę zestawu danych
- Odczytać wiele liczb całkowitych reprezentujących oryginalne wartości danych (wprowadzanie zakończy się po otrzymaniu
-999) - Wstawić wartość
100na początku listy (pozycja 0) - Usunąć wszystkie liczby ujemne z listy za pomocą
removeWhere() - Posortować pozostałe liczby rosnąco za pomocą
sort() - Sprawdzić, czy końcowa lista jest pusta, za pomocą
isEmpty - Wypisać wyniki przetwarzania danych w dokładnie takim formacie, jak pokazano poniżej
Na przykład, jeśli nazwa zestawu danych to "Sales Data", a wartości to 45, -12, 78, -5, 23, program powinien wypisać:
Dataset: Sales Data
Original data: [45, -12, 78, -5, 23]
Step 1: Inserted 100 at beginning
After insertion: [100, 45, -12, 78, -5, 23]
Step 2: Removed negative numbers
After removal: [100, 45, 78, 23]
Step 3: Sorted in ascending order
After sorting: [23, 45, 78, 100]
Final result: List is not empty
Processing complete: 4 values remainingJeśli nazwa zestawu danych to "Temperature Readings", a wartości to -10, -5, -20, program powinien wypisać:
Dataset: Temperature Readings
Original data: [-10, -5, -20]
Step 1: Inserted 100 at beginning
After insertion: [100, -10, -5, -20]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remainingJeśli nazwa zestawu danych to "Error Values", a jedyną wartością jest -50, program powinien wypisać:
Dataset: Error Values
Original data: [-50]
Step 1: Inserted 100 at beginning
After insertion: [100, -50]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remainingTwój program musi wykonać wszystkie operacje w dokładnie podanej kolejności: najpierw insert() wartość 100 na pozycji 0, następnie użyć removeWhere(), aby usunąć liczby ujemne, potem posortować listę za pomocą sort(), a na końcu sprawdzić, czy lista jest isEmpty. Wyświetl "List is empty", jeśli końcowa lista nie zawiera elementów, lub "List is not empty", jeśli zawiera elementy.
Spróbuj swoich sił
import 'dart:io';
void main() {
// Wczytaj nazwę zbioru danych
String? datasetName = stdin.readLineSync();
// Wczytuj liczby, aż pojawi się -999
List<int> originalData = [];
while (true) {
int? number = int.parse(stdin.readLineSync()!);
if (number == -999) {
break;
}
originalData.add(number);
}
// Wyświetl informacje początkowe
print('Dataset: $datasetName');
print('Original data: $originalData');
// TODO: Napisz swój kod poniżej
// 1. Wstaw 100 na początku (pozycja 0)
// 2. Usuń wszystkie liczby ujemne za pomocą removeWhere()
// 3. Posortuj listę rosnąco za pomocą sort()
// 4. Sprawdź, czy lista jest pusta, za pomocą isEmpty
// 5. Wyświetl wyniki w wymaganym formacie
}Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Zaawansowana manipulacja listami
Właściwości listy: first i lastStan listy: isEmpty i isNotEmpOdwracanie listyDodawanie do listy: insertUsuwanie z listy: removeWhereWyszukiwanie na liście: indexOfSortowanie listyMieszanie elementów listyPodsumowanie – Organizator listy4Zaawansowane operacje na mapach
Iterowanie po mapieSprawdzanie kluczy i wartościWłaściwości mapy: klucze i wartościDodawanie warunkowe: putIfAbsentUsuwanie wpisów z mapyZagnieżdżone mapyPodsumowanie – aktualizacja stanu magazynowego2Operacje funkcyjne na listach
Przekształcanie za pomocą 'map'Filtrowanie za pomocą 'where'Używanie '.toList()'Sprawdzanie warunków za pomocą 'any'Warunki z użyciem 'every'Wyszukiwanie za pomocą 'firstWhere'Podsumowanie — filtrowanie danych5Projekt: Kalkulator koszyka zakupowego
Konfiguracja projektuDodawanie produktów do koszyka3Zbiory
Czym jest zbiór?Tworzenie zbioruDodawanie i usuwanie elementów ze zbiorówSprawdzanie, czy element znajduje się w zbiorzeKonwersja listy na zbiórSuma zbiorówCzęść wspólna zbiorówRóżnica zbiorówPodsumowanie — unikalna lista gościPoćwicz samodzielnie: Kompilator Dart online