Zusammenfassung – Listen-Organizer
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 9 von 65.
Aufgabe
EinfachErstellen Sie ein Programm, das eine Datenverarbeitungspipeline verwaltet, indem es mehrere Operationen nacheinander auf einer Liste von Zahlen ausführt. Ihr Programm sollte:
- Einen String-Input einlesen, der den Namen des Datensatzes darstellt
- Mehrere Integer-Inputs einlesen, welche die ursprünglichen Datenwerte darstellen (die Eingabe endet, wenn Sie
-999erhalten) - Den Wert
100am Anfang der Liste (Position 0) einfügen - Alle negativen Zahlen mithilfe von
removeWhere()aus der Liste entfernen - Die verbleibenden Zahlen mithilfe von
sort()in aufsteigender Reihenfolge sortieren - Mithilfe von
isEmptyprüfen, ob die finale Liste leer ist - Die Ergebnisse der Datenverarbeitung im exakt unten gezeigten Format ausgeben
Wenn der Datensatzname beispielsweise "Sales Data" lautet und die Werte 45, -12, 78, -5, 23 sind, sollte Ihr Programm Folgendes ausgeben:
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 remainingWenn der Datensatzname "Temperature Readings" lautet und die Werte -10, -5, -20 sind, sollte Ihr Programm Folgendes ausgeben:
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 remainingWenn der Datensatzname "Error Values" lautet und der einzige Wert -50 ist, sollte Ihr Programm Folgendes ausgeben:
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 remainingIhr Programm muss alle Operationen in der exakt angegebenen Reihenfolge ausführen: Zuerst den Wert 100 an Position 0 mit insert() einfügen, dann removeWhere() verwenden, um negative Zahlen zu entfernen, dann die Liste mit sort() sortieren und schließlich prüfen, ob die Liste isEmpty ist. Geben Sie "List is empty" aus, wenn die finale Liste keine Elemente enthält, oder "List is not empty", wenn sie Elemente enthält.
Probier es selbst
import 'dart:io';
void main() {
// Datensatznamen lesen
String? datasetName = stdin.readLineSync();
// Zahlen lesen, bis -999 eingegeben wird
List<int> originalData = [];
while (true) {
int? number = int.parse(stdin.readLineSync()!);
if (number == -999) {
break;
}
originalData.add(number);
}
// Anfängliche Informationen ausgeben
print('Dataset: $datasetName');
print('Original data: $originalData');
// TODO: Schreiben Sie Ihren Code unten
// 1. 100 am Anfang einfügen (Position 0)
// 2. Alle negativen Zahlen mit removeWhere() entfernen
// 3. Die Liste mit sort() aufsteigend sortieren
// 4. Mit isEmpty prüfen, ob die Liste leer ist
// 5. Die Ergebnisse im erforderlichen Format ausgeben
}Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste