Menu
CoddyTech

Zusammenfassung – Datenfilterung

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

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das eine Datenanalyse-Pipeline verwaltet, indem es numerische Datensätze filtert, transformiert und verarbeitet. Ihr Programm sollte:

  1. Einen String einlesen, der den Namen des Datensatzes darstellt
  2. Mehrere Ganzzahlen einlesen, die Rohdatenwerte darstellen (die Eingabe endet, wenn Sie -1 erhalten)
  3. Eine Ganzzahl einlesen, die den Mindestschwellenwert für die Filterung darstellt
  4. Die Methode where() verwenden, um Werte zu filtern, die größer als der Schwellenwert sind
  5. Die Methode map() verwenden, um jeden gefilterten Wert zu quadrieren
  6. Die Methode toList() verwenden, um das Endergebnis in eine Liste umzuwandeln
  7. Die Ergebnisse der Datenverarbeitung in dem unten gezeigten exakten Format ausgeben

Wenn zum Beispiel der Name des Datensatzes "Sales Data" ist, die Rohwerte 2, 5, 1, 8, 3, 6 sind und der Schwellenwert 3 ist, sollte Ihr Programm Folgendes ausgeben:

Dataset: Sales Data
Raw data: [2, 5, 1, 8, 3, 6]
Threshold: 3
Filtering values > 3
Filtered values: (5, 8, 6)
Squaring filtered values
Squared values: (25, 64, 36)
Final processed data: [25, 64, 36]
Processing complete: 3 values processed

Wenn der Name des Datensatzes "Temperature Readings" ist, die Rohwerte 1, 2 sind und der Schwellenwert 5 ist, sollte Ihr Programm Folgendes ausgeben:

Dataset: Temperature Readings
Raw data: [1, 2]
Threshold: 5
Filtering values > 5
Filtered values: ()
Squaring filtered values
Squared values: ()
Final processed data: []
Processing complete: 0 values processed

Wenn der Name des Datensatzes "Performance Metrics" ist, die Rohwerte 4, 7, 9 sind und der Schwellenwert 2 ist, sollte Ihr Programm Folgendes ausgeben:

Dataset: Performance Metrics
Raw data: [4, 7, 9]
Threshold: 2
Filtering values > 2
Filtered values: (4, 7, 9)
Squaring filtered values
Squared values: (16, 49, 81)
Final processed data: [16, 49, 81]
Processing complete: 3 values processed

Ihr Programm muss die Operationen in dieser exakten Reihenfolge verketten: Verwenden Sie zuerst where(), um Werte zu filtern, die größer als der Schwellenwert sind, verwenden Sie dann map(), um jeden gefilterten Wert zu quadrieren, und verwenden Sie schließlich toList(), um das Ergebnis in eine Liste umzuwandeln. Die Zwischenergebnisse sollten das Iterable-Format in runden Klammern zeigen, während die endgültige Liste im Format mit eckigen Klammern angezeigt werden sollte.

Probier es selbst

import 'dart:io';

void main() {
  // Datensatznamen lesen
  String? datasetName = stdin.readLineSync();
  
  // Rohdatenwerte lesen, bis -1 eingegeben wird
  List<int> rawData = [];
  while (true) {
    int value = int.parse(stdin.readLineSync()!);
    if (value == -1) break;
    rawData.add(value);
  }
  
  // Schwellenwert lesen
  int threshold = int.parse(stdin.readLineSync()!);
  
  // Anfängliche Informationen anzeigen
  print('Dataset: $datasetName');
  print('Raw data: $rawData');
  print('Threshold: $threshold');
  print('Filtering values > $threshold');
  
  // TODO: Schreiben Sie Ihren Code unten
  // Verwenden Sie where(), um Werte größer als den Schwellenwert zu filtern
  // Verwenden Sie map(), um jeden gefilterten Wert zu quadrieren
  // Verwenden Sie toList(), um das Ergebnis in eine Liste umzuwandeln
  
  // Ergebnisse im erforderlichen Format ausgeben
  // Denken Sie daran, gefilterte Werte im Klammerformat anzuzeigen
  // Quadrierte Werte im Klammerformat anzeigen
  // Final verarbeitete Daten im Format mit eckigen Klammern anzeigen
  // Nachricht über abgeschlossene Verarbeitung mit Anzahl ausgeben
}

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-Dart-Compiler