Menu
Coddy logo textTech

Küme Oluşturma

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

Artık bir Set'in ne olduğunu anladığınıza göre, nasıl oluşturulacağını öğrenelim. Dart'ta, matematiksel bir kümeyi yazmanıza benzer şekilde, öğeleri virgülle ayrılmış süslü parantezler {} kullanarak bir Set oluşturursunuz.

Set<String> colors = {'red', 'blue', 'green'};
print(colors);  // {red, blue, green}

Bu sözdizimini bir Map oluşturmakla karıştırmamak önemlidir. Her ikisi de süslü parantez kullansa da, bir Set yalnızca değerler içerirken, bir Map iki nokta üst üste ile ayrılmış anahtar-değer çiftleri içerir. Boş bir Set, boş bir Map'ten ayırt edilebilmesi için bir türle açıkça bildirilmelidir.

Set<String> emptySet = <String>{};  // Boş Küme
Map<String, int> emptyMap = {};     // Boş Map

Ayrıca yinelenen değerlere sahip bir Set oluşturabilirsiniz, ancak yinelenenlerin otomatik olarak kaldırılacağını ve nihai koleksiyonda yalnızca benzersiz öğelerin kalacağını unutmayın.

challenge icon

Görev

Kolay

Bir blog gönderisi için benzersiz etiketlerden oluşan bir Set oluşturarak blog etiketleme sistemini yöneten bir program oluştur. Programın şunları yapmalı:

  1. Blog gönderisinin başlığını temsil eden bir dize girdisi oku
  2. Gönderiye eklenecek etiketleri temsil eden birden fazla dize girdisi oku (girdi, "done" alındığında sona erecek)
  3. Benzersiz etiketleri depolamak için dizelerden oluşan bir Set oluştur
  4. Her etiketi Set'e ekle (yinelenenler otomatik olarak kaldırılır)
  5. Blog etiketleme sonuçlarını aşağıda gösterilen tam biçimde yazdır

Örneğin, blog başlığı "Introduction to Dart Programming" ve etiketler "programming", "dart", "tutorial", "programming", "beginner" ise programın çıktısı şöyle olmalıdır:

Blog Post: Introduction to Dart Programming
Tags added: [programming, dart, tutorial, programming, beginner]
Unique tags: {programming, dart, tutorial, beginner}
Total unique tags: 4
Status: Blog post tagged successfully

Blog başlığı "Web Development Tips" ve etiketler "web", "html", "css", "web", "html", "javascript" ise programın çıktısı şöyle olmalıdır:

Blog Post: Web Development Tips
Tags added: [web, html, css, web, html, javascript]
Unique tags: {web, html, css, javascript}
Total unique tags: 4
Status: Blog post tagged successfully

Blog başlığı "Getting Started" ve etiketler "guide", "basics" ise programın çıktısı şöyle olmalıdır:

Blog Post: Getting Started
Tags added: [guide, basics]
Unique tags: {guide, basics}
Total unique tags: 2
Status: Blog post tagged successfully

Programın küme parantezleriyle {} sözdizimini kullanarak bir Set oluşturması ve Set'lerin yinelenenleri otomatik olarak nasıl kaldırdığını göstermesi gerekir. Başta ne girildiğini göstermek için tüm giriş etiketlerini bir listede depola, ardından benzersiz etiketleri göstermek için Set'i oluştur. Set, içeriğini küme parantezleriyle standart Set biçiminde göstermelidir.

GEREKLİ ÇIKTI BİÇİMİ: [Çevrilmiş içeriğiniz burada]

Kendin dene

import 'dart:io';

void main() {
  // Blog yazısı başlığını oku
  String? title = stdin.readLineSync();
  
  // "done" girilene kadar etiketleri oku
  List<String> allTags = [];
  String? tag;
  while ((tag = stdin.readLineSync()) != "done") {
    if (tag != null) {
      allTags.add(tag);
    }
  }
  
  // TODO: Kodunuzu buraya yazın
  // Benzersiz etiketleri elde etmek için etiket listesinden bir Set oluşturun
  // Toplam benzersiz etiket sayısını hesaplayın
  
  // Sonuçları yazdır
  print("Blog Post: $title");
  print("Tags added: $allTags");
  // Benzersiz etiketleri Set formatında yazdır
  // Toplam benzersiz etiket sayısını yazdır
  // Durum mesajını yazdır
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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

Kendi başına pratik yap: Online Dart derleyicisi