Özet - Liste İşleyici
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 50 / 65.
Görev
KolayÖzelleştirilebilir bir liste işlemcisi oluşturarak yüksek dereceli işlevleri gösteren esnek bir veri işleme sistemi oluştur. Programın farklı işleme işlevleri oluşturacak ve bir veri listesine herhangi bir işlemi uygulayabilen ana işlemci işlevini kullanacak.
- Virgülle ayrılmış sayıları içeren bir dizge girdisi oku (ör.
"10,20,30,40") - İlk işlem türünü belirten bir dizge girdisi oku (
"multiply","add"veya"subtract") - İlk işlemde kullanılacak değeri belirten bir dizge girdisi oku (ör.
"3") - İkinci işlem türünü belirten bir dizge girdisi oku (
"multiply","add"veya"subtract") - İkinci işlemde kullanılacak değeri belirten bir dizge girdisi oku (ör.
"5") - İlk girdiyi tek tek sayılara ayır ve her birini bir tam sayıya dönüştür
- Üç işlem işlevi oluştur:
multiplyBy- iki tam sayı alır ve ilk sayının ikinci sayıyla çarpımını döndürüraddTo- iki tam sayı alır ve bu iki sayının toplamını döndürürsubtractFrom- iki tam sayı alır ve ilk sayıdan ikinci sayıyı çıkarıp sonucu döndürür- Üç parametre alan,
processListWithOperationadlı bir ana işlev oluştur: - Bir tam sayı listesi
- İki tam sayı alan ve bir tam sayı döndüren bir işlev
- İşlemde kullanılacak bir tam sayı değeri
processListWithOperationişlevi, verilen değeri kullanarak listedeki her sayıya verilen işlevi uygulamalı ve sonuçları içeren yeni bir liste döndürmelidir- İlk işlemi özgün listeye uygula, ardından ikinci işlemi ilk işlemin sonucuna uygula
- Sonuçları aşağıda gösterilen biçimin aynısıyla görüntüle
Örneğin, girdiler "2,4,6", "multiply", "3", "add" ve "10" ise programın şu çıktıyı vermelidir:
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 successfullyGirdiler "15,25,35", "subtract", "5", "multiply" ve "2" ise programın şu çıktıyı vermelidir:
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 successfullyProgramın, işlem türü girdilerine bağlı olarak uygun işlem işlevini processListWithOperation işlevine aktararak yüksek dereceli işlevleri göstermelidir. Her işlem için aktarılacak işlevi belirlemek üzere koşullu ifadeler kullan. processListWithOperation işlevi, girdi listesinde döngüyle ilerlemeli, verilen değeri kullanarak her öğeye verilen işlevi uygulamalı ve sonuçları yeni bir listede toplamalıdır. İşlemleri sırasıyla uygula; ikinci işlemin girdisi olarak ilk işlemin sonucunu kullan.
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();
// Metin girdisini 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: Kodunu aşağıya yaz
// Üç işlem fonksiyonunu oluştur: multiplyBy, addTo, subtractFrom
// processListWithOperation fonksiyonunu oluştur
// İşlemleri sırayla uygula ve sonuçları sakla
// Sonuçları istenen biçimde yazdır
print('Advanced List Processor');
print('=======================');
print('Original list: $originalList');
// İlk işlemi ve sonucunu yazdır
// İkinci işlemi ve nihai sonucu yazdır
print('Processing completed successfully');
}Mantık & Akış bölümündeki tüm dersler
1İleri Düzey Liste İşlemleri
Liste Özellikleri: first & lastListe Durumu: isEmpty & isNotEmptyBir Listeyi Tersine ÇevirmeListeye Ekleme: insertListeden Silme: removeWhereListede Bulma: indexOfBir Listeyi SıralamaBir Listeyi KarıştırmaÖzet - Liste Düzenleyici4İleri Seviye Map İşlemleri
Map Üzerinde GezinmeAnahtar ve Değer KontrolüMap Özellikleri: keys & valuesKoşullu Ekleme: putIfAbsentMap'ten Öge Kaldırmaİç İçe Map'lerÖzet - Envanter Güncelleme7İleri Seviye Fonksiyonlar
Anonim FonksiyonlarFonksiyonları Argüman Olarak AktarmaClosure'ları AnlamakÖzyinelemeye GirişÖzyinelemeli Fonksiyon: Geri SayımÖzyinelemeli Fonksiyon: FaktöriyelÖzet - Liste İşleyici10Son Meydan Okumalar
Meydan Okuma: Not SıralayıcıMeydan Okuma: Sesli Harf SayacıMeydan Okuma: FizzBuzz2Fonksiyonel Liste İşlemleri
'map' ile Dönüştürme'where' ile Filtreleme'.toList()' Kullanımı'any' ile Koşul Kontrolü'every' ile Koşullar'firstWhere' ile BulmaÖzet - Veri Filtreleme5Proje: Alışveriş Sepeti Hesaplayıcı
Proje KurulumuSepete Ürün Ekleme3Kümeler
Küme Nedir?Küme OluşturmaKümelere Eleman Ekleme ve ÇıkarmaKüme İçinde Eleman KontrolüListeyi Kümeye DönüştürmeKüme BirleşimiKüme KesişimiKüme FarkıÖzet - Benzersiz Davetli ListesiKendi başına pratik yap: Online Dart derleyicisi