Menu
Coddy logo textTech

Özet - Liste Düzenleyici

Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 9 / 65.

challenge icon

Görev

Kolay

Bir sayı listesi üzerinde birden fazla işlemi sırayla gerçekleştirerek veri işleme işlem hattını yöneten bir program oluştur. Programın şunları yapması gerekir:

  1. Veri kümesinin adını temsil eden bir dize girdisi oku
  2. Özgün veri değerlerini temsil eden birden fazla tam sayı girdisi oku (girdi, -999 aldığında sona erecek)
  3. 100 değerini listenin başına (0. konuma) ekle
  4. removeWhere() kullanarak listedeki tüm negatif sayıları kaldır
  5. sort() kullanarak kalan sayıları artan düzende sırala
  6. isEmpty kullanarak son listenin boş olup olmadığını kontrol et
  7. Veri işleme sonuçlarını aşağıda gösterilen tam biçimde yazdır

Örneğin, veri kümesinin adı "Sales Data" ve değerler 45, -12, 78, -5, 23 ise programın çıktısı şu şekilde olmalıdır:

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

Veri kümesinin adı "Temperature Readings" ve değerler -10, -5, -20 ise programın çıktısı şu şekilde olmalıdır:

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

Veri kümesinin adı "Error Values" ve tek değer -50 ise programın çıktısı şu şekilde olmalıdır:

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

Programın tüm işlemleri belirtilen tam sırayla gerçekleştirmesi gerekir: önce 100 değerini 0. konuma insert() ile ekle, ardından negatif sayıları kaldırmak için removeWhere() kullan, sonra listeyi sort() ile sırala ve son olarak listenin isEmpty olup olmadığını kontrol et. Son listede hiç eleman yoksa "Liste boş", eleman içeriyorsa "Liste boş değil" yazdır.

Kendin dene

import 'dart:io';

void main() {
  // Veri kümesi adını oku
  String? datasetName = stdin.readLineSync();
  
  // -999 ile karşılaşana kadar sayıları oku
  List<int> originalData = [];
  while (true) {
    int? number = int.parse(stdin.readLineSync()!);
    if (number == -999) {
      break;
    }
    originalData.add(number);
  }
  
  // Başlangıç bilgilerini yazdır
  print('Dataset: $datasetName');
  print('Original data: $originalData');
  
  // TODO: Kodunuzu aşağıya yazın
  // 1. Başlangıca (0. pozisyona) 100 ekleyin
  // 2. removeWhere() kullanarak tüm negatif sayıları kaldırın
  // 3. sort() kullanarak listeyi artan düzende sıralayın
  // 4. isEmpty kullanarak listenin boş olup olmadığını kontrol edin
  // 5. Sonuçları istenen formatta yazdırın
  
}

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Dart derleyicisi