Aller au contenu principal

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

main.py
Sortie
>_ Prêt à exécuter…

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

main.py
Sortie
>_ Prêt à exécuter…

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

main.py
Sortie
>_ Prêt à exécuter…

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

main.py
Sortie
>_ Prêt à exécuter…

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

main.py
Sortie
>_ Prêt à exécuter…

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 :

mathrmscore=fracmathrmvitesse2fracmathrmtempstour4+mathrmagressivite\\mathrm{score} = \\frac{\\mathrm{vitesse}}{2} - \\frac{\\mathrm{temps_tour}}{4} + \\mathrm{agressivite}

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é

main.py
Sortie
>_ Prêt à exécuter…

Fonction : score global du pilote

main.py
Sortie
>_ Prêt à exécuter…

Fonction : calcul de la médiane (tri + boucle)

main.py
Sortie
>_ Prêt à exécuter…

Ajouter un pilote

main.py
Sortie
>_ Prêt à exécuter…

Afficher l'équipe avec mise en forme

main.py
Sortie
>_ Prêt à exécuter…

Filtre multi‐critères

Cas pratique

Trouver les pilotes : risque élevé AND temps < 60 AND vitesse ≥ 190.

main.py
Sortie
>_ Prêt à exécuter…

Analyse globale (statistiques)

main.py
Sortie
>_ Prêt à exécuter…

Programme principal (menu avancé)

main.py
Sortie
>_ Prêt à exécuter…

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