Comment créer une liste dans Dart
Comment créer une liste dans Dart
-
Introduction aux Listes
-
Définition
- La liste est l’un des quatre types de collection proposés par Dart. Il est équivaut à Array dans d’autres langages
- Une liste en Dart est une collection ordonnée d’éléments du même type. Les éléments d’une liste sont indexés à partir de zéro, ce qui signifie que le premier élément a l’indice 0, le deuxième a l’indice 1, et ainsi de suite.
- Dans Dart, une liste est une collection ordonnée (parfois appelée séquence). Contrairement à d’autres langages, un tableau et une liste ont été combinés et constituent la même chose.
- Une liste est un certain nombre d’éléments (objets) dans une structure non ordonnée. Des éléments supplémentaires peuvent être ajoutés à la liste. Les éléments peuvent être mis à jour ou supprimés de la liste si nécessaire. Les listes peuvent contenir des éléments en double.
- Les tableaux sont l’une des collections les plus couramment utilisées en programmation. Dans Dart, un tableau est représenté sous la forme d’une liste (c’est-à-dire une collection ordonnée d’objets).
-
Création de listes
- pour déclarer une liste Dart on utilise la syntaxe:
- En Dart, vous pouvez créer une liste de différentes manières :
- Exemple
-
Accès aux éléments
- En Dart, vous pouvez accéder aux éléments d’une liste en utilisant trois méthodes principales : l’opérateur d’index (
[]
) , la méthodeelementAt()
et la boucle for. -
Utilisation de l’opérateur d’index ([]):
- Vous pouvez accéder à un élément spécifique d’une liste en utilisant l’opérateur d’index, qui ressemble à ceci :
- Dans cet exemple, maListe[0] renvoie le premier élément de la liste maListe, et maListe[1] renvoie le deuxième élément.
- Exemple
-
Utilisation de la méthode elementAt() :
- Dart propose également une méthode elementAt() que vous pouvez utiliser pour accéder à un élément d’une liste en spécifiant l’index de l’élément souhaité. Voici comment vous pouvez l’utiliser :
- La méthode elementAt() prend un index en argument et renvoie l’élément correspondant de la liste.
-
Utilisation de la boucle
for
: - On peut aussi parcourir les éléments d’une liste Dart à l’aide de la boucle for
- Utilisez la méthode qui vous convient le mieux en fonction de votre besoin spécifique. L’
opérateur d'index
est plus couramment utilisé pour un accès direct aux éléments de la liste, tandis que la méthodeelementAt()
peut être utile dans certaines situations où vous devez accéder à un élément en fonction d’une logique plus complexe. - La boucle
for
est un moyen efficace de parcourir et d’accéder aux éléments d’une liste en Dart, en plus des méthodes mentionnées précédemment, comme l’opérateur d’index ([])
et la méthodeelementAt()
. -
Modification des éléments
- La modification des éléments d’une liste en Dart est une opération courante. Vous pouvez mettre à jour un élément d’une liste en utilisant l’indice de cet élément. Voici comment vous pouvez le faire :
- Dans l’exemple ci-dessus, nous avons modifié le troisième élément (indice 2) de la liste myList en lui attribuant la valeur 10. Après la modification, la liste contient [1, 2, 10, 4, 5].
- Vous pouvez également utiliser des boucles pour parcourir une liste et modifier les éléments en fonction de certains critères. Par exemple :
- Dans cet exemple, nous avons parcouru la liste numbers à l'aide d'une boucle for, et nous avons doublé les nombres pairs en modifiant directement les éléments.
List nom_de_la_liste = [<éléments de la liste>]
// afficher la liste
print( nom_de_la_liste);
// Utiliser le clé var
var nomDeLaListe = [1, 2, 3, 4, 5];
// afficher la liste
print(nomDeLaListe);
List<int> myList = [1, 2, 3, 4, 5]; // Crée une liste d'entiers
// afficher la liste
print(myList);
List<String> fruits = ['pomme', 'banane', 'orange']; // Crée une liste de chaînes de caractères
// afficher la liste
print(fruits);
void main(){
// définir une liste du type String
List maListe = ["Laptop" , "télévision" , "Phone"];
// afficher la liste
print(maListe);
}
var maListe = [1, 2, 3, 4, 5];
var premierElement = maListe[0]; // Accéder au premier élément (1)
var deuxiemeElement = maListe[1]; // Accéder au deuxième élément (2)
void main(){
// définir une liste du type String
//on peut dans ce cas insérer différents types de variables
List maListe = ["Dart" , "Python" , "Java"];
// afficher le premier élément (index 0) de la liste
print(maListe[0]); // affiche Dart
}
var maListe = [1, 2, 3, 4, 5];
var troisiemeElement = maListe.elementAt(2); // Accéder au troisième élément (3)
var cinquiemeElement = maListe.elementAt(4); // Accéder au cinquième élément (5)
void main(){
var l = [11,27,13 ,9];
for (var x in l){
print(x);
}
}
void main() {
List<int> myList = [1, 2, 3, 4, 5];
// Modifier le troisième élément (indice 2)
myList[2] = 10;
// Afficher la liste mise à jour
print(myList); // Affichera [1, 2, 10, 4, 5]
}
void main() {
List<int> numbers = [1, 2, 3, 4, 5];
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 == 0) {
numbers[i] = numbers[i] * 2; // Double les nombres pairs
}
}
print(numbers); // Affichera [1, 4, 3, 8, 5]
}
Types de Listes en Dart
-
Liste de longueur fixe (Fixed-length List)
- Une liste à longueur fixe, également appelée tableau, a une taille prédéterminée qui ne peut pas être modifiée une fois qu'elle est créée. Pour créer une liste à longueur fixe, vous pouvez utiliser la classe List avec une taille spécifiée :
- Comme son nom l'indique, la longueur de ce type de liste est fixe, qui est prédéfinie, lors de la déclaration de la liste.
- Comme la taille est fixe, elle ne peut pas être modifiée lors de l'exécution.
- Syntax :
var list_name = new List( size );
- Cela crée une liste de longueur fixe à laquelle des éléments ne peuvent pas être ajoutés ou supprimés lors de l'exécution. Si, dans tous les cas, une modification est apportée à la liste par rapport à sa taille, le compilateur lève une exception.
- Cela peut ne pas fonctionner lorsque la sécurité null est activée. Dans ce cas, utilisez le constructeur List
.filled. Ce constructeur crée une liste de la longueur donnée avec des valeurs renseignées à chaque position. -
Liste extensible (Growable List)
- Une liste extensible, comme son nom l'indique, peut être agrandie ou réduite dynamiquement. Les listes créées à l'aide de la syntaxe de liste standard sont des listes extensibles. Par exemple :
- Ce type de liste n'a pas de longueur fixe ; par conséquent, il peut être étendu pour contenir n'importe quel nombre d'éléments. La taille de la liste n'est pas mentionnée lors de sa déclaration et peut donc être modifiée au moment de l'exécution.
- Syntax :
var list_name = new List( );
- Cela crée une liste de longueur variable à laquelle des éléments peuvent être ajoutés ou supprimés lors de l'exécution. Ici, des modifications peuvent être apportées à la liste par rapport à sa taille.
List fixedList = List(3); // Crée une liste à longueur fixe de taille 3
void main() {
// declaration of fixed length list
var fixedList = new List.filled(5, 0, growable: false);
// inserting values in the fixed length list
fixedList[0] = 1;
fixedList[1] = 2;
fixedList[2] = 3;
fixedList[3] = 4;
fixedList[4] = 5;
// fixedList[ 5 ] = 6; Including this line throws an error
// printing elements of the fixed length list
print(' \n Elements in the list are as follows: $fixedList ');
}
List growableList = [1, 2, 3]; // Crée une liste extensible
void main( )
{
// declaring growable list
var growableList = new List< int >.filled( 0, 0, growable: true );
// initializing growable list with values
growableList = [ 0, 1, 2, 3, 4, 5 ];
print( ' The elements in the growable list are : $growableList ' );
// adding element 6 to the growable list
growableList.add( 6 );
print( ' After adding 6 to the list, he elements in the growable list are : $growableList ' );
}
Opérations de Base sur les Listes
-
add
(élément): permet d'ajouter un élément à la liste -
clear()
: permet de vider la liste -
insert()
: permet d'insérer un élément à une position spécifiée -
indexOf()
: renvoie la position d'un élément dans une liste -
remove()
: permet de supprimer un élément -
removeAt()
: permet de supprimer un élément à une position spécifiée -
removeLast()
: supprime le dernier élément -
sort()
: permet de trier la liste -
subList()
: Extraire une sous liste avecList
sublist(int start, [int? end]); -
toSet()
: transforme la liste en un ensemble - La méthode
toSet()
en Dart est utilisée pour transformer une liste en un ensemble (Set). Un ensemble est une collection d'éléments uniques, ce qui signifie que chaque élément dans un ensemble ne peut apparaître qu'une seule fois. Cette méthode est utile lorsque vous avez une liste avec des doublons et que vous voulez supprimer les doublons pour obtenir une liste d'éléments uniques. - Voici comment vous pouvez utiliser toSet() pour transformer une liste en un ensemble :
- Comme vous pouvez le voir, la méthode
toSet()
a transformé la liste maListe en un ensemble monSet en éliminant les doublons. -
first:
renvoie le premier élément de la liste. - En Dart, la méthode
first
est utilisée pour obtenir le premier élément d'une liste. Elle renvoie le premier élément de la liste, et si la liste est vide, elle génère une erreur. - Voici comment vous pouvez utiliser la méthode first pour obtenir le premier élément d'une liste en Dart :
- Cependant, il est important de noter que si la liste est vide, l'appel à first générera une exception StateError de type "No element".
- Par conséquent, il est généralement recommandé de vérifier si la liste n'est pas vide avant d'appeler first pour éviter les exceptions. Vous pouvez le faire comme ceci :
-
isEmpty:
renvoie true si la collection ne contient aucun élément. - En Dart, la méthode isEmpty est utilisée pour vérifier si une collection (comme une liste, un ensemble ou une carte) ne contient aucun élément. Elle renvoie true si la collection est vide et false sinon. Voici un exemple d'utilisation :
- Dans cet exemple, la liste maListe est vide, donc l'appel à isEmpty renvoie true, et le message "La liste est vide." est affiché. Si la liste contenait des éléments, isEmpty renverrait false.
- Vous pouvez utiliser isEmpty pour éviter des exceptions lors de l'accès à des éléments d'une collection vide, en vérifiant d'abord si la collection est vide ou non.
-
isNotEmpty:
renvoie true si la collection a au moins un élément. - En Dart, la méthode isNotEmpty est utilisée pour vérifier si une collection (comme une liste, un ensemble ou une carte) contient au moins un élément. Elle renvoie true si la collection a au moins un élément et false si la collection est vide. Voici un exemple d'utilisation :
- Dans cet exemple, la liste maListe contient des éléments, donc l'appel à
isNotEmpty
renvoie true, et le message "La liste n'est pas vide et contient au moins un élément." est affiché. Si la liste était vide,isNotEmpty
renverrait false. - La méthode
isNotEmpty
est couramment utilisée pour vérifier si une collection a des éléments avant d'effectuer des opérations sur celle-ci, afin d'éviter des erreurs ou des exceptions lorsque la collection est vide. -
length:
renvoie la taille de la liste. - En Dart, la propriété
length
est utilisée pour obtenir la taille (le nombre d'éléments) d'une liste. Voici comment vous pouvez l'utiliser : - La propriété
length
renvoie un entier qui représente le nombre d'éléments dans la liste. Elle est utile pour obtenir la taille de la liste afin de déterminer combien d'éléments elle contient. -
last:
renvoie le dernier élément de la liste. - En Dart, la méthode last est utilisée pour obtenir le dernier élément d'une liste. Voici comment vous pouvez l'utiliser :
- La méthode last renvoie le dernier élément de la liste, et elle génère une exception StateError si la liste est vide. Donc, avant d'appeler last, il est généralement recommandé de vérifier si la liste contient au moins un élément pour éviter les exceptions. Vous pouvez le faire comme ceci :
- Cela vous évitera des erreurs si la liste est vide.
-
reversed:
renvoie un objet itérable contenant les valeurs des listes dans l'ordre inverse. - En Dart, la méthode
reversed
est utilisée pour obtenir un objet itérable (iterable) contenant les valeurs de la liste dans l'ordre inverse. Cet objet itérable n'est pas une liste, mais vous pouvez le parcourir à l'aide d'une boucle for-in ou le convertir en une liste si nécessaire. - Voici comment utiliser
reversed
pour inverser l'ordre des éléments d'une liste et itérer sur eux : - L'objet retourné par
reversed
est un itérable et non une liste, c'est pourquoi vous pouvez le convertir en une liste si nécessaire, comme dans l'exemple ci-dessus, en utilisanttoList()
. -
single:
vérifie si la liste n'a qu'un seul élément et le renvoie. - En Dart, la méthode
single
est utilisée pour vérifier si une liste a exactement un élément et, le cas échéant, renvoie cet élément. Si la liste ne contient pas d'éléments ou si elle en contient plus d'un, l'appel à single génère une exception. - Voici comment vous pouvez utiliser single pour vérifier et obtenir un élément unique dans une liste :
- Dans cet exemple, la liste maListe contient un seul élément, donc l'appel à single renverra cet élément. Si la liste est vide ou contient plus d'un élément, une exception de type StateError sera générée, et vous pouvez la gérer à l'aide d'une clause catch comme dans l'exemple ci-dessus.
void main(){
// définir une liste du type String
List maListe = ["Laptop" , "télévision" , "Phone"];
// ajouter un élément à la liste
maListe.add("Tablette");
// afficher la liste
print(maListe); // affiche [Laptop, télévision, Phone, Tablette]
}
void main(){
// définir une liste du type String
List maListe = ["Laptop" , "télévision" , "Phone"];
// vider la liste
maListe.clear();
// afficher la liste
print(maListe); // affiche []
}
void main(){
// définir une liste du type String
List maListe = ["Laptop" , "télévision" , "Phone"];
// insérer un élément à une position donnée
maListe.insert(2 , "my element");
// afficher la liste
print(maListe); // affiche: [Laptop, télévision, my element, Phone]
}
void main(){
// définir une liste du type String
List maListe = ["Python" , "Dart" , "Java" , "Flutter"];
// renvoyer l'index d'un élément de la liste
print(maListe.indexOf("Java")); // affiche 2
}
void main(){
// définir une liste du type String
List maListe = ["Python" , "Dart" , "Java" , "Flutter"];
// supprimer un élément donnée par son nom
maListe.remove("Java");
print(maListe);// affiche [Python, Dart, Flutter]
}
void main(){
// définir une liste du type String
List maListe = ["Python" , "Dart" , "Java" , "Flutter"];
// supprimer un élément à une position donnée
maListe.removeAt(1);
print(maListe);// affiche [Python, Java, Flutter]
}
void main() {
// Création de la liste
List myList = ['Mango', 'Apple', 'Pineapple', 'Lemon'];
// Affiche les résultats
print('La liste avant de supprimer le dernier élément : $myList');
// Affecte les éléments supprimés à la variable res
var res = myList.removeLast();
// Affiche la valeur
print('La valeur de l\'item supprimé : $res');
// Affiche les résultats
print('La nouvelle liste après suppression du dernier élément : $myList');
}
void main() {
// Création de la liste
List myList = [13, 2, -11, 142, -389, 0];
// Affiche les résultats
print(myList..sort());
}
void main() {
final colors = ['red', 'green', 'blue', 'orange', 'pink'];
print(colors.sublist(1, 3)); // [green, blue]
final colors = ['red', 'green', 'blue', 'orange', 'pink'];
print(colors.sublist(3)); // [orange, pink]
}
List maListe = [1, 2, 2, 3, 4, 4, 5];
Set monSet = maListe.toSet();
print(maListe); // Affiche : [1, 2, 2, 3, 4, 4, 5]
print(monSet); // Affiche : {1, 2, 3, 4, 5}
List maListe = [1, 2, 3, 4, 5];
int premierElement = maListe.first;
print(premierElement); // Affiche : 1
List maListe = [];
if (maListe.isNotEmpty) {
int premierElement = maListe.first;
print(premierElement);
} else {
print("La liste est vide.");
}
List maListe = [];
if (maListe.isEmpty) {
print("La liste est vide.");
} else {
print("La liste n'est pas vide.");
}
List maListe = [1, 2, 3];
if (maListe.isNotEmpty) {
print("La liste n'est pas vide et contient au moins un élément.");
} else {
print("La liste est vide.");
}
List maListe = [1, 2, 3, 4, 5];
int taille = maListe.length;
print(taille); // Affiche : 5 (car la liste a 5 éléments)
List maListe = [1, 2, 3, 4, 5];
int dernierElement = maListe.last;
print(dernierElement); // Affiche : 5 (le dernier élément de la liste)
List maListe = [];
if (maListe.isNotEmpty) {
int dernierElement = maListe.last;
print(dernierElement);
} else {
print("La liste est vide.");
}
List maListe = [1, 2, 3, 4, 5];
// Utilisation de reversed pour obtenir un itérable inversé
Iterable iterableInverse = maListe.reversed;
// Itération sur l'itérable inversé
for (int element in iterableInverse) {
print(element);
}
// Conversion de l'itérable inversé en une liste
List listeInversee = iterableInverse.toList();
print(listeInversee); // Affiche : [5, 4, 3, 2, 1]
List maListe = [42];
try {
int elementUnique = maListe.single;
print("L'élément unique est : $elementUnique");
} catch (e) {
print("Il n'y a pas d'élément unique dans la liste.");
}
La méthode forEach
pour les listes
-
Utilisation
- En Dart, vous pouvez utiliser la méthode
forEach
pour itérer à travers les éléments d'une liste et exécuter une fonction (appelée un callback) pour chaque élément de la liste. La syntaxe de base est la suivante : - Voici un exemple d'utilisation de
forEach
pour parcourir une liste et afficher chaque élément : - Dans cet exemple, la fonction fléchée element est exécutée pour chaque élément de la liste, ce qui entraîne l'affichage de chaque élément.
- Il est important de noter que
forEach
est une méthode de liste et est utilisée pour exécuter une action sur chaque élément, mais elle ne renvoie pas une nouvelle liste ou une liste modifiée. Elle est généralement utilisée pour des opérations d'itération simples. Si vous souhaitez transformer ou filtrer les éléments de la liste, vous pourriez utiliser des méthodes telles que map ou where. -
Exercices d'application
- Voici quelques exercices pour vous aider à pratiquer l'utilisation de la méthode
forEach
en Dart avec des exemples de code. Vous pouvez les résoudre pour mieux comprendre comment utiliserforEach
pour itérer à travers les éléments d'une liste et effectuer des opérations sur eux. -
Exercice 1 : Somme des éléments d'une liste
- Écrivez un programme Dart qui utilise la méthode forEach pour calculer la somme des éléments d'une liste de nombres et affiche le résultat.
-
Exercice 2 : Afficher la longueur de chaque mot dans une liste de chaînes
- Écrivez un programme Dart qui utilise forEach pour parcourir une liste de mots et affiche la longueur de chaque mot.
-
Exercice 3 : Filtrer les nombres pairs d'une liste
- Écrivez un programme Dart qui utilise forEach pour parcourir une liste de nombres et affiche uniquement les nombres pairs.
-
Exercice 4 : Affichage des éléments d'une liste
- Écrivez un programme qui utilise la méthode forEach pour parcourir une liste de noms et les affiche un par un.
-
Exercice 5 : Recherche de la valeur maximale
- Écrivez un programme qui utilise forEach pour trouver la valeur maximale dans une liste de nombres.
- Ces exercices devraient vous aider à vous familiariser avec l'utilisation de forEach pour parcourir et effectuer des opérations sur les éléments d'une liste en Dart.
maListe.forEach((element) {
// Code à exécuter pour chaque élément de la liste
print(element);
});
List maListe = [1, 2, 3, 4, 5];
maListe.forEach((element) {
print(element);
});
void main() {
List nombres = [1, 2, 3, 4, 5];
int somme = 0;
nombres.forEach((nombre) {
somme += nombre;
});
print("La somme des éléments de la liste est : $somme");
}
void main() {
List mots = ["chat", "chien", "oiseau", "éléphant", "tortue"];
mots.forEach((mot) {
print("Le mot '$mot' a une longueur de ${mot.length} caractères.");
});
}
void main() {
List nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
print("Nombres pairs :");
nombres.forEach((nombre) {
if (nombre % 2 == 0) {
print(nombre);
}
});
}
void main() {
List noms = ['Alice', 'Bob', 'Charlie', 'David', 'Eve'];
noms.forEach((nom) {
print(nom);
});
}
void main() {
List nombres = [7, 3, 9, 2, 11, 5];
int max = nombres[0]; // Initialise max avec le premier élément de la liste
nombres.forEach((nombre) {
if (nombre > max) {
max = nombre;
}
});
print("La valeur maximale est : $max");
}
Exemples et Exercices
-
Exemple : Création et manipulation de listes
-
Exercice 1 : Calcul de la somme des éléments d'une liste
-
Enoncé
- Écrivez une fonction nommée calculateSum qui prend en entrée une liste d'entiers et retourne la somme de tous ses éléments. Ensuite, dans la fonction main, créez une liste d'entiers de votre choix, appelez la fonction calculateSum avec cette liste et affichez le résultat.
-
Exercice 2 : Recherche d'éléments dans une liste
-
Enoncé
- Écrivez une fonction nommée searchElement qui prend en entrée une liste d'entiers et un entier à rechercher, et retourne un booléen indiquant si l'élément est présent dans la liste ou non.
- Ensuite, dans la fonction main, créez une liste d'entiers de votre choix et demandez à l'utilisateur de saisir un nombre. Appelez ensuite la fonction searchElement avec la liste et le nombre saisi par l'utilisateur, puis affichez si l'élément est présent dans la liste ou non.
- Voici un exemple de code vide pour commencer :
- Remplir la fonction searchElement pour qu'elle recherche correctement l'élément dans la liste et retourne true s'il est présent et false sinon. Une fois qu'ils auront terminé, ils pourront exécuter le programme pour vérifier si leur fonction fonctionne comme prévu.
void main() {
// Création d'une liste de nombres
List numbers = [1, 2, 3, 4, 5];
// Affichage de la liste
print("Liste de nombres : $numbers");
// Accès aux éléments de la liste
print("Le premier élément de la liste : ${numbers[0]}");
print("Le deuxième élément de la liste : ${numbers[1]}");
// Modification d'un élément de la liste
numbers[2] = 10;
print("Liste de nombres après modification : $numbers");
// Ajout d'un élément à la liste
numbers.add(6);
print("Liste de nombres après ajout : $numbers");
// Suppression d'un élément de la liste
numbers.remove(4);
print("Liste de nombres après suppression : $numbers");
// Vérification de la présence d'un élément dans la liste
bool containsThree = numbers.contains(3);
print("La liste contient-elle le nombre 3 ? $containsThree");
// Suppression de tous les éléments de la liste
numbers.clear();
print("Liste de nombres après suppression de tous les éléments : $numbers");
}
Solution
void main() {
List numbers = [1, 2, 3, 4, 5];
// Appel de la fonction pour calculer la somme des éléments de la liste
int sum = calculateSum(numbers);
// Affichage du résultat
print("La somme des éléments de la liste est : $sum");
}
int calculateSum(List numbers) {
int sum = 0;
// Parcours de chaque élément de la liste et ajout à la somme
for (int number in numbers) {
sum += number;
}
return sum;
}
import 'dart:io';
// Écrivez votre fonction searchElement ici
void main() {
List numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Vous pouvez changer cette liste selon vos besoins
stdout.write("Entrez un nombre à rechercher dans la liste : ");
int target = int.parse(stdin.readLineSync()!); // Saisie de l'utilisateur
// Appelez la fonction searchElement avec la liste numbers et le nombre saisi par l'utilisateur,
// puis affichez si l'élément est présent dans la liste ou non
}
Solution
import 'dart:io';
// Fonction pour rechercher un élément dans une liste
bool searchElement(List numbers, int target) {
// Parcours de chaque élément de la liste
for (int number in numbers) {
// Vérification si l'élément courant est égal à la cible
if (number == target) {
return true; // L'élément est trouvé, retourne true
}
}
return false; // L'élément n'est pas trouvé, retourne false
}
void main() {
List numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
stdout.write("Entrez un nombre à rechercher dans la liste : ");
int target = int.parse(stdin.readLineSync()!); // Saisie de l'utilisateur
// Appel de la fonction searchElement avec la liste numbers et le nombre saisi par l'utilisateur
bool found = searchElement(numbers, target);
// Affichage du résultat
if (found) {
print("L'élément $target est présent dans la liste.");
} else {
print("L'élément $target n'est pas présent dans la liste.");
}
}
Exercices sur la manipulation de listes avec saisie utilisateur
- Voici une série d'exercices qui vous aideront à vous familiariser avec la manipulation de listes en Dart. Pour chaque exercice, écrivez une fonction qui réalise la tâche décrite en demandant à l'utilisateur de saisir les éléments des listes nécessaires. Ensuite, créez une fonction main() qui appelle ces fonctions avec des exemples de listes.
- Somme des éléments d'une liste :
- Écrivez une fonction qui demande à l'utilisateur de saisir une liste de nombres, puis retourne la somme de tous les éléments de la liste.
- Éléments communs à deux listes :
- Écrivez une fonction qui demande à l'utilisateur de saisir deux listes de nombres, puis retourne une nouvelle liste contenant les éléments communs aux deux listes, sans doublons.
- Inversion de l'ordre des éléments d'une liste :
- Écrivez une fonction qui demande à l'utilisateur de saisir une liste de nombres, puis renvoie une nouvelle liste contenant les éléments de la liste initiale dans l'ordre inverse.
- Suppression des nombres pairs d'une liste :
- Écrivez une fonction qui demande à l'utilisateur de saisir une liste de nombres, puis renvoie la liste sans les nombres pairs.
- Filtrage des mots commençant par une majuscule :
- Écrivez une fonction qui demande à l'utilisateur de saisir une liste de mots, puis renvoie une nouvelle liste contenant uniquement les mots qui commencent par une lettre majuscule.
- Duplication de tous les nombres d'une liste :
- Écrivez une fonction qui demande à l'utilisateur de saisir une liste de nombres, puis renvoie la liste avec tous les nombres doublés.
- Inversion des chaînes de caractères dans une liste :
- Écrivez une fonction qui demande à l'utilisateur de saisir une liste de chaînes de caractères, puis renvoie une nouvelle liste contenant les chaînes de caractères inversées.
- Filtrage des nombres supérieurs à la moyenne :
- Écrivez une fonction qui demande à l'utilisateur de saisir une liste de nombres, puis renvoie une nouvelle liste contenant uniquement les nombres qui sont supérieurs à la moyenne des nombres de la liste initiale.
Solution
import 'dart:io';
// Fonction pour demander à l'utilisateur de saisir une liste de nombres
List askForNumberList() {
stdout.write("Entrez les nombres de la liste (séparés par des espaces) : ");
String input = stdin.readLineSync()!;
List numbersAsString = input.split(' ');
List numbers = numbersAsString.map((e) => int.parse(e)).toList();
return numbers;
}
// Fonction pour demander à l'utilisateur de saisir deux listes de nombres
List> askForTwoNumberLists() {
print("Première liste :");
List firstList = askForNumberList();
print("Deuxième liste :");
List secondList = askForNumberList();
return [firstList, secondList];
}
// Fonction pour demander à l'utilisateur de saisir une liste de mots
List askForWordList() {
stdout.write("Entrez les mots de la liste (séparés par des espaces) : ");
String input = stdin.readLineSync()!;
List words = input.split(' ');
return words;
}
// Exercice 1 : Somme des éléments d'une liste
int calculateSum(List numbers) {
int sum = 0;
for (int number in numbers) {
sum += number;
}
return sum;
}
// Exercice 2 : Éléments communs à deux listes
List findCommonElements(List list1, List list2) {
Set set1 = list1.toSet();
Set set2 = list2.toSet();
return set1.intersection(set2).toList();
}
// Exercice 3 : Inversion de l'ordre des éléments d'une liste
List reverseList(List numbers) {
return numbers.reversed.toList();
}
// Exercice 4 : Suppression des nombres pairs d'une liste
List removeEvenNumbers(List numbers) {
return numbers.where((number) => number % 2 != 0).toList();
}
// Exercice 5 : Filtrage des mots commençant par une majuscule
List findCapitalizedWords(List words) {
return words.where((word) => word[0] == word[0].toUpperCase()).toList();
}
// Exercice 6 : Duplication de tous les nombres d'une liste
List doubleNumbers(List numbers) {
return numbers.map((number) => number * 2).toList();
}
// Exercice 7 : Inversion des chaînes de caractères dans une liste
List reverseStrings(List strings) {
return strings.map((string) => string.split('').reversed.join()).toList();
}
// Exercice 8 : Filtrage des nombres supérieurs à la moyenne
List numbersAboveAverage(List numbers) {
double average = numbers.reduce((a, b) => a + b) / numbers.length;
return numbers.where((number) => number > average).toList();
}
void main() {
// Exemple d'appel de chaque fonction avec des listes saisies par l'utilisateur
List numbers = askForNumberList();
print("Somme des éléments de la liste : ${calculateSum(numbers)}");
List> twoLists = askForTwoNumberLists();
print("Éléments communs aux deux listes : ${findCommonElements(twoLists[0], twoLists[1])}");
List reversedList = reverseList(numbers);
print("Liste inversée : $reversedList");
List oddNumbers = removeEvenNumbers(numbers);
print("Liste sans nombres pairs : $oddNumbers");
List words = askForWordList();
print("Mots commençant par une majuscule : ${findCapitalizedWords(words)}");
print("Liste avec nombres doublés : ${doubleNumbers(numbers)}");
List strings = askForWordList();
print("Liste de chaînes de caractères inversées : ${reverseStrings(strings)}");
print("Nombres supérieurs à la moyenne : ${numbersAboveAverage(numbers)}");
}