Recapitulação - Filtragem de Dados
Parte da seção Lógica & Fluxo do Journey de Dart da Coddy. Lição 16 de 65.
Desafio
FácilCrie um programa que gerencie um pipeline de análise de dados filtrando, transformando e processando conjuntos de dados numéricos. Seu programa deve:
- Ler uma entrada de texto que represente o nome do conjunto de dados
- Ler várias entradas inteiras que representem valores de dados brutos (a entrada terminará quando você receber
-1) - Ler uma entrada inteira que represente o limite mínimo de valor para a filtragem
- Usar o método
where()para filtrar os valores maiores que o limite - Usar o método
map()para elevar ao quadrado cada valor filtrado - Usar o método
toList()para converter o resultado final em uma lista - Imprimir os resultados do processamento dos dados no formato exato mostrado abaixo
Por exemplo, se o nome do conjunto de dados for "Sales Data", os valores brutos forem 2, 5, 1, 8, 3, 6 e o limite for 3, seu programa deverá produzir:
Dataset: Sales Data
Raw data: [2, 5, 1, 8, 3, 6]
Threshold: 3
Filtering values > 3
Filtered values: (5, 8, 6)
Squaring filtered values
Squared values: (25, 64, 36)
Final processed data: [25, 64, 36]
Processing complete: 3 values processedSe o nome do conjunto de dados for "Temperature Readings", os valores brutos forem 1, 2 e o limite for 5, seu programa deverá produzir:
Dataset: Temperature Readings
Raw data: [1, 2]
Threshold: 5
Filtering values > 5
Filtered values: ()
Squaring filtered values
Squared values: ()
Final processed data: []
Processing complete: 0 values processedSe o nome do conjunto de dados for "Performance Metrics", os valores brutos forem 4, 7, 9 e o limite for 2, seu programa deverá produzir:
Dataset: Performance Metrics
Raw data: [4, 7, 9]
Threshold: 2
Filtering values > 2
Filtered values: (4, 7, 9)
Squaring filtered values
Squared values: (16, 49, 81)
Final processed data: [16, 49, 81]
Processing complete: 3 values processedSeu programa deve encadear as operações exatamente nesta sequência: primeiro usar where() para filtrar os valores maiores que o limite, depois usar map() para elevar ao quadrado cada valor filtrado e, por fim, usar toList() para converter o resultado em uma lista. Os resultados intermediários devem mostrar o formato iterável entre parênteses, enquanto a lista final deve ser exibida entre colchetes.
Experimente você mesmo
import 'dart:io';
void main() {
// Ler o nome do conjunto de dados
String? datasetName = stdin.readLineSync();
// Ler valores de dados brutos até que -1 seja encontrado
List<int> rawData = [];
while (true) {
int value = int.parse(stdin.readLineSync()!);
if (value == -1) break;
rawData.add(value);
}
// Ler o valor do limite (threshold)
int threshold = int.parse(stdin.readLineSync()!);
// Exibir informações iniciais
print('Dataset: $datasetName');
print('Raw data: $rawData');
print('Threshold: $threshold');
print('Filtering values > $threshold');
// TODO: Escreva seu código abaixo
// Use where() para filtrar valores maiores que o limite
// Use map() para elevar ao quadrado cada valor filtrado
// Use toList() para converter o resultado em uma lista
// Imprimir os resultados no formato exigido
// Lembre-se de mostrar os valores filtrados no formato entre parênteses
// Mostrar os valores ao quadrado no formato entre parênteses
// Mostrar os dados finais processados no formato entre colchetes
// Imprimir mensagem de processamento concluído com a contagem
}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 ÚnicosPratique por conta própria: Compilador de Dart online