Exercices Supplémentaires ETS
Ce que ce chapitre apporte
- Manipuler des variables pour stocker des valeurs numériques ou textuelles.
- Utiliser des conditions pour prendre des décisions dans un programme.
- Écrire des boucles pour répéter une action.
- Construire des fonctions simples pour structurer le code.
- Créer et parcourir des listes pour manipuler plusieurs données.
Dans cet atelier Python inspiré de l'univers Fast & Furious, on va manipuler les bases du langage pour résoudre des problèmes liés à la mécanique automobile : calculs de vitesse, autonomie d'un véhicule, analyse de performances ou encore système de nitro.
Ces exercices utilisent uniquement les fondements de Python : variables, conditions, boucles, fonctions et listes.
Exercice 1, Calculer la vitesse d'un bolide (drag race)
Contexte
Dans une ligne droite de 400 mètres, la course classique du drag race, on chronomètre la voiture et l'on cherche sa vitesse moyenne. L'objectif est simple : si on dépasse 180 km/h, on obtient le titre de Street Rocket.
Exemple à compléter
Exercice 2, Peut-on finir la course ?
Contexte
On participe à une course de 50 km. La voiture consomme 8 L / 100 km. À faire d'écrire une fonction qui détermine si on peut terminer la course avec le niveau de carburant actuel.
Fonction à compléter
Exercice 3, Analyse de temps au tour
Contexte
On teste une voiture de drift sur circuit. On nous donne une liste de temps au tour. On doit identifier :
- le meilleur tour,
- le pire tour,
- le nombre de tours en dessous de 60 s.
Exemple à compléter
Exercice 4, Nitro Boost
Contexte
La voiture est équipée d'un système de nitro. Son effet dépend de la vitesse actuelle :
- vitesse < 100 → +40 km/h
- 100 ≤ vitesse < 180 → +25 km/h
- vitesse ≥ 180 → +10 km/h
À faire d'écrire une fonction qui renvoie la nouvelle vitesse.
Fonction à compléter
Exercice 5, Compte à rebours Fast & Furious
Contexte
Avant le départ d'une course de rue, on affiche un compte à rebours : 3… 2… 1… GO !!! Utiliser une boucle while pour le reproduire.
Exemple à compléter
Pour aller plus loin
FastLab Engineering : Analyse complète d'une Team de Street Racers
Bienvenue dans FastLab Engineering, un laboratoire clandestin d'analyse de performances automobiles. Le rôle : mettre au point un programme Python capable d'analyser en profondeur l'équipe de pilotes de Dom. Cette fois, on va aller plus loin : filtrage multi‐critères, statistiques, calculs avancés sur les listes… Bref : un exercice taillé pour les meilleurs ingénieurs de la team.
Contexte
On doit gérer une équipe de pilotes, chacun avec :
- nom
- vitesse max (km/h)
- temps moyen au tour (s)
- indice d'agressivité (de 1 à 10)
À partir de ces données, on devra :
- classifier les pilotes selon un risque avancé
- identifier les pilotes optimaux selon plusieurs critères
- produire des statistiques (moyenne, médiane, meilleur, pire)
- faire un classement global basé sur une formule métier
- filtrer selon plusieurs seuils à la fois
- normaliser certaines valeurs
Règles métier avancées
1. Niveau de risque avancé
Le risque dépend de deux facteurs :
- vitesse max
- indice d'agressivité
Règle
- Si vitesse ≥ 200 et agressivité ≥ 7 → Risque Élevé
- Si vitesse ≥ 180 ou agressivité ≥ 5 → Risque Moyen
- Sinon → Risque Faible
2. Score global de pilote (pour le classement)
À calculer :
Plus le score est élevé, plus le pilote est performant.
3. Médiane
La médiane est définie comme :
- si nombre impair : valeur du milieu
- si nombre pair : moyenne des deux valeurs du milieu
Les étudiants devront l'implémenter manuellement (tri + calcul).
Programme à compléter
Fonction : calcul du risque avancé
Fonction : score global du pilote
Fonction : calcul de la médiane (tri + boucle)
Ajouter un pilote
Afficher l'équipe avec mise en forme
Filtre multi‐critères
Cas pratique
Trouver les pilotes : risque élevé AND temps < 60 AND vitesse ≥ 190.
Analyse globale (statistiques)
Programme principal (menu avancé)
Bonus
Défis supplémentaires
- Normaliser toutes les vitesses sur 0-1
- Refaire le classement global avec une boucle de tri maison
- Ajouter une fonction qui détecte un “pilote instable” (forte agressivité + score irrégulier)
- Ajouter un menu “Top 3” basé sur les scores globaux