Mini-projets algorithmique, corrigé TP KNN, news, notebooks IA
This commit is contained in:
45
algorithmes/mini-projets/06_bibliotheque/sujet.md
Normal file
45
algorithmes/mini-projets/06_bibliotheque/sujet.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# 06 — La Bibliothèque
|
||||
|
||||
**Algorithmes :** Tri par sélection + Recherche dichotomique
|
||||
**Difficulté :** Moyen
|
||||
**Durée estimée :** 1h — 1h15
|
||||
|
||||
---
|
||||
|
||||
## Contexte
|
||||
|
||||
Vous gérez le catalogue d'une bibliothèque. Les livres doivent être triés par **titre alphabétique** pour qu'on puisse les retrouver rapidement. Vous utiliserez le tri par sélection pour trier, et la dichotomie pour chercher.
|
||||
|
||||
---
|
||||
|
||||
## Étapes
|
||||
|
||||
### Étape 1 — Trier par titre
|
||||
Implémentez `tri_selection_livres(livres)` qui trie par `"titre"` (ordre alphabétique).
|
||||
|
||||
> **Rappel** : en Python, `"Alice" < "Zorro"` → `True`. Vous pouvez comparer des chaînes directement.
|
||||
|
||||
### Étape 2 — Recherche dichotomique
|
||||
Implémentez `rechercher_titre(livres_tries, titre)` qui retourne le livre si trouvé, `None` sinon.
|
||||
|
||||
> **Attention** : la comparaison doit être exacte (majuscules comprises). Pour simplifier, tout est déjà en minuscules dans les données.
|
||||
|
||||
### Étape 3 — Affichage enrichi
|
||||
Implémentez `afficher_fiche(livre)` qui affiche toutes les informations d'un livre de façon lisible (titre, auteur, année, genre, pages).
|
||||
|
||||
### Étape 4 — Statistiques
|
||||
Ajoutez une fonction `statistiques(livres)` qui affiche :
|
||||
- Le nombre de livres
|
||||
- Le livre le plus court et le plus long (en pages)
|
||||
- La moyenne de pages
|
||||
|
||||
> **Indication** : une fois la liste triée par titre, vous pouvez utiliser une boucle simple pour les stats. Ou bien trier une copie par pages avec votre tri !
|
||||
|
||||
### Étape 5 — Extension (si vous avez le temps)
|
||||
Ajoutez la possibilité de trier aussi par **année** ou par **nombre de pages**, et de rechercher tous les livres d'un **même auteur** (recherche linéaire cette fois — pourquoi ne peut-on pas utiliser la dichotomie ici ?).
|
||||
|
||||
---
|
||||
|
||||
## Ce que vous devez rendre
|
||||
- Le programme fonctionnel
|
||||
- Réponse : pour chercher tous les livres d'un auteur, pourquoi la dichotomie est-elle inadaptée ?
|
||||
Reference in New Issue
Block a user