Explorez une vaste gamme de sujets et obtenez des réponses sur Zoofast.fr. Trouvez les informations dont vous avez besoin rapidement et facilement avec l'aide de notre réseau de professionnels expérimentés.

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.

Sagot :

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 ! ;)