Indiquez si chaque déclaration est Correcte (C) ou Incorrecte (I). Si incorrecte, expliquez :
| Déclaration | C/I | Explication si incorrecte |
|---|---|---|
List<int> lst = new List<int>(); | ||
List<int> lst = new List<int> { 1, 2, 3 }; | ||
List lst = new List(); | ||
var lst = new List<string>(); | ||
List<int> lst = { 1, 2, 3 }; | ||
List<int> lst = new List<double>(); | ||
List<string> lst = new List<string>(20); | ||
List<int> lst = new List<int>[] { 1, 2 }; |
Complétez le tableau en indiquant la méthode ou propriété de List<T> correspondante :
| Action souhaitée | Méthode / Propriété |
|---|---|
| Ajouter un élément à la fin de la liste | |
| Insérer un élément à l'indice 2 | |
| Supprimer la première occurrence de la valeur 15 | |
| Supprimer l'élément à l'indice 3 | |
| Vérifier si la valeur "Ali" existe dans la liste | |
| Obtenir le nombre d'éléments | |
| Trier la liste par ordre croissant | |
| Supprimer tous les éléments négatifs | |
| Vider entièrement la liste | |
| Trouver l'indice de la valeur 20 |
Déterminez l'état de la liste après chaque instruction :
| Instruction | État de la liste |
|---|---|
| Déclaration initiale | |
lst.RemoveAt(1); | |
lst.Insert(0, 5); | |
lst.Add(60); | |
lst.Remove(30); | |
lst.Reverse(); |
Sortie : ___________________________________________
Écrivez un programme qui :
List<string> contenant : "Ali", "Sara", "Omar", "Fatma", "Khaled"Écrivez un programme qui à partir d'une List<double> contenant : 14.5, 8.0, 17.25, 9.5, 11.0, 6.75, 19.0, 12.5 :
List<double> contenant uniquement les notes ≥ 10Indication : pour trier en ordre décroissant, utilisez Sort() suivi de Reverse().
Déterminez la sortie du code suivant :
Sortie :
Pour chaque action, indiquez la méthode ou syntaxe correcte :
| Action souhaitée | Code C# |
|---|---|
| Ajouter la clé "Ali" avec la valeur 85 (exception si existe) | |
| Ajouter ou mettre à jour la clé "Ali" avec la valeur 90 | |
| Vérifier si la clé "Sara" existe | |
| Supprimer la paire dont la clé est "Omar" | |
| Lire la valeur de "Ali" de manière sécurisée | |
| Obtenir le nombre de paires |
Déterminez la sortie du code suivant :
| Instruction | Sortie |
|---|---|
Console.WriteLine(d.Count); | |
Console.WriteLine(d.ContainsKey("y")); | |
Console.WriteLine(d.ContainsValue(100)); | |
Console.WriteLine(d["x"] + d["z"]); |
Écrivez un programme qui gère un répertoire téléphonique en utilisant un Dictionary<string, string> :
TryGetValueforeachÉcrivez un programme qui prend une chaîne "programmation" et utilise un Dictionary<char, int> pour compter le nombre d'occurrences de chaque caractère. Affichez le résultat.
Indication : parcourez la chaîne caractère par caractère avec foreach.
Déterminez la sortie du code suivant :
Sortie :
Indiquez si chaque affirmation est Vraie (V) ou Fausse (F) :
| Affirmation | V/F |
|---|---|
Un HashSet<T> accepte les doublons | |
On peut accéder à un élément de HashSet par indice [0] | |
Add() retourne false si l'élément existe déjà | |
La méthode Contains() a une complexité O(n) | |
IntersectWith() modifie l'ensemble sur lequel il est appelé | |
L'ordre d'insertion est garanti dans un HashSet<T> | |
ExceptWith(B) donne les éléments présents dans A mais pas dans B | |
On peut convertir un HashSet<T> en List<T> |
Déterminez la sortie du code suivant :
| Ligne | Sortie |
|---|---|
A.Add(3) | |
A.Add(6) | |
A.Count | |
| Intersection C | |
| Différence D |
Écrivez un programme qui :
List<int> : { 5, 3, 8, 3, 1, 5, 9, 1, 8, 7 }HashSet<int> pour éliminer les doublonsList<int> triéeSoient deux ensembles de modules :
Écrivez un programme qui affiche :
Complétez le tableau :
| Action | Méthode | Principe |
|---|---|---|
| Ajouter un élément à la file | ||
| Retirer et récupérer le premier élément | ||
| Consulter le premier élément sans le retirer |
Question : Que signifie l'acronyme FIFO ? __________________________________
Tracez l'état de la file après chaque instruction :
| Instruction | État de la file (début → fin) | Sortie |
|---|---|---|
Enqueue("A") | — | |
Enqueue("B") | — | |
Enqueue("C") | — | |
Dequeue() | ||
Enqueue("D") | — | |
Peek() | ||
Enqueue("E") | — | |
Dequeue() | ||
Count |
Écrivez un programme qui simule un service client :
Queue<string> et ajoutez 4 tickets : "Ticket-101", "Ticket-102", "Ticket-103", "Ticket-104""Traité : ..."whileComplétez le tableau :
| Action | Méthode | Principe |
|---|---|---|
| Empiler un élément au sommet | ||
| Dépiler et récupérer le sommet | ||
| Consulter le sommet sans dépiler |
Question : Que signifie l'acronyme LIFO ? __________________________________
Question : Donnez deux exemples concrets d'utilisation d'une pile :
1. _____________________________________________ 2. _____________________________________________
Tracez l'état de la pile après chaque instruction :
| Instruction | État de la pile (sommet à gauche) | Sortie |
|---|---|---|
Push(100) | — | |
Push(200) | — | |
Push(300) | — | |
Pop() | ||
Push(400) | — | |
Peek() | ||
Push(500) | — | |
Pop() | ||
Pop() | ||
Count |
Écrivez un programme qui utilise un Stack<char> pour inverser la chaîne "INFORMATIQUE" et affiche le résultat.
Écrivez un programme qui vérifie si une expression contient des parenthèses correctement équilibrées en utilisant un Stack<char>.
Algorithme : pour chaque caractère, si c'est ( empiler, si c'est ) dépiler (si pile vide → non équilibré). À la fin, la pile doit être vide.
Testez avec : "((a+b)*(c-d))" et "(a+(b*c))" et "(a+b))"
Pour chaque situation, indiquez la collection la plus adaptée (List<T>, Dictionary<K,V>, HashSet<T>, Queue<T>, Stack<T>) et justifiez brièvement :
| N° | Situation | Collection | Justification |
|---|---|---|---|
| 1 | Stocker les prix des produits accessibles par nom | ||
| 2 | Gérer l'historique des pages visitées pour un bouton "Retour" | ||
| 3 | Gérer les adresses e-mail d'une newsletter (pas de doublons) | ||
| 4 | Gérer une file de patients dans une salle d'attente | ||
| 5 | Stocker une liste de courses modifiable et ordonnée | ||
| 6 | Associer les matricules des étudiants à leurs noms | ||
| 7 | Implémenter la fonctionnalité Annuler (Undo) d'un éditeur de texte | ||
| 8 | Stocker les numéros de CIN des votants (chacun ne vote qu'une fois) |
Complétez le tableau comparatif :
| Critère | List<T> | Dictionary<K,V> | HashSet<T> | Queue<T> | Stack<T> |
|---|---|---|---|---|---|
| Accès par indice | |||||
| Doublons autorisés | |||||
| Ordre garanti | |||||
| Complexité recherche | |||||
| Complexité ajout |
Écrivez un programme complet qui gère un magasin :
Dictionary<string, double> pour le catalogue (produit → prix) avec 5 produitsQueue<string> pour les commandes en attente (ajoutez 4 commandes)HashSet<string> pour les clients VIP (ajoutez 3 clients)Déterminez la sortie du code suivant :
Sortie :
Explication : _____________________________________________________________
Écrivez un programme qui utilise un Dictionary<string, List<int>> pour gérer les notes de 3 étudiants :
Le programme doit :
Indication : pour parcourir un Dictionary<string, List<int>>, chaque paire.Value est une List<int>.
Déterminez la sortie du code suivant :
Sortie :