cnam:utc503:td3-c

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
cnam:utc503:td3-c [2025/10/21 11:30] – [Données de départ] jcheroncnam:utc503:td3-c [2025/10/21 11:36] (Version actuelle) jcheron
Ligne 35: Ligne 35:
   * Ne jamais modifier les tableaux originaux   * Ne jamais modifier les tableaux originaux
   * Privilégier map, filter, reduce   * Privilégier map, filter, reduce
 +
 +===== 2 - Playlist Fonctionnelle =====
 +
 +Gérez une playlist musicale en programmation fonctionnelle.
 +
 +==== Données de départ ====
 +<sxh js>
 +const chansons = [
 +  { titre: 'Bohemian Rhapsody', artiste: 'Queen', duree: 354, genre: 'rock', annee: 1975 },
 +  { titre: 'Billie Jean', artiste: 'Michael Jackson', duree: 294, genre: 'pop', annee: 1982 },
 +  { titre: 'Smells Like Teen Spirit', artiste: 'Nirvana', duree: 301, genre: 'rock', annee: 1991 },
 +  { titre: 'One More Time', artiste: 'Daft Punk', duree: 320, genre: 'electro', annee: 2000 },
 +  { titre: 'Wonderwall', artiste: 'Oasis', duree: 258, genre: 'rock', annee: 1995 },
 +  { titre: 'Get Lucky', artiste: 'Daft Punk', duree: 367, genre: 'electro', annee: 2013 }
 +]
 +</sxh>
 +
 +==== Objectifs ====
 +=== Filtrer la playlist : ===
 +  * Garder seulement les morceaux de rock
 +  * Garder les chansons de moins de 5 minutes (300 secondes)
 +  * Garder les chansons des années 90 (1990-1999)
 +=== Transformer les données avec map : ===
 +  * Convertir la durée en format "minutes:secondes" (ex: "5:54")
 +  * Créer un nouveau tableau avec seulement {titre, artiste}
 +  * Ajouter une propriété label : "titre - artiste"
 +
 +=== Calculer avec reduce : ===
 +  * La durée totale de la playlist (en minutes)
 +  * Le nombre de chansons par genre
 +  * L'année moyenne de sortie
 +=== Composer des fonctions : ===
 +  * Créer une fonction qui filtre par genre ET trie par année
 +  * Créer une "mini-playlist" : 3 chansons aléatoires de moins de 5 min
 +
 +
 +
 +==== Contraintes ====
 +
 +  * Utiliser uniquement des fonctions pures
 +  * Ne jamais modifier le tableau original
 +  * Privilégier map, filter, reduce, sort
 +  * Pas de boucles for / while
 +  * Pas de variables réassignées (let)
  • cnam/utc503/td3-c.txt
  • Dernière modification : il y a 3 semaines
  • de jcheron