Récapitulatif - List Processor
Fait partie de la section Logique & Flux du Journey Dart de Coddy. Leçon 50 sur 65.
Défi
FacileCré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.
- Lis une chaîne d'entrée contenant des nombres séparés par des virgules (par exemple,
"10,20,30,40") - Lis une chaîne d'entrée représentant le type de la première opération (
"multiply","add"ou"subtract") - Lis une chaîne d'entrée représentant la valeur à utiliser avec la première opération (par exemple,
"3") - Lis une chaîne d'entrée représentant le type de la deuxième opération (
"multiply","add"ou"subtract") - Lis une chaîne d'entrée représentant la valeur à utiliser avec la deuxième opération (par exemple,
"5") - Découpe la première entrée en nombres individuels et convertis chacun en entier
- Crée trois fonctions d'opération :
multiplyBy- prend deux entiers et renvoie le produit du premier par le deuxièmeaddTo- prend deux entiers et renvoie la somme du premier et du deuxièmesubtractFrom- prend deux entiers et renvoie le premier moins le deuxième- Crée une fonction principale appelée
processListWithOperationqui 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
- La fonction
processListWithOperationdoit appliquer la fonction fournie à chaque nombre de la liste en utilisant la valeur fournie, puis renvoyer une nouvelle liste contenant les résultats - 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
- 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 successfullySi 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 successfullyTon 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
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire7Fonctions avancées
Fonctions anonymesPassage de fonctions en argumentsComprendre les closuresIntroduction à la récursivitéFonction récursive : Compte à reboursFonction récursive : FactorielleRécapitulatif - List Processor2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniquesEntraînez-vous par vous-même : Compilateur Dart en ligne