Menu
Coddy logo textTech

Resumen - Organizador de listas

Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 9 de 65.

challenge icon

Desafío

Fácil

Crea un programa que gestione un flujo de procesamiento de datos realizando múltiples operaciones en una lista de números en secuencia. Tu programa debe:

  1. Leer una entrada de cadena que represente el nombre del conjunto de datos
  2. Leer múltiples entradas de números enteros que representen los valores de datos originales (la entrada terminará cuando recibas -999)
  3. Insertar el valor 100 al principio de la lista (posición 0)
  4. Eliminar todos los números negativos de la lista usando removeWhere()
  5. Ordenar los números restantes en orden ascendente usando sort()
  6. Comprobar si la lista final está vacía usando isEmpty
  7. Imprimir los resultados del procesamiento de datos en el formato exacto que se muestra a continuación

Por ejemplo, si el nombre del conjunto de datos es "Sales Data" y los valores son 45, -12, 78, -5, 23, tu programa debería mostrar:

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

Si el nombre del conjunto de datos es "Temperature Readings" y los valores son -10, -5, -20, tu programa debería mostrar:

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

Si el nombre del conjunto de datos es "Error Values" y el único valor es -50, tu programa debería mostrar:

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

Tu programa debe realizar todas las operaciones en la secuencia exacta especificada: primero insert() el valor 100 en la posición 0, luego usa removeWhere() para eliminar los números negativos, después sort() la lista y finalmente comprueba si la lista isEmpty. Muestra "List is empty" si la lista final no tiene elementos, o "List is not empty" si contiene elementos.

Pruébalo tú mismo

import 'dart:io';

void main() {
  // Leer el nombre del conjunto de datos
  String? datasetName = stdin.readLineSync();
  
  // Leer números hasta que se encuentre -999
  List<int> originalData = [];
  while (true) {
    int? number = int.parse(stdin.readLineSync()!);
    if (number == -999) {
      break;
    }
    originalData.add(number);
  }
  
  // Imprimir información inicial
  print('Dataset: $datasetName');
  print('Original data: $originalData');
  
  // TODO: Escribe tu código a continuación
  // 1. Insertar 100 al principio (posición 0)
  // 2. Eliminar todos los números negativos usando removeWhere()
  // 3. Ordenar la lista en orden ascendente usando sort()
  // 4. Comprobar si la lista está vacía usando isEmpty
  // 5. Imprimir los resultados en el formato requerido
  
}

Todas las lecciones de Lógica y Flujo