Menu
Coddy logo textTech

Итоги — Органайзер списков

Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 9 из 65.

challenge icon

Задание

Легко

Создайте программу, которая управляет конвейером обработки данных, выполняя последовательно несколько операций над списком чисел. Ваша программа должна:

  1. Прочитать строковый ввод, представляющий название набора данных (dataset name)
  2. Прочитать несколько целых чисел, представляющих исходные значения данных (ввод закончится, когда вы получите -999)
  3. Вставить значение 100 в начало списка (позиция 0)
  4. Удалить все отрицательные числа из списка, используя removeWhere()
  5. Отсортировать оставшиеся числа в порядке возрастания, используя sort()
  6. Проверить, является ли итоговый список пустым, используя isEmpty
  7. Вывести результаты обработки данных в точном формате, показанном ниже

Например, если название набора данных — "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. Выведите результаты в требуемом формате
  
}

Все уроки раздела Логика и управление потоком