Recapitulação - Organizador de Listas
Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 9 de 65.
Desafio
FácilCrie 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:
- Ler uma entrada de string representando o nome do conjunto de dados (dataset name)
- Ler múltiplas entradas de inteiros representando os valores de dados originais (a entrada terminará quando você receber
-999) - Inserir o valor
100no início da lista (posição 0) - Remover todos os números negativos da lista usando
removeWhere() - Ordenar os números restantes em ordem crescente usando
sort() - Verificar se a lista final está vazia usando
isEmpty - 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 remainingSe 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 remainingSe 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 remainingSeu 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
1Manipulação Avançada de Listas
Propriedades de Lista: first & lastEstado da Lista: isEmpty & isNotEmptyInvertendo uma ListaAdicionando a uma Lista: insertRemoção em Listas: removeWhereBuscando em uma Lista: indexOfOrdenando uma ListaEmbaralhando uma ListaRecapitulação - Organizador de Listas4Manipulação Avançada de Mapas
Iterando sobre um MapVerificando Chaves e ValoresPropriedades do Map: keys & valuesAdição Condicional: putIfAbsentRemovendo Entradas de um MapMaps AninhadosRecapitulação - Atualização de Inventário2Operações Funcionais em Listas
Transformando com 'map'Filtrando com 'where'Usando '.toList()'Verificando Condições com 'any'Condições com 'every'Encontrando com 'firstWhere'Recapitulação - Filtragem de Dados5Projeto: Cálculo de Carrinho de Compras
Configuração do ProjetoAdicionando Itens ao Carrinho3Conjuntos
O que é um Conjunto?Criando um ConjuntoAdicionando e Removendo de ConjuntosVerificando Elementos em um ConjuntoConvertendo uma Lista para um ConjuntoUnião de ConjuntosInterseção de ConjuntosDiferença de ConjuntosRecapitulação - Lista de Convidados Únicos