Commit 30d9c6863cdadd67a0993be9795325f0878c7dd9

Authored by jdequidt
1 parent c3bfddce

✚ ajout d'explications via une section annexe

Showing 1 changed file with 89 additions and 26 deletions   Show diff stats
README.md
1 1 # Tutorat de Programmation Avancée (IMA3 - 2017/2018)
2 2  
3   -Ce dépôt `GIT` contient le sujet et les données utiles pour la réalisation du
  3 +Ce dépôt `GIT` contient le sujet et les données utiles pour la réalisation du
4 4 _petit_ projet du module de Programmation Avancée.
5 5  
6   -> __Attention__: ce dépôt risque d'évoluer au cours de l'avancée des projets.
  6 +> __Attention__: ce dépôt risque d'évoluer au cours de l'avancée des projets.
7 7 N'hésitez pas à le consulter régulièrement.
8 8  
9 9 ## Résumé
10 10  
11   -L'objectif de ce projet est de vérifier que vous maîtrisez les principes vus en
12   -cours de programmation avancée : structures de données complexes,
13   -lecture / écriture de fichiers, compilation séparée et automatique, utilisation
  11 +L'objectif de ce projet est de vérifier que vous maîtrisez les principes vus en
  12 +cours de programmation avancée : structures de données complexes,
  13 +lecture / écriture de fichiers, compilation séparée et automatique, utilisation
14 14 de gestionnaire de version...
15 15  
16   -Pour cela, le travail demandé est de réaliser une application qui permet
  16 +Pour cela, le travail demandé est de réaliser une application qui permet
17 17 d'analyser les résultats d'une compétition sportive à laquelle ont participé plus
18   -de 200 000 personnnes. Votre travail est de charger ce fichier pour effectuer un
19   -certain nombre de requêtes (classement, recherche d'un club, du score d'un
  18 +de 200 000 personnnes. Votre travail est de charger ce fichier pour effectuer un
  19 +certain nombre de requêtes (classement, recherche d'un club, du score d'un
20 20 athlète...)
21 21  
22 22 ## Contexte
23 23  
24   -Le CrossFit est une méthode de conditionnement physique combine principalement
25   -la force athlétique, l'haltérophilie, la gymnastique et les sports d'endurance.
26   -Le mot CrossFit vient de Cross Fitness (en français, entraînement croisé),
27   -appelé ainsi parce qu'il mélange différentes activités physiques et sportives
28   -préexistantes (source [Wikipedia](https://fr.wikipedia.org/wiki/CrossFit)). Tous
  24 +Le CrossFit est une méthode de conditionnement physique combine principalement
  25 +la force athlétique, l'haltérophilie, la gymnastique et les sports d'endurance.
  26 +Le mot CrossFit vient de Cross Fitness (en français, entraînement croisé),
  27 +appelé ainsi parce qu'il mélange différentes activités physiques et sportives
  28 +préexistantes (source [Wikipedia](https://fr.wikipedia.org/wiki/CrossFit)). Tous
29 29 les ans a lieu une compétition (Crossfit Games) ouverte à tous en utilisant un
30   -système de sélection en ligne. La première phase de cette compétition (les _Open_)
31   -a lieu habituellement au mois de Mars et s'est donc terminée pour l'édition 2018.
  30 +système de sélection en ligne. La première phase de cette compétition (les _Open_)
  31 +a lieu habituellement au mois de Mars et s'est donc terminée pour l'édition 2018.
32 32 Elle comporte 5 épreuves différentes qui sont utilisées pour calculer le score et
33   -le classement global. Tous les résultats sont disponibles sur le site web
34   -[games.crossfit.com](https://games.crossfit.com/) et via une API qui permet de
35   -télécharger l'intégralité des résultats.
36   -
37   -Les données sont stockées dans un fichier `CSV` (_comma-separated values_) qui
38   -est un format texte permettant de stocker des tableaux. Chaque ligne du fichier
39   -correspond à une ligne du tableau et les différents éléments d'une ligne sont
40   -séparés par un élément particulier (en général une virgule `,` mais d'autres sont
41   -possibles `\t`, `;`...). La première ligne sert à décrire le nom des différents
  33 +le classement global. Tous les résultats sont disponibles sur le site web
  34 +[games.crossfit.com](https://games.crossfit.com/) et via une API qui permet de
  35 +télécharger l'intégralité des résultats.
  36 +
  37 +Les données sont stockées dans un fichier `CSV` (_comma-separated values_) qui
  38 +est un format texte permettant de stocker des tableaux. Chaque ligne du fichier
  39 +correspond à une ligne du tableau et les différents éléments d'une ligne sont
  40 +séparés par un élément particulier (en général une virgule `,` mais d'autres sont
  41 +possibles `\t`, `;`...). La première ligne sert à décrire le nom des différents
42 42 champs. Par exemple sur le fichier qui nous intéresse :
43 43  
44 44 ~~~
... ... @@ -48,5 +48,68 @@ athId,regId,divId,lastName,firstName,gender,age,weight,height,affiliateId,affili
48 48 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
49 49 ~~~
50 50  
51   -Le premier champ correspond à l'identifiant de l'athlète (`180541`), le
52   -quatrième à son nom de famille `Vigneault`, le cinquième à son prénom `Alex`...
53 51 \ No newline at end of file
  52 +Le premier champ correspond à l'identifiant de l'athlète (`180541`), le
  53 +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
  54 +
  55 +## Annexe
  56 +
  57 +### Description des champs du tableau `CSV`
  58 +
  59 +- `athId` : identifiant de l'athlète [`entier`]
  60 +- `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`]
  61 +- `divId` : la division de l'athlète (catégorie en fonction de l'âge) [`entier`]
  62 +- `lastName` : nom de famille [`chaîne de caractères`]
  63 +- `firstName` : prénom [`chaîne de caractères`]
  64 +- `gender` : genre (M ou F) [`caractère`]
  65 +- `age` : age [`entier`]
  66 +- `weight` : poids en livres (_lbs_) ou kilogrammes (_kg_) [`chaîne de caractères`]
  67 +- `height` : taille en pouces (_in_) ou centimètres (_cm_) [`chaîne de caractères`]
  68 +- `affiliateId` : identifiant de la salle où l'athlète est adhérent [`entier`]
  69 +- `affiliateName` : nom de la salle où l'athlète est adhérent [`chaîne de caractères`]
  70 +- `overallScore` : score global [`entier`]
  71 +- `overallRank` : rang dans le classement général [`entier`]
  72 +- `18.x score` : score de la __x__ ième épreuve [`entier`]
  73 +- `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`]
  74 +- `18.x rank` : classement de la __x__ ième épreuve [`entier`]
  75 +
  76 +### Détail des épreuves
  77 +
  78 +> A priori vous n'en avez pas besoin pour le sujet mais on ne sait jamais 😎
  79 +
  80 +- [Workout 18.1](https://games.crossfit.com/workouts/open/2018/1)
  81 +
  82 +~~~
  83 +Complete as many rounds as possible in 20 minutes of:
  84 +8 toes-to-bars
  85 +10 dumbbell hang clean and jerks
  86 +14-cal. row
  87 +~~~
  88 +
  89 +- [Workout 18.2](https://games.crossfit.com/workouts/open/2018/2)
  90 +
  91 +~~~
  92 +1-2-3-4-5-6-7-8-9-10 reps for time of:
  93 +Dumbbell squats
  94 +Bar-facing burpees
  95 +
  96 +Workout 18.2a
  97 +1-rep-max clean
  98 +
  99 +Time cap: 12 minutes to complete 18.2 AND 18.2a
  100 +~~~
  101 +
  102 +-- [Workout 18.3](https://games.crossfit.com/workouts/open/2018/3)
  103 +
  104 +~~~
  105 +2 rounds for time of:
  106 +100 double-unders
  107 +20 overhead squats
  108 +100 double-unders
  109 +12 ring muscle-ups
  110 +100 double-unders
  111 +20 dumbbell snatches
  112 +100 double-unders
  113 +12 bar muscle-ups
  114 +
  115 +Time cap: 14 minutes
  116 +~~~
54 117 \ No newline at end of file
... ...