Итоги — Органайзер списков
Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 9 из 65.
Задание
ЛегкоСоздайте программу, которая управляет конвейером обработки данных, выполняя последовательно несколько операций над списком чисел. Ваша программа должна:
- Прочитать строковый ввод, представляющий название набора данных (dataset name)
- Прочитать несколько целых чисел, представляющих исходные значения данных (ввод закончится, когда вы получите
-999) - Вставить значение
100в начало списка (позиция 0) - Удалить все отрицательные числа из списка, используя
removeWhere() - Отсортировать оставшиеся числа в порядке возрастания, используя
sort() - Проверить, является ли итоговый список пустым, используя
isEmpty - Вывести результаты обработки данных в точном формате, показанном ниже
Например, если название набора данных — "Sales Data", а значения — 45, -12, 78, -5, 23, ваша программа должна вывести:
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Если название набора данных — "Temperature Readings", а значения — -10, -5, -20, ваша программа должна вывести:
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Если название набора данных — "Error Values", а единственное значение — -50, ваша программа должна вывести:
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Ваша программа должна выполнять все операции в строго указанной последовательности: сначала insert() значение 100 в позицию 0, затем использовать removeWhere() для удаления отрицательных чисел, затем sort() список и, наконец, проверить, является ли список isEmpty. Выведите "List is empty", если в итоговом списке нет элементов, или "List is not empty", если он содержит элементы.
Попробуйте сами
import 'dart:io';
void main() {
// Прочитать название набора данных
String? datasetName = stdin.readLineSync();
// Читать числа, пока не встретится -999
List<int> originalData = [];
while (true) {
int? number = int.parse(stdin.readLineSync()!);
if (number == -999) {
break;
}
originalData.add(number);
}
// Вывести начальную информацию
print('Dataset: $datasetName');
print('Original data: $originalData');
// TODO: Напишите свой код ниже
// 1. Вставьте 100 в начало (позиция 0)
// 2. Удалите все отрицательные числа, используя removeWhere()
// 3. Отсортируйте список по возрастанию, используя sort()
// 4. Проверьте, пуст ли список, используя isEmpty
// 5. Выведите результаты в требуемом формате
}Все уроки раздела Логика и управление потоком
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Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостей