Menu
Coddy logo textTech

Özet - Liste İşleyici

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

challenge icon

Görev

Kolay

Özelleştirilebilir bir liste işlemcisi oluşturarak üst düzey işlevleri gösteren esnek bir veri işleme sistemi oluşturun. Programınız farklı işleme işlevleri oluşturacak ve bir veri listesine herhangi bir işlemi uygulayabilen bir ana işlemci işlevi kullanacaktır.

  1. Virgüllerle ayrılmış sayıları içeren bir dize girdisi okuyun (ör. "10,20,30,40")
  2. İlk işlem türünü temsil eden bir dize girdisi okuyun ("multiply", "add" veya "subtract")
  3. İlk işlemde kullanılacak değeri temsil eden bir dize girdisi okuyun (ör. "3")
  4. İkinci işlem türünü temsil eden bir dize girdisi okuyun ("multiply", "add" veya "subtract")
  5. İkinci işlemde kullanılacak değeri temsil eden bir dize girdisi okuyun (ör. "5")
  6. İlk girdiyi ayrı sayılara bölün ve her birini bir tamsayıya dönüştürün
  7. Üç işlem işlevi oluşturun:
    • multiplyBy - iki tamsayı alır ve birinciyi ikinciyle çarparak döndürür
    • addTo - iki tamsayı alır ve birinciyle ikincinin toplamını döndürür
    • subtractFrom - iki tamsayı alır ve birinciden ikincinin çıkarılmasını döndürür
  8. Üç parametre alan ve processListWithOperation adlı bir ana işlev oluşturun:
    • Bir tamsayı listesi
    • İki tamsayı alan ve bir tamsayı döndüren bir işlev
    • İşlemde kullanılacak bir tamsayı değeri
  9. processListWithOperation işlevi, verilen değeri kullanarak listedeki her sayıya verilen işlevi uygulamalı ve sonuçları içeren yeni bir liste döndürmelidir
  10. İlk işlemi özgün listeye uygulayın, ardından ikinci işlemi ilk işlemin sonucuna uygulayın
  11. Sonuçları aşağıda gösterilen tam biçimde görüntüleyin

Örneğin girdiler "2,4,6", "multiply", "3", "add" ve "10" ise programınızın çıktısı şöyle olmalıdır:

Advanced List Processor
=======================
Original list: [2, 4, 6]
First operation: multiply by 3
After first operation: [6, 12, 18]
Second operation: add 10
Final result: [16, 22, 28]
Processing completed successfully

Girdiler "15,25,35", "subtract", "5", "multiply" ve "2" ise programınızın çıktısı şöyle olmalıdır:

Advanced List Processor
=======================
Original list: [15, 25, 35]
First operation: subtract 5
After first operation: [10, 20, 30]
Second operation: multiply by 2
Final result: [20, 40, 60]
Processing completed successfully

Programınız, işlem türü girdilerine göre uygun işlem işlevini processListWithOperation işlevine geçirerek üst düzey işlevleri göstermelidir. Her işlem için hangi işlevin geçirileceğini belirlemek üzere koşullu ifadeler kullanın. processListWithOperation işlevi, girdi listesinde yineleme yapmalı, verilen değeri kullanarak verilen işlevi her öğeye uygulamalı ve sonuçları yeni bir listede toplamalıdır. İşlemleri sıralı olarak uygulayın; ilk işlemin sonucunu ikinci işlem için girdi olarak kullanın.

Kendin dene

import 'dart:io';

void main() {
  // Girdileri oku
  String? numbersInput = stdin.readLineSync();
  String? firstOperation = stdin.readLineSync();
  String? firstValue = stdin.readLineSync();
  String? secondOperation = stdin.readLineSync();
  String? secondValue = stdin.readLineSync();
  
  // Dize girişini tam sayı listesine dönüştür
  List<int> originalList = numbersInput!.split(',').map((e) => int.parse(e.trim())).toList();
  int firstOpValue = int.parse(firstValue!);
  int secondOpValue = int.parse(secondValue!);
  
  // TODO: Kodunuzu aşağıya yazın
  // Üç işlem fonksiyonunu oluşturun: multiplyBy, addTo, subtractFrom
  // processListWithOperation fonksiyonunu oluşturun
  // İşlemleri sırasıyla uygulayın ve sonuçları saklayın
  
  // Sonuçları istenen formatta yazdırın
  print('Advanced List Processor');
  print('=======================');
  print('Original list: $originalList');
  // İlk işlemi ve sonucu yazdırın
  // İkinci işlemi ve nihai sonucu yazdırın
  print('Processing completed successfully');
}

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

Kendi başına pratik yap: Online Dart derleyicisi