Zusammenfassung – List Processor
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 50 von 65.
Aufgabe
EinfachErstellen Sie ein flexibles Datenverarbeitungssystem, das Funktionen höherer Ordnung demonstriert, indem Sie einen anpassbaren Listenprozessor erstellen. Ihr Programm wird verschiedene Verarbeitungsfunktionen erstellen und eine Hauptprozessorfunktion verwenden, die jede beliebige Operation auf eine Liste von Daten anwenden kann.
- Lesen Sie eine String-Eingabe ein, die durch Kommas getrennte Zahlen enthält (z. B.
"10,20,30,40") - Lesen Sie eine String-Eingabe ein, die den ersten Operationstyp darstellt (
"multiply","add"oder"subtract") - Lesen Sie eine String-Eingabe ein, die den Wert darstellt, der mit der ersten Operation verwendet werden soll (z. B.
"3") - Lesen Sie eine String-Eingabe ein, die den zweiten Operationstyp darstellt (
"multiply","add"oder"subtract") - Lesen Sie eine String-Eingabe ein, die den Wert darstellt, der mit der zweiten Operation verwendet werden soll (z. B.
"5") - Teilen Sie die erste Eingabe in einzelne Zahlen auf und konvertieren Sie jede in eine Ganzzahl
- Erstellen Sie drei Operationsfunktionen:
multiplyBy- nimmt zwei Ganzzahlen entgegen und gibt das Produkt der ersten mit der zweiten zurückaddTo- nimmt zwei Ganzzahlen entgegen und gibt die Summe der ersten und der zweiten zurücksubtractFrom- nimmt zwei Ganzzahlen entgegen und gibt die Differenz der ersten minus der zweiten zurück- Erstellen Sie eine Hauptfunktion namens
processListWithOperation, die drei Parameter entgegennimmt: - Eine Liste von Ganzzahlen
- Eine Funktion, die zwei Ganzzahlen entgegennimmt und eine Ganzzahl zurückgibt
- Einen Ganzzahlwert, der mit der Operation verwendet werden soll
- Die Funktion
processListWithOperationsollte die übergebene Funktion auf jede Zahl in der Liste unter Verwendung des bereitgestellten Wertes anwenden und eine neue Liste mit den Ergebnissen zurückgeben - Wenden Sie die erste Operation auf die ursprüngliche Liste an und wenden Sie dann die zweite Operation auf das Ergebnis der ersten Operation an
- Zeigen Sie die Ergebnisse in dem unten gezeigten exakten Format an
Wenn die Eingaben beispielsweise "2,4,6", "multiply", "3", "add" und "10" sind, sollte Ihr Programm Folgendes ausgeben:
Advanced List Processor
=======================
Original list: [2, 4, 6]
First operation: multiply by 3
After first operation: [6, 12, 18]
Second operation: add 10
Final result: [16, 22, 28]
Processing completed successfullyWenn die Eingaben "15,25,35", "subtract", "5", "multiply" und "2" sind, sollte Ihr Programm Folgendes ausgeben:
Advanced List Processor
=======================
Original list: [15, 25, 35]
First operation: subtract 5
After first operation: [10, 20, 30]
Second operation: multiply by 2
Final result: [20, 40, 60]
Processing completed successfullyIhr Programm muss Funktionen höherer Ordnung demonstrieren, indem es die entsprechende Operationsfunktion basierend auf den Eingaben des Operationstyps an processListWithOperation übergibt. Verwenden Sie bedingte Anweisungen, um zu bestimmen, welche Funktion für jede Operation übergeben werden soll. Die Funktion processListWithOperation sollte die Eingabeliste durchlaufen, die übergebene Funktion mit dem bereitgestellten Wert auf jedes Element anwenden und die Ergebnisse in einer neuen Liste sammeln. Wenden Sie die Operationen nacheinander an, wobei das Ergebnis der ersten Operation als Eingabe für die zweite Operation dient.
Probier es selbst
import 'dart:io';
void main() {
// Eingaben lesen
String? numbersInput = stdin.readLineSync();
String? firstOperation = stdin.readLineSync();
String? firstValue = stdin.readLineSync();
String? secondOperation = stdin.readLineSync();
String? secondValue = stdin.readLineSync();
// String-Eingabe in eine Liste von Ganzzahlen umwandeln
List<int> originalList = numbersInput!.split(',').map((e) => int.parse(e.trim())).toList();
int firstOpValue = int.parse(firstValue!);
int secondOpValue = int.parse(secondValue!);
// TODO: Schreiben Sie Ihren Code unten
// Erstellen Sie die drei Operationsfunktionen: multiplyBy, addTo, subtractFrom
// Erstellen Sie die Funktion processListWithOperation
// Wenden Sie die Operationen nacheinander an und speichern Sie die Ergebnisse
// Die Ergebnisse im erforderlichen Format ausgeben
print('Advanced List Processor');
print('=======================');
print('Original list: $originalList');
// Erste Operation und Ergebnis ausgeben
// Zweite Operation und Endergebnis ausgeben
print('Processing completed successfully');
}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