Повторение — фильтрация данных
Часть раздела Логика и управление потоком путешествия по Dart на Coddy. Урок 16 из 65.
Задание
ЛегкоСоздайте программу, которая управляет конвейером аналитики данных путем фильтрации, преобразования и обработки числовых наборов данных. Ваша программа должна:
- Прочитать строковый ввод, представляющий название набора данных (dataset name)
- Прочитать несколько целочисленных вводов, представляющих необработанные значения данных (ввод закончится, когда вы получите
-1) - Прочитать целочисленный ввод, представляющий минимальный порог значения для фильтрации
- Использовать метод
where()для фильтрации значений, которые больше порогового значения - Использовать метод
map()для возведения каждого отфильтрованного значения в квадрат - Использовать метод
toList()для преобразования конечного результата в список - Вывести результаты обработки данных в точном формате, показанном ниже
Например, если название набора данных — "Sales Data", необработанные значения — 2, 5, 1, 8, 3, 6, а порог — 3, ваша программа должна вывести:
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 processedЕсли название набора данных — "Temperature Readings", необработанные значения — 1, 2, а порог — 5, ваша программа должна вывести:
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 processedЕсли название набора данных — "Performance Metrics", необработанные значения — 4, 7, 9, а порог — 2, ваша программа должна вывести:
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 processedВаша программа должна объединять операции в этой точной последовательности: сначала использовать where() для фильтрации значений больше порога, затем использовать map() для возведения каждого отфильтрованного значения в квадрат и, наконец, использовать toList() для преобразования результата в список. Промежуточные результаты должны отображаться в формате итерируемого объекта в круглых скобках, в то время как окончательный список должен отображаться в формате квадратных скобок.
Попробуйте сами
import 'dart:io';
void main() {
// Чтение названия набора данных
String? datasetName = stdin.readLineSync();
// Чтение необработанных значений данных до тех пор, пока не встретится -1
List<int> rawData = [];
while (true) {
int value = int.parse(stdin.readLineSync()!);
if (value == -1) break;
rawData.add(value);
}
// Чтение порогового значения
int threshold = int.parse(stdin.readLineSync()!);
// Отображение начальной информации
print('Dataset: $datasetName');
print('Raw data: $rawData');
print('Threshold: $threshold');
print('Filtering values > $threshold');
// TODO: Напишите свой код ниже
// Используйте where() для фильтрации значений больше порога
// Используйте map() для возведения каждого отфильтрованного значения в квадрат
// Используйте toList() для преобразования результата в список
// Вывод результатов в требуемом формате
// Не забудьте показать отфильтрованные значения в формате с круглыми скобками
// Покажите возведенные в квадрат значения в формате с круглыми скобками
// Покажите окончательные обработанные данные в формате с квадратными скобками
// Выведите сообщение о завершении обработки с указанием количества
}Все уроки раздела Логика и управление потоком
1Продвинутая работа со списками
Свойства списка: first и lastСостояние списка: isEmpty и isNotEmptyРазворот спискаДобавление в список: insertУдаление из списка: removeWhereПоиск в списке: indexOfСортировка спискаПеремешивание спискаИтоги — Органайзер списков4Продвинутая работа с Map
Итерация по MapПроверка ключей и значенийСвойства Map: keys и valuesУсловное добавление: putIfAbsentУдаление записей из MapВложенные MapИтоги — Обновление инвентаря2Функциональные операции со списками
Преобразование с помощью 'map'Фильтрация с помощью 'where'Использование '.toList()'Проверка условий с помощью 'any'Условия с 'every'Поиск с помощью 'firstWhere'Повторение — фильтрация данных5Проект: Калькулятор корзины
Настройка проектаДобавление товаров в корзину3Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостейПотренируйтесь самостоятельно: Онлайн-компилятор Dart