Aller au contenu

La course cycliste⚓︎

Une course cycliste se dispute.

course
source : Wikipedia

Chaque cycliste est identifié par un numéro de dossard : "Nadia-01", "Franck-64"

Les cyclistes se doublent les uns les autres durant la course.

Il peut arriver qu'un cycliste crève, et se fasse doubler par tous les autres coureurs et se retrouve à la dernière place.

Les coureurs sont identifiés par leur prénom et leurs positions sont stockées de façon ordonnée dans un tableau.

Exemple :

🐍 Script Python
course = ["Nadia-01", "Franck-64", "Thomas-31", "Elizabeth-22", "Laure-66"]
Dans cet exemple, Nadia est la première et Laure la dernière.

  • Créer la fonction premier qui prend en paramètre le tableau qui stocke la course et qui renvoie le coureur en première position de la course.
🐍 Console Python
>>> premier(course)
"Nadia-01"
  • Créer la fonction dernier qui prend en paramètre le tableau qui stocke la course et qui renvoie le coureur en dernière position de la course.
🐍 Console Python
>>> dernier(course)
"Laure-66"
  • Créer la fonction position qui prend en paramètre le tableau qui stocke la course et le numéro de dossard et qui renvoie sa position dans la course.
🐍 Console Python
>>> position("Thomas-31")
2
  • Créer la fonction double qui prend en paramètre le tableau qui stocke la course et le dossard d'un coureur et modifie le tableau avec le coureur qui est passé devant le coureur précédent.
🐍 Console Python
>>> double(course, "Franck-64")
>>> premier(course)
"Franck-64"
  • Créer la fonction crevaison qui prend en paramètre le tableau qui stocke la course et le dossard d'un coureur qui a crevé et modifie le tableau. On partira du principe que tous les coureurs derrière le malchanceux coureur le doublent jusqu'à ce que le coureur soit le dernier. On utilisera obligatoirement les fonctions double et dernier.
🐍 Console Python
>>> crevaison(course, "Thomas-31")
>>> dernier(course)
"Thomas-31"
course = ["Nadia", "Eric", "Thomas", "Elizabeth", "Laure"]bksl-nlassert premier(course) == "Nadia"bksl-nlassert dernier(course) == "Laure"bksl-nldouble(course, 3)bksl-nlassert course == ["Nadia", "Eric", "Elizabeth", "Thomas", "Laure"]bksl-nlcrevaison(course, 1)bksl-nlassert course == ["Nadia", "Elizabeth", "Thomas", "Laure", "Eric"]bksl-nlbksl-nl ∞/∞

def premier(classement):bksl-nl ...bksl-nlbksl-nldef dernier(...):bksl-nl ...bksl-nl bksl-nldef double(...):bksl-nl ...bksl-nl bksl-nldef crevaison(...):bksl-nl ...bksl-nlbksl-nldef premier(classement):bksl-nl return classement[0]bksl-nlbksl-nlbksl-nldef dernier(classement):bksl-nl dernièrepy-undposition = len(classement)-1bksl-nl return classement[dernièrepy-undposition]bksl-nlbksl-nlbksl-nldef double(classement, position):bksl-nl assert position > 0, "Le premier ne peut doubler personne"bksl-nl assert position < len(classement), "Pas assez de coureurs"bksl-nl coureurpy-unddouble = classement[position-1]bksl-nl classement[position-1] = classement[position]bksl-nl classement[position] = coureurpy-unddoublebksl-nlbksl-nlbksl-nldef crevaison(classement, position):bksl-nl assert position < len(classement), "Pas assez de coureurs"bksl-nl malchanceux = classement[position]bksl-nl while malchanceux != dernier(classement):bksl-nl double(classement, position+1)bksl-nl position += 1bksl-nlbksl-nlbksl-nl

A

Z

Retour en haut de la page