Zusammenfassung – List Processor
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 50 von 65.
Aufgabe
EinfachErstelle ein flexibles Datenverarbeitungssystem, das Funktionen höherer Ordnung demonstriert, indem du einen anpassbaren Listenprozessor entwickelst. Dein Programm erstellt verschiedene Verarbeitungsfunktionen und verwendet eine Hauptprozessorfunktion, die beliebige Operationen auf eine Datenliste anwenden kann.
- Lies eine Zeichenkette mit durch Kommas getrennten Zahlen ein (z. B.
"10,20,30,40") - Lies eine Zeichenkette ein, die den Typ der ersten Operation angibt (
"multiply","add"oder"subtract") - Lies eine Zeichenkette ein, die den Wert für die erste Operation angibt (z. B.
"3") - Lies eine Zeichenkette ein, die den Typ der zweiten Operation angibt (
"multiply","add"oder"subtract") - Lies eine Zeichenkette ein, die den Wert für die zweite Operation angibt (z. B.
"5") - Teile die erste Eingabe in einzelne Zahlen auf und wandle jede in eine Ganzzahl um
- Erstelle drei Operationsfunktionen:
multiplyBy– nimmt zwei Ganzzahlen entgegen und gibt das Produkt der beiden zurückaddTo– nimmt zwei Ganzzahlen entgegen und gibt ihre Summe zurücksubtractFrom– nimmt zwei Ganzzahlen entgegen und gibt die Differenz der ersten und der zweiten zurück- Erstelle 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 für die Operation verwendet wird
- Die Funktion
processListWithOperationsoll die angegebene Funktion mithilfe des bereitgestellten Werts auf jede Zahl in der Liste anwenden und eine neue Liste mit den Ergebnissen zurückgeben - Wende die erste Operation auf die ursprüngliche Liste an und danach die zweite Operation auf das Ergebnis der ersten Operation
- Gib die Ergebnisse genau im unten gezeigten Format aus
Wenn die Eingaben beispielsweise "2,4,6", "multiply", "3", "add" und "10" lauten, sollte dein 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" lauten, sollte dein 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 successfullyDein Programm muss Funktionen höherer Ordnung demonstrieren, indem es abhängig von den Eingaben für den Operationstyp die passende Operationsfunktion an processListWithOperation übergibt. Verwende bedingte Anweisungen, um zu bestimmen, welche Funktion für die jeweilige Operation übergeben werden soll. Die Funktion processListWithOperation soll die Eingabeliste durchlaufen, die angegebene Funktion mit dem bereitgestellten Wert auf jedes Element anwenden und die Ergebnisse in einer neuen Liste sammeln. Wende die Operationen nacheinander an und verwende dabei das Ergebnis der ersten Operation als Eingabe für die zweite Operation.
Probier es selbst
import 'dart:io';
void main() {
// Eingaben einlesen
String? numbersInput = stdin.readLineSync();
String? firstOperation = stdin.readLineSync();
String? firstValue = stdin.readLineSync();
String? secondOperation = stdin.readLineSync();
String? secondValue = stdin.readLineSync();
// Zeichenfolgeneingabe 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: Schreibe deinen Code unten
// Erstelle die drei Operationsfunktionen: multiplyBy, addTo, subtractFrom
// Erstelle die Funktion processListWithOperation
// Wende die Operationen nacheinander an und speichere die Ergebnisse
// Gib die Ergebnisse im erforderlichen Format aus
print('Advanced List Processor');
print('=======================');
print('Original list: $originalList');
// Gib die erste Operation und das Ergebnis aus
// Gib die zweite Operation und das Endergebnis aus
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Übe selbstständig: Online-Dart-Compiler