Riepilogo - Organizzatore di liste
Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 9 di 65.
Sfida
FacileCrea un programma che gestisca una pipeline di elaborazione dei dati eseguendo più operazioni su un elenco di numeri in sequenza. Il programma deve:
- Leggere una stringa in ingresso che rappresenta il nome del dataset
- Leggere più valori interi in ingresso che rappresentano i valori dei dati originali (l’input terminerà quando riceverai
-999) - Inserire il valore
100all’inizio dell’elenco (posizione 0) - Rimuovere tutti i numeri negativi dall’elenco usando
removeWhere() - Ordinare i numeri rimanenti in ordine crescente usando
sort() - Verificare se l’elenco finale è vuoto usando
isEmpty - 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 remainingSe 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 remainingSe 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 remainingIl 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
1Manipolazione avanzata delle liste
Proprietà delle liste: primo e ultimoStato della lista: isEmpty e isNotEmpInvertire una listaAggiungere a una lista: insertRimozione dalla lista: removeWhereRicerca in una lista: indexOfOrdinare una listaMescolare una listaRiepilogo - Organizzatore di liste4Manipolazione avanzata delle mappe
Iterare su una mappaVerificare chiavi e valoriProprietà delle mappe: chiavi e valoriAggiunta condizionale: putIfAbsentRimuovere elementi da una mappaMappe annidateRiepilogo - Aggiornamento dell'inventario2Operazioni funzionali sulle liste
Trasformare con 'map'Filtrare con 'where'Usare '.toList()'Verificare condizioni con 'any'Condizioni con 'every'Trovare con 'firstWhere'Riepilogo - Filtraggio dei dati3Insiemi
Che cos'è un insieme?Creare un insiemeAggiungere e rimuovere elementi dagli insiemiVerificare la presenza di elementi in un insiemeConvertire una lista in un insiemeUnione di insiemiIntersezione di insiemiDifferenza tra insiemiRiepilogo - Lista degli ospiti uniciEsercitati da solo: Compilatore Dart online