diff --git a/README.md b/README.md index 4dbab61..d542a76 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,44 @@ # Tutorat de Programmation Avancée (IMA3 - 2017/2018) -Ce dépôt `GIT` contient le sujet et les données utiles pour la réalisation du +Ce dépôt `GIT` contient le sujet et les données utiles pour la réalisation du _petit_ projet du module de Programmation Avancée. -> __Attention__: ce dépôt risque d'évoluer au cours de l'avancée des projets. +> __Attention__: ce dépôt risque d'évoluer au cours de l'avancée des projets. N'hésitez pas à le consulter régulièrement. ## Résumé -L'objectif de ce projet est de vérifier que vous maîtrisez les principes vus en -cours de programmation avancée : structures de données complexes, -lecture / écriture de fichiers, compilation séparée et automatique, utilisation +L'objectif de ce projet est de vérifier que vous maîtrisez les principes vus en +cours de programmation avancée : structures de données complexes, +lecture / écriture de fichiers, compilation séparée et automatique, utilisation de gestionnaire de version... -Pour cela, le travail demandé est de réaliser une application qui permet +Pour cela, le travail demandé est de réaliser une application qui permet d'analyser les résultats d'une compétition sportive à laquelle ont participé plus -de 200 000 personnnes. Votre travail est de charger ce fichier pour effectuer un -certain nombre de requêtes (classement, recherche d'un club, du score d'un +de 200 000 personnnes. Votre travail est de charger ce fichier pour effectuer un +certain nombre de requêtes (classement, recherche d'un club, du score d'un athlète...) ## Contexte -Le CrossFit est une méthode de conditionnement physique combine principalement -la force athlétique, l'haltérophilie, la gymnastique et les sports d'endurance. -Le mot CrossFit vient de Cross Fitness (en français, entraînement croisé), -appelé ainsi parce qu'il mélange différentes activités physiques et sportives -préexistantes (source [Wikipedia](https://fr.wikipedia.org/wiki/CrossFit)). Tous +Le CrossFit est une méthode de conditionnement physique combine principalement +la force athlétique, l'haltérophilie, la gymnastique et les sports d'endurance. +Le mot CrossFit vient de Cross Fitness (en français, entraînement croisé), +appelé ainsi parce qu'il mélange différentes activités physiques et sportives +préexistantes (source [Wikipedia](https://fr.wikipedia.org/wiki/CrossFit)). Tous les ans a lieu une compétition (Crossfit Games) ouverte à tous en utilisant un -système de sélection en ligne. La première phase de cette compétition (les _Open_) -a lieu habituellement au mois de Mars et s'est donc terminée pour l'édition 2018. +système de sélection en ligne. La première phase de cette compétition (les _Open_) +a lieu habituellement au mois de Mars et s'est donc terminée pour l'édition 2018. Elle comporte 5 épreuves différentes qui sont utilisées pour calculer le score et -le classement global. Tous les résultats sont disponibles sur le site web -[games.crossfit.com](https://games.crossfit.com/) et via une API qui permet de -télécharger l'intégralité des résultats. - -Les données sont stockées dans un fichier `CSV` (_comma-separated values_) qui -est un format texte permettant de stocker des tableaux. Chaque ligne du fichier -correspond à une ligne du tableau et les différents éléments d'une ligne sont -séparés par un élément particulier (en général une virgule `,` mais d'autres sont -possibles `\t`, `;`...). La première ligne sert à décrire le nom des différents +le classement global. Tous les résultats sont disponibles sur le site web +[games.crossfit.com](https://games.crossfit.com/) et via une API qui permet de +télécharger l'intégralité des résultats. + +Les données sont stockées dans un fichier `CSV` (_comma-separated values_) qui +est un format texte permettant de stocker des tableaux. Chaque ligne du fichier +correspond à une ligne du tableau et les différents éléments d'une ligne sont +séparés par un élément particulier (en général une virgule `,` mais d'autres sont +possibles `\t`, `;`...). La première ligne sert à décrire le nom des différents champs. Par exemple sur le fichier qui nous intéresse : ~~~ @@ -48,5 +48,68 @@ athId,regId,divId,lastName,firstName,gender,age,weight,height,affiliateId,affili 881332,17,1,Vinas,Tommy,M,21,200 lb,71 in,17152,Zero Machine CrossFit,212,3,14490000,449 reps,132,11100452,4:28,58,13650452,365 lb,22 ~~~ -Le premier champ correspond à l'identifiant de l'athlète (`180541`), le -quatrième à son nom de famille `Vigneault`, le cinquième à son prénom `Alex`... \ No newline at end of file +Le premier champ correspond à l'identifiant de l'athlète (`180541`), le +quatrième à son nom de famille `Vigneault`, le cinquième à son prénom `Alex`... En ce qui concerne les champs après `overallRank` ils correspondent au nom de l'épreuve (`18.1` signifiant première épreuve de l'édition 2018). Comme pour toutes les éditions, il y a 5 épreuves par compétition. Pour plus de détails sur chacun des champs, vous pouvez consulter l'annexe + +## Annexe + +### Description des champs du tableau `CSV` + +- `athId` : identifiant de l'athlète [`entier`] +- `regId` : identifiant de la région du monde, voir [ici](https://games-support.crossfit.com/article/100-what-are-the-boundaries-of-the-crossfit-games-regions-what-states-countries-are-included-in-each) [`entier`] +- `divId` : la division de l'athlète (catégorie en fonction de l'âge) [`entier`] +- `lastName` : nom de famille [`chaîne de caractères`] +- `firstName` : prénom [`chaîne de caractères`] +- `gender` : genre (M ou F) [`caractère`] +- `age` : age [`entier`] +- `weight` : poids en livres (_lbs_) ou kilogrammes (_kg_) [`chaîne de caractères`] +- `height` : taille en pouces (_in_) ou centimètres (_cm_) [`chaîne de caractères`] +- `affiliateId` : identifiant de la salle où l'athlète est adhérent [`entier`] +- `affiliateName` : nom de la salle où l'athlète est adhérent [`chaîne de caractères`] +- `overallScore` : score global [`entier`] +- `overallRank` : rang dans le classement général [`entier`] +- `18.x score` : score de la __x__ ième épreuve [`entier`] +- `18.x scoreDisplay` : résultat de la __x__ ième épreuve, nombre de répétitions (_reps_) ou temps ou charge (_lbs_) [`chaîne de caractères`] +- `18.x rank` : classement de la __x__ ième épreuve [`entier`] + +### Détail des épreuves + +> A priori vous n'en avez pas besoin pour le sujet mais on ne sait jamais 😎 + +- [Workout 18.1](https://games.crossfit.com/workouts/open/2018/1) + +~~~ +Complete as many rounds as possible in 20 minutes of: +8 toes-to-bars +10 dumbbell hang clean and jerks +14-cal. row +~~~ + +- [Workout 18.2](https://games.crossfit.com/workouts/open/2018/2) + +~~~ +1-2-3-4-5-6-7-8-9-10 reps for time of: +Dumbbell squats +Bar-facing burpees + +Workout 18.2a +1-rep-max clean + +Time cap: 12 minutes to complete 18.2 AND 18.2a +~~~ + +-- [Workout 18.3](https://games.crossfit.com/workouts/open/2018/3) + +~~~ +2 rounds for time of: +100 double-unders +20 overhead squats +100 double-unders +12 ring muscle-ups +100 double-unders +20 dumbbell snatches +100 double-unders +12 bar muscle-ups + +Time cap: 14 minutes +~~~ \ No newline at end of file -- libgit2 0.21.2