Menu
Coddy logo textTech

Zusammenfassung – List Processor

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

challenge icon

Aufgabe

Einfach

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

  1. Lesen Sie eine String-Eingabe ein, die durch Kommas getrennte Zahlen enthält (z. B. "10,20,30,40")
  2. Lesen Sie eine String-Eingabe ein, die den ersten Operationstyp darstellt ("multiply", "add" oder "subtract")
  3. Lesen Sie eine String-Eingabe ein, die den Wert darstellt, der mit der ersten Operation verwendet werden soll (z. B. "3")
  4. Lesen Sie eine String-Eingabe ein, die den zweiten Operationstyp darstellt ("multiply", "add" oder "subtract")
  5. Lesen Sie eine String-Eingabe ein, die den Wert darstellt, der mit der zweiten Operation verwendet werden soll (z. B. "5")
  6. Teilen Sie die erste Eingabe in einzelne Zahlen auf und konvertieren Sie jede in eine Ganzzahl
  7. Erstellen Sie drei Operationsfunktionen:
    • multiplyBy - nimmt zwei Ganzzahlen entgegen und gibt das Produkt der ersten mit der zweiten zurück
    • addTo - nimmt zwei Ganzzahlen entgegen und gibt die Summe der ersten und der zweiten zurück
    • subtractFrom - nimmt zwei Ganzzahlen entgegen und gibt die Differenz der ersten minus der zweiten zurück
  8. 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
  9. Die Funktion processListWithOperation sollte die übergebene Funktion auf jede Zahl in der Liste unter Verwendung des bereitgestellten Wertes anwenden und eine neue Liste mit den Ergebnissen zurückgeben
  10. 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
  11. 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 successfully

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

Ihr 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