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 várias operações em sequência em uma lista de números. Seu programa deve:

  1. Ler uma entrada de texto que represente o nome do conjunto de dados
  2. Ler várias entradas inteiras que representem 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 deverá produzir:

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 deverá produzir:

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 deverá produzir:

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 usar removeWhere() para remover os números negativos, em seguida usar sort() para ordenar a lista e, por fim, verificar se a lista isEmpty. Exiba "A lista está vazia" se a lista final não tiver elementos ou "A lista não está vazia" 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

Pratique por conta própria: Compilador de Dart online