Menu
Coddy logo textTech

Podsumowanie – Organizator listy

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 9 z 65.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który zarządza potokiem przetwarzania danych, wykonując kolejno wiele operacji na liście liczb. Twój program powinien:

  1. Odczytać ciąg znaków reprezentujący nazwę zestawu danych
  2. Odczytać wiele liczb całkowitych reprezentujących oryginalne wartości danych (wprowadzanie zakończy się po otrzymaniu -999)
  3. Wstawić wartość 100 na początku listy (pozycja 0)
  4. Usunąć wszystkie liczby ujemne z listy za pomocą removeWhere()
  5. Posortować pozostałe liczby rosnąco za pomocą sort()
  6. Sprawdzić, czy końcowa lista jest pusta, za pomocą isEmpty
  7. Wypisać wyniki przetwarzania danych w dokładnie takim formacie, jak pokazano poniżej

Na przykład, jeśli nazwa zestawu danych to "Sales Data", a wartości to 45, -12, 78, -5, 23, program powinien wypisać:

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

Jeśli nazwa zestawu danych to "Temperature Readings", a wartości to -10, -5, -20, program powinien wypisać:

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

Jeśli nazwa zestawu danych to "Error Values", a jedyną wartością jest -50, program powinien wypisać:

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

Twój program musi wykonać wszystkie operacje w dokładnie podanej kolejności: najpierw insert() wartość 100 na pozycji 0, następnie użyć removeWhere(), aby usunąć liczby ujemne, potem posortować listę za pomocą sort(), a na końcu sprawdzić, czy lista jest isEmpty. Wyświetl "List is empty", jeśli końcowa lista nie zawiera elementów, lub "List is not empty", jeśli zawiera elementy.

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Wczytaj nazwę zbioru danych
  String? datasetName = stdin.readLineSync();
  
  // Wczytuj liczby, aż pojawi się -999
  List<int> originalData = [];
  while (true) {
    int? number = int.parse(stdin.readLineSync()!);
    if (number == -999) {
      break;
    }
    originalData.add(number);
  }
  
  // Wyświetl informacje początkowe
  print('Dataset: $datasetName');
  print('Original data: $originalData');
  
  // TODO: Napisz swój kod poniżej
  // 1. Wstaw 100 na początku (pozycja 0)
  // 2. Usuń wszystkie liczby ujemne za pomocą removeWhere()
  // 3. Posortuj listę rosnąco za pomocą sort()
  // 4. Sprawdź, czy lista jest pusta, za pomocą isEmpty
  // 5. Wyświetl wyniki w wymaganym formacie
  
}

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online