Menu
Coddy logo textTech

Recapitulação - Organizador de Listas

Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 9 de 65.

challenge icon

Desafio

Fácil

Crie um programa que gerencie um pipeline de processamento de dados realizando múltiplas operações em uma lista de números em sequência. Seu programa deve:

  1. Ler uma entrada de string representando o nome do conjunto de dados (dataset name)
  2. Ler múltiplas entradas de inteiros representando os valores de dados originais (a entrada terminará quando você receber -999)
  3. Inserir o valor 100 no início da lista (posição 0)
  4. Remover todos os números negativos da lista usando removeWhere()
  5. Ordenar os números restantes em ordem crescente usando sort()
  6. Verificar se a lista final está vazia usando isEmpty
  7. Imprimir os resultados do processamento de dados no formato exato mostrado abaixo

Por exemplo, se o nome do conjunto de dados for "Sales Data" e os valores forem 45, -12, 78, -5, 23, seu programa deve exibir:

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 o nome do conjunto de dados for "Temperature Readings" e os valores forem -10, -5, -20, seu programa deve exibir:

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 o nome do conjunto de dados for "Error Values" e o único valor for -50, seu programa deve exibir:

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

Seu programa deve realizar todas as operações na sequência exata especificada: primeiro insert() o valor 100 na posição 0, depois use removeWhere() para remover números negativos, então sort() a lista e, finalmente, verifique se a lista isEmpty. Exiba "List is empty" se a lista final não tiver elementos, ou "List is not empty" se ela contiver elementos.

Experimente você mesmo

import 'dart:io';

void main() {
  // Ler o nome do conjunto de dados
  String? datasetName = stdin.readLineSync();
  
  // Ler números até que -999 seja encontrado
  List<int> originalData = [];
  while (true) {
    int? number = int.parse(stdin.readLineSync()!);
    if (number == -999) {
      break;
    }
    originalData.add(number);
  }
  
  // Imprimir informações iniciais
  print('Dataset: $datasetName');
  print('Original data: $originalData');
  
  // TODO: Escreva seu código abaixo
  // 1. Inserir 100 no início (posição 0)
  // 2. Remover todos os números negativos usando removeWhere()
  // 3. Ordenar a lista em ordem crescente usando sort()
  // 4. Verificar se a lista está vazia usando isEmpty
  // 5. Imprimir os resultados no formato exigido
  
}

Todas as lições de Lógica & Fluxo