Menu
CoddyTech

Zusammenfassung – List Processor

Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 50 von 65.

challenge icon

Aufgabe

Einfach

Erstelle 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.

  1. Lies eine Zeichenkette mit durch Kommas getrennten Zahlen ein (z. B. "10,20,30,40")
  2. Lies eine Zeichenkette ein, die den Typ der ersten Operation angibt ("multiply", "add" oder "subtract")
  3. Lies eine Zeichenkette ein, die den Wert für die erste Operation angibt (z. B. "3")
  4. Lies eine Zeichenkette ein, die den Typ der zweiten Operation angibt ("multiply", "add" oder "subtract")
  5. Lies eine Zeichenkette ein, die den Wert für die zweite Operation angibt (z. B. "5")
  6. Teile die erste Eingabe in einzelne Zahlen auf und wandle jede in eine Ganzzahl um
  7. Erstelle drei Operationsfunktionen:
    • multiplyBy – nimmt zwei Ganzzahlen entgegen und gibt das Produkt der beiden zurück
    • addTo – nimmt zwei Ganzzahlen entgegen und gibt ihre Summe zurück
    • subtractFrom – nimmt zwei Ganzzahlen entgegen und gibt die Differenz der ersten und der zweiten zurück
  8. 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
  9. Die Funktion processListWithOperation soll die angegebene Funktion mithilfe des bereitgestellten Werts auf jede Zahl in der Liste anwenden und eine neue Liste mit den Ergebnissen zurückgeben
  10. Wende die erste Operation auf die ursprüngliche Liste an und danach die zweite Operation auf das Ergebnis der ersten Operation
  11. 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 successfully

Wenn 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 successfully

Dein 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

Übe selbstständig: Online-Dart-Compiler