Menu
Coddy logo textTech

Riepilogo - Organizzatore di liste

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 9 di 65.

challenge icon

Sfida

Facile

Crea un programma che gestisca una pipeline di elaborazione dei dati eseguendo più operazioni su un elenco di numeri in sequenza. Il programma deve:

  1. Leggere una stringa in ingresso che rappresenta il nome del dataset
  2. Leggere più valori interi in ingresso che rappresentano i valori dei dati originali (l’input terminerà quando riceverai -999)
  3. Inserire il valore 100 all’inizio dell’elenco (posizione 0)
  4. Rimuovere tutti i numeri negativi dall’elenco usando removeWhere()
  5. Ordinare i numeri rimanenti in ordine crescente usando sort()
  6. Verificare se l’elenco finale è vuoto usando isEmpty
  7. Stampare i risultati dell’elaborazione dei dati nel formato esatto mostrato di seguito

Ad esempio, se il nome del dataset è "Sales Data" e i valori sono 45, -12, 78, -5, 23, il programma dovrebbe produrre:

Dataset: Sales Data
Original data: [45, -12, 78, -5, 23]
Step 1: Inserted 100 at beginning
After insertion: [100, 45, -12, 78, -5, 23]
Step 2: Removed negative numbers
After removal: [100, 45, 78, 23]
Step 3: Sorted in ascending order
After sorting: [23, 45, 78, 100]
Final result: List is not empty
Processing complete: 4 values remaining

Se il nome del dataset è "Temperature Readings" e i valori sono -10, -5, -20, il programma dovrebbe produrre:

Dataset: Temperature Readings
Original data: [-10, -5, -20]
Step 1: Inserted 100 at beginning
After insertion: [100, -10, -5, -20]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining

Se il nome del dataset è "Error Values" e l’unico valore è -50, il programma dovrebbe produrre:

Dataset: Error Values
Original data: [-50]
Step 1: Inserted 100 at beginning
After insertion: [100, -50]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining

Il programma deve eseguire tutte le operazioni esattamente nella sequenza specificata: prima insert() il valore 100 in posizione 0, poi usare removeWhere() per rimuovere i numeri negativi, quindi sort() per ordinare l’elenco e infine verificare se l’elenco isEmpty. Visualizza "List is empty" se l’elenco finale non contiene elementi, oppure "List is not empty" se contiene elementi.

Provalo tu

import 'dart:io';

void main() {
  // Leggi il nome del dataset
  String? datasetName = stdin.readLineSync();
  
  // Leggi i numeri finché non incontri -999
  List<int> originalData = [];
  while (true) {
    int? number = int.parse(stdin.readLineSync()!);
    if (number == -999) {
      break;
    }
    originalData.add(number);
  }
  
  // Stampa le informazioni iniziali
  print('Dataset: $datasetName');
  print('Original data: $originalData');
  
  // TODO: Scrivi il tuo codice qui sotto
  // 1. Inserisci 100 all'inizio (posizione 0)
  // 2. Rimuovi tutti i numeri negativi usando removeWhere()
  // 3. Ordina la lista in ordine crescente usando sort()
  // 4. Verifica se la lista è vuota usando isEmpty
  // 5. Stampa i risultati nel formato richiesto
  
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online