Zusammenfassung – Listen-Organizer
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 9 von 65.
Aufgabe
EinfachErstelle ein Programm, das eine Datenverarbeitungspipeline verwaltet, indem es mehrere Operationen nacheinander auf einer Liste von Zahlen ausführt. Dein Programm sollte:
- Eine Zeichenfolgeneingabe lesen, die den Namen des Datensatzes darstellt
- Mehrere Ganzzahl-Eingaben lesen, die die ursprünglichen Datenwerte darstellen (die Eingabe endet, sobald du
-999erhältst) - 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()aufsteigend sortieren - Prüfen, ob die endgültige Liste mithilfe von
isEmptyleer ist - Die Ergebnisse der Datenverarbeitung im unten gezeigten exakten Format ausgeben
Wenn der Name des Datensatzes beispielsweise "Sales Data" lautet und die Werte 45, -12, 78, -5, 23 sind, sollte dein 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 Name des Datensatzes "Temperature Readings" lautet und die Werte -10, -5, -20 sind, sollte dein 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 Name des Datensatzes "Error Values" lautet und der einzige Wert -50 ist, sollte dein 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 remainingDein Programm muss alle Operationen in der genau angegebenen Reihenfolge ausführen: Zuerst insert() den Wert 100 an Position 0 einfügen, dann removeWhere() verwenden, um negative Zahlen zu entfernen, anschließend die Liste mit sort() sortieren und schließlich prüfen, ob die Liste isEmpty ist. Gib „Liste ist leer“ aus, wenn die endgültige Liste keine Elemente enthält, oder „Liste ist nicht leer“, 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Übe selbstständig: Online-Dart-Compiler