Le club d'athlétisme du Stade Genève vous mandate pour créer quelques programmes utiles à l'administration aux entraîneurs et aux membres du club.
Les exercices reprennent le programme d'ALP, dans l'ordre, afin de reprendre les bases.
Vous pouvez récupérer le fichier main sur GitHub: https://github.com/esig-ge/alp-tp-stade-geneve.git
Créer une fonction en_tete() qui affiche l'en-tête du stade Genève dans la sortie comme suit:
**********STADE GENEVE**********
********************************
Il suffira donc d'appeler cette fonction pour écrire l'en-tête.
Les utilisateurs de votre programme on remarqué que le titre et la taille (le nombre d'étoiles) de l'en-tête peuvent changer. Créer une fonction en_tete_mieux() capable de créer un en-tête avec titre et nombre d'étoiles paramètrable
NB1: len(chaine) donne le nombre de caractère d'une String "chaine" NB2: un caractère prend la même "place" qu'une étoile (si typo à caractère de largeur fixe comme courier)
Le programme devra être capable d'afficher la catégorie à laquelle appartient un coureur. Pour simplifier, le programme ne gère que les catégories pour les coureurs de 100m. Lorsque l'utilisateur entre ses informations, le programme lui affiche sa catégorie.
Créer ainsi une fonction _affichecateg() qui demande à l'utilisateur son nom, son genre (homme ou femme), son âge et son meilleur temps sur 100m puis qui affiche:
Appeler la fonction 3 fois depuis le main
voici les données permettant de trouver la bonne catégorie:
FEMME 1 -- pour les femmes de 18 ans et plus qui courent en 15.0 secondes et moins
FEMME 2 -- pour les femmes de 18 ans et plus qui courent en plus de 15.0 secondes
FEMME J -- pour toutes les femmes de moins de 18 ans (Junior)
HOMME 1 -- pour les hommes de 18 ans et plus qui courent en moins de 14.5 secondes
HOMME 2 -- pour les hommes de 18 ans et plus qui cournet en 16 secondes et moins (mais en plus de 14.5)
HOMME 3 -- pour les hommes de 18 ans et plus qui courent en plus de 16 secondes
HOMME J -- pour les hommes de moins de 18 ans (Junior)
Créer une fonction _reptemps() qui affiche un répertoire des temps allant de 10 à 16 secondes (tous les dixièmes de secondes) accompagné de la catégorie correspondant pour une femme de 20 ans.
10.0 -> FEMME 1
10.1 -> FEMME 1
10.2 -> FEMME 1
...
15.0 -> FEMME 1
15.1 -> FEMME 2
15.2 -> FEMME 2
...
Votre responsable vient de commenter votre code, elle trouve qu'il n'est pas suffisamment réutilisable. En effet, votre fonction _reptemps() ne marche que pour une catégorie et des temps entre 10 et 16 secondes. Il faudrait pouvoir paramétrer celà. Elle vous demande donc de faire en sorte que la fonction rep_temps() puisse afficher ses résultats pour n'importe quels genre, âge, temps mininmum et temps maximum. Elle vous conseille aussi de trouver un moyen (ajouter une fonction?) pour que votre programme soit capable de trouver et retourner (non pas afficher) une catégorie sur la base des informations nécessaires.
Copier-coller les fonction _affichecateg() et _reptemps() si vous souhaitez les ré-utiliser. Modifier et ajouter le code nécessaire et afficher les résultats pour les données suivantes:
Lorsqu'un programme demande des valeurs à un utilistaur, il doit se prémunir contre des données entrées de manière érronées. Comment pouvez-vous fair celà?
En utilisant la variable names proposée dans le main, afficher les noms de toute l'équipe comme suit:
Bob
Jane
Jack
Chloe
etc.
En utilisant les variables proposées dans le main, afficher les noms de toute l'équipe comme suit:
Bob - homme - 20 ans
Jane - femme - 22 ans
Jack - garçon - 23 ans
Chloe - femme - 20 ans
etc.
NB: Vous êtes invité-e à créer des fonctions annexes pour cette tâche
Savez-vous utiliser les 3 façons de parcourir une liste (for each, for in range et while?) et savez-vous dans quel cas les utiliser?
Afficher les noms des athlètes de moins de 30 ans (les enregistrer dans une nouvelle liste puis les afficher)
NB: Vous êtes invité-e à créer des fonctions annexes pour cette tâche
Afficher les noms des athlètes qualifiés lors de la manche 1 (qualification: chrono min homme = 13.5, chrono min femme = 14.0) (les enregistrer dans une nouvelle liste puis les afficher)
NB: Vous êtes invité-e à créer des fonctions annexes pour cette tâche
Afficher les noms des athlètes disqualifiés après la manche 1 (en utilisant la liste des qualifiés)
Créer une fonction qui retourne True si un-e athlète a effectué un chrono en dessous d'un temps passé en paramètre
Afficher les moyennes d'age de l'équipe (pour les hommes, pour les femmes et en général)
Afficher, pour une manche, le vainqueur de la course (pour les hommes, pour les femmes et en général)
Afficher, pour une manche, la liste des athlètes qui ont couru plus vite que la moyenne (hommes et femmes confondus)
Afficher, pour chaque athlète, son meilleur chrono (entre les 3 manches)
Affichez de manière harmonieuse tous les résultats sur la base de la variable resultats (qui est une liste contenant des listes) dans le main.