Menu
Coddy logo textTech

Bir Listeyi Tersine Çevirme

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

Bazen bir listenin öğelerini ters sırada görüntülemeniz gerekir. Dart, orijinal listeyi değiştirmeden listenizin ters çevrilmiş bir görünümünü oluşturan .reversed özelliğini sağlar.

.reversed özelliği, liste öğelerini ters sırada sunan bir yinelenebilir (iterable) döndürür. Bu, son öğenin ilk sırada, sondan bir önceki öğenin ikinci sırada göründüğü ve bu şekilde devam ettiği anlamına gelir.

List<int> numbers = [1, 2, 3, 4, 5];

var reversedNumbers = numbers.reversed;
print(reversedNumbers);  // (5, 4, 3, 2, 1)

// Orijinal liste değişmeden kalır
print(numbers);  // [1, 2, 3, 4, 5]

Önemli bir detay, .reversed özelliğinin bir liste değil, bir yinelenebilir (iterable) döndürmesidir. Eğer onunla bir liste olarak çalışmanız gerekiyorsa, .toList() kullanarak dönüştürebilirsiniz. Bu özellik, orijinal listenizi bozmadan verileri ters sırada işlemeniz gerektiğinde özellikle yararlıdır.

challenge icon

Görev

Kolay

Kitapları hem orijinal hem de ters sırada görüntüleyerek bir okuma listesini analiz eden bir program oluşturun. Programınız şunları yapmalıdır:

  1. Okuma listesi başlığını temsil eden bir dize (string) girdisi okuyun
  2. Kitap başlıklarını temsil eden birden fazla dize girdisi okuyun (boş bir dize aldığınızda girdi sona erecektir)
  3. Kitap listesinin ters çevrilmiş bir görünümünü oluşturmak için .reversed özelliğini kullanın
  4. Okuma listesi analizini tam olarak aşağıda gösterilen formatta yazdırın

Örneğin, okuma listesi başlığı "Summer Reading" ve kitaplar "1984", "To Kill a Mockingbird", "The Great Gatsby" ise programınız şu çıktıyı vermelidir:

Reading List: Summer Reading
Books in original order: (1984, To Kill a Mockingbird, The Great Gatsby)
Books in reversed order: (The Great Gatsby, To Kill a Mockingbird, 1984)
Total books: 3

Eğer okuma listesi başlığı "Quick Reads" ise ve sadece bir kitap "Animal Farm" verilmişse, programınız şu çıktıyı vermelidir:

Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1

Programınız, kitapları ters sırada görüntülemek için .reversed özelliğini kullanmalıdır. .reversed özelliğinin bir iterable döndürdüğünü, bu nedenle yazdırdığınızda köşeli parantezler yerine normal parantezlerle görüntüleneceğini unutmayın.

Kopya kağıdı

Orijinal listeyi değiştirmeden liste öğelerini ters sırada görüntülemek için .reversed özelliğini kullanın:

List<int> numbers = [1, 2, 3, 4, 5];

var reversedNumbers = numbers.reversed;
print(reversedNumbers);  // (5, 4, 3, 2, 1)

// Orijinal liste değişmeden kalır
print(numbers);  // [1, 2, 3, 4, 5]

.reversed özelliği bir liste değil, bir iterable döndürür. Onu tekrar bir listeye dönüştürmek için .toList() kullanın.

Kendin dene

import 'dart:io';

void main() {
  // Okuma listesi başlığını oku
  String? title = stdin.readLineSync();
  
  // Boş dize gelene kadar kitap başlıklarını oku
  List<String> books = [];
  String? book;
  while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
    books.add(book);
  }
  
  // TODO: Kodunuzu buraya yazın
  // Kitap listesinin ters çevrilmiş bir görünümünü oluşturmak için .reversed özelliğini kullanın
  // Çıktıyı istenen formatta yazdırın
  
}
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