👤

Bonjour à tous, j’ai besoin d’aide pour mon exercice de SNT niveau seconde
En espérant avoir une réponse:)
Mercii et passez une bonne journée!

Deux cyclistes, Nestor et Émile,
ont programmé un entraînement
hebdomadaire afin de se préparer
à une course qui aura lieu dans
quelques mois. Nestor commence
son entraînement en parcourant
40 km la première semaine et prévoit
d'augmenter cette distance de 5 km
par semaine. Émile commence son
entraînement en parcourant 30 km la première semaine et
prévoit d'augmenter cette distance de 10 % par semaine.
1. Écrire un programme qui affiche la semaine où Émile
parcourra pour la première fois une distance supérieure à
celle parcourue par Nestor.
2. Exécuter ce programme, et conclure.


Répondre :

Bonjour

Ce qu'on va faire, c'est traduire l'énoncé en code, partie par partie.

- La première chose qu'on peut définir c'est les 3 données (Distance parcourue par Émile, celle parcourue par Nestor et le nombre de semaine).

▌  nestor = 40

▌  emile = 30

▌  semaine = 1

Donc en fait là on a déjà défini les valeurs après la première semaine.

- Maintenant on va remettre en code les infos qu'on nous donne sur ce qui arrive aux valeurs après une seconde semaine passée.

  • Nestor parcourra la même distance que la semaine passé à laquelle on ajoute 5km.
  • Émile parcourra la même distance que la semaine passé à laquelle on ajoute 10% de sa valeur.

Donc si on veut avoir les valeurs de la seconde semaine, cela donnerait:

▌  nestor += nestor + 5

▌  emile += emile + (emile/100)*10

▌  semaine += 1

NB: Ici, j'utilise += pour dire que ce qui suit doit s'additionner à la valeur existante, donc semaine gagnera 1 par exemple, alors qu'avec l'opérateur = cela redéfinit strictement la valeur.

Après cela risquerait d'être long de répéter ce code jusqu'à obtenir les valeurs qu'on recherche, je te propose plutôt d'utiliser une boucle while.

- La boucle while servira à exécuter un code "en boucle" tant qu'on certaine affirmation n'est pas vérifiée, ici on demandera de répéter notre boucle tant que la valeur de emile est inférieure à celle de nestor.

▌  while emile < nestor:

▌       nestor += nestor + 5

▌       emile += emile + (emile/100)*10

▌       semaine += 1

Dans la boucle, j'ai ajouté le code qu'on a trouvé plus haut servant à incrémenter les valeurs pour chaque semaine.

- Ce qui serait encore utile c'est de demander l'affichage des valeurs à la fin de notre code, donc simplement des print().

▌  print("Nestor:",nestor,"km")

▌  print("Émile:",emile,"km")

▌  print(semaine, "semaines")

Je te laisse refaire le code par toi-même, si tu le fais correctement tu es sensé obtenir 10 semaines.

Si tu as mal compris quelque chose ou que tu as encore des questions (à propos de ce devoir)

Bonne soirée ! ;)