Menu
CoddyTech

Rangkuman: Pemroses list

Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 50 dari 65.

challenge icon

Tantangan

Mudah

Buat sistem pemrosesan data yang fleksibel untuk menunjukkan fungsi tingkat tinggi dengan membangun pemroses list yang dapat disesuaikan. Programmu akan membuat beberapa fungsi pemrosesan dan menggunakan fungsi pemroses utama yang dapat menerapkan operasi apa pun pada list data.

  1. Baca input string yang berisi angka-angka yang dipisahkan koma (misalnya, "10,20,30,40")
  2. Baca input string yang menunjukkan jenis operasi pertama ("multiply", "add", atau "subtract")
  3. Baca input string yang menunjukkan nilai yang akan digunakan untuk operasi pertama (misalnya, "3")
  4. Baca input string yang menunjukkan jenis operasi kedua ("multiply", "add", atau "subtract")
  5. Baca input string yang menunjukkan nilai yang akan digunakan untuk operasi kedua (misalnya, "5")
  6. Pisahkan input pertama menjadi angka-angka terpisah, lalu ubah setiap angka menjadi integer
  7. Buat tiga fungsi operasi:
    • multiplyBy - menerima dua integer dan mengembalikan hasil perkalian integer pertama dengan integer kedua
    • addTo - menerima dua integer dan mengembalikan hasil penjumlahan integer pertama dengan integer kedua
    • subtractFrom - menerima dua integer dan mengembalikan hasil pengurangan integer kedua dari integer pertama
  8. Buat fungsi utama bernama processListWithOperation yang menerima tiga parameter:
    • List integer
    • Fungsi yang menerima dua integer dan mengembalikan integer
    • Nilai integer yang akan digunakan untuk operasi
  9. Fungsi processListWithOperation harus menerapkan fungsi yang diberikan pada setiap angka dalam list menggunakan nilai yang diberikan, lalu mengembalikan list baru yang berisi hasilnya
  10. Terapkan operasi pertama pada list asli, lalu terapkan operasi kedua pada hasil operasi pertama
  11. Tampilkan hasil dalam format persis seperti yang ditunjukkan di bawah ini

Misalnya, jika inputnya adalah "2,4,6", "multiply", "3", "add", dan "10", programmu harus menghasilkan:

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

Jika inputnya adalah "15,25,35", "subtract", "5", "multiply", dan "2", programmu harus menghasilkan:

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

Programmu harus menunjukkan fungsi tingkat tinggi dengan meneruskan fungsi operasi yang sesuai ke processListWithOperation berdasarkan input jenis operasi. Gunakan pernyataan percabangan untuk menentukan fungsi yang akan diteruskan untuk setiap operasi. Fungsi processListWithOperation harus melakukan iterasi pada input list, menerapkan fungsi yang diberikan dengan nilai yang disediakan pada setiap elemen, lalu mengumpulkan hasilnya dalam list baru. Terapkan operasi secara berurutan, dengan menggunakan hasil operasi pertama sebagai input untuk operasi kedua.

Coba sendiri

import 'dart:io';

void main() {
  // Baca input
  String? numbersInput = stdin.readLineSync();
  String? firstOperation = stdin.readLineSync();
  String? firstValue = stdin.readLineSync();
  String? secondOperation = stdin.readLineSync();
  String? secondValue = stdin.readLineSync();
  
  // Ubah input string menjadi list bilangan bulat
  List<int> originalList = numbersInput!.split(',').map((e) => int.parse(e.trim())).toList();
  int firstOpValue = int.parse(firstValue!);
  int secondOpValue = int.parse(secondValue!);
  
  // TODO: Tulis kodemu di bawah ini
  // Buat tiga fungsi operasi: multiplyBy, addTo, subtractFrom
  // Buat fungsi processListWithOperation
  // Terapkan operasi secara berurutan dan simpan hasilnya
  
  // Tampilkan hasil dalam format yang diminta
  print('Advanced List Processor');
  print('=======================');
  print('Original list: $originalList');
  // Tampilkan operasi pertama dan hasilnya
  // Tampilkan operasi kedua dan hasil akhirnya
  print('Processing completed successfully');
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Dart online