Informatique

Question

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.

1 Réponse

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

Autres questions