Menu
CoddyTech

Récapitulatif - List Processor

Fait partie de la section Logique & Flux du Journey Dart de Coddy. Leçon 50 sur 65.

challenge icon

Défi

Facile

Crée un système flexible de traitement des données qui illustre les fonctions d'ordre supérieur en construisant un processeur de listes personnalisable. Ton programme créera différentes fonctions de traitement et utilisera une fonction de traitement principale capable d'appliquer n'importe quelle opération à une liste de données.

  1. Lis une chaîne d'entrée contenant des nombres séparés par des virgules (par exemple, "10,20,30,40")
  2. Lis une chaîne d'entrée représentant le type de la première opération ("multiply", "add" ou "subtract")
  3. Lis une chaîne d'entrée représentant la valeur à utiliser avec la première opération (par exemple, "3")
  4. Lis une chaîne d'entrée représentant le type de la deuxième opération ("multiply", "add" ou "subtract")
  5. Lis une chaîne d'entrée représentant la valeur à utiliser avec la deuxième opération (par exemple, "5")
  6. Découpe la première entrée en nombres individuels et convertis chacun en entier
  7. Crée trois fonctions d'opération :
    • multiplyBy - prend deux entiers et renvoie le produit du premier par le deuxième
    • addTo - prend deux entiers et renvoie la somme du premier et du deuxième
    • subtractFrom - prend deux entiers et renvoie le premier moins le deuxième
  8. Crée une fonction principale appelée processListWithOperation qui prend trois paramètres :
    • Une liste d'entiers
    • Une fonction qui prend deux entiers et renvoie un entier
    • Une valeur entière à utiliser avec l'opération
  9. La fonction processListWithOperation doit appliquer la fonction fournie à chaque nombre de la liste en utilisant la valeur fournie, puis renvoyer une nouvelle liste contenant les résultats
  10. Applique la première opération à la liste d'origine, puis applique la deuxième opération au résultat de la première opération
  11. Affiche les résultats dans le format exact indiqué ci-dessous

Par exemple, si les entrées sont "2,4,6", "multiply", "3", "add" et "10", ton programme doit afficher :

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

Si les entrées sont "15,25,35", "subtract", "5", "multiply" et "2", ton programme doit afficher :

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

Ton programme doit illustrer les fonctions d'ordre supérieur en transmettant à processListWithOperation la fonction d'opération appropriée en fonction des types d'opération saisis. Utilise des instructions conditionnelles pour déterminer quelle fonction transmettre pour chaque opération. La fonction processListWithOperation doit parcourir la liste d'entrée, appliquer à chaque élément la fonction fournie avec la valeur indiquée, puis recueillir les résultats dans une nouvelle liste. Applique les opérations séquentiellement, en utilisant le résultat de la première opération comme entrée de la deuxième opération.

Essayez vous-même

import 'dart:io';

void main() {
  // Lire les entrées
  String? numbersInput = stdin.readLineSync();
  String? firstOperation = stdin.readLineSync();
  String? firstValue = stdin.readLineSync();
  String? secondOperation = stdin.readLineSync();
  String? secondValue = stdin.readLineSync();
  
  // Convertir la chaîne de caractères saisie en liste d’entiers
  List<int> originalList = numbersInput!.split(',').map((e) => int.parse(e.trim())).toList();
  int firstOpValue = int.parse(firstValue!);
  int secondOpValue = int.parse(secondValue!);
  
  // TODO: Écrivez votre code ci-dessous
  // Créez les trois fonctions d’opération : multiplyBy, addTo, subtractFrom
  // Créez la fonction processListWithOperation
  // Appliquez les opérations successivement et stockez les résultats
  
  // Affichez les résultats au format requis
  print('Advanced List Processor');
  print('=======================');
  print('Original list: $originalList');
  // Affichez la première opération et son résultat
  // Affichez la deuxième opération et le résultat final
  print('Processing completed successfully');
}

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur Dart en ligne