Ö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 üst düzey fonksiyonları (higher-order functions) gösteren esnek bir veri işleme sistemi oluşturun. Programınız farklı işlem fonksiyonları oluşturacak ve bir veri listesine herhangi bir işlemi uygulayabilen ana bir işlemci fonksiyonu kullanacaktır.
- Virgülle ayrılmış sayılar içeren bir dize girişi okuyun (örneğin,
"10,20,30,40") - İlk işlem türünü temsil eden bir dize girişi okuyun (
"multiply","add"veya"subtract") - İlk işlemle kullanılacak değeri temsil eden bir dize girişi okuyun (örneğin,
"3") - İkinci işlem türünü temsil eden bir dize girişi okuyun (
"multiply","add"veya"subtract") - İkinci işlemle kullanılacak değeri temsil eden bir dize girişi okuyun (örneğin,
"5") - İlk girişi tekil sayılara bölün ve her birini bir tam sayıya dönüştürün
- Üç işlem fonksiyonu oluşturun:
multiplyBy- iki tam sayı alır ve birincinin ikinciyle çarpımını döndürüraddTo- iki tam sayı alır ve birincinin ikinciyle toplamını döndürürsubtractFrom- iki tam sayı alır ve birinciden ikincinin çıkarılmış halini döndürür- Üç parametre alan
processListWithOperationadında bir ana fonksiyon oluşturun: - Tam sayılardan oluşan bir liste
- İki tam sayı alan ve bir tam sayı döndüren bir fonksiyon
- İşlemle birlikte kullanılacak bir tam sayı değeri
processListWithOperationfonksiyonu, verilen fonksiyonu listedeki her sayıya sağlanan değeri kullanarak uygulamalı ve sonuçlarla birlikte yeni bir liste döndürmelidir- İlk işlemi orijinal listeye uygulayın, ardından ikinci işlemi ilk işlemin sonucuna uygulayın
- Sonuçları tam olarak aşağıda gösterilen formatta görüntüleyin
Örneğin, girişler "2,4,6", "multiply", "3", "add" ve "10" ise programınız ş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 successfullyGirişler "15,25,35", "subtract", "5", "multiply" ve "2" ise programınız ş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ız, işlem türü girişlerine göre uygun işlem fonksiyonunu processListWithOperation fonksiyonuna geçirerek üst düzey fonksiyonları göstermelidir. Her işlem için hangi fonksiyonun geçirileceğini belirlemek için koşullu ifadeler kullanın. processListWithOperation fonksiyonu giriş listesi üzerinde dönmeli, verilen fonksiyonu sağlanan değerle her öğeye uygulamalı ve sonuçları yeni bir listede toplamalıdır. İşlemleri sırayla 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
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 Listesi