Contenu principal
Chapitre 5 · La boucle while › Leçon 5 sur 5

L'argent de poche

Yves reçoit de ses parents de l'argent de poche chaque mois. Le premier mois, il reçoit 30€ et chaque mois ses parents augmente le montant donné de 5€. Donc le deuxième mois il dispose en tout de 65€.

Yves décide de ne pas utiliser son argent avant d'avoir 400€.

  1. 1

    De combien d'argent dispose Yves au bout de trois mois ? Donne ta réponse dans la variable cash_3

    Solution

    Le premier mois Yves reçoit 30€, le deuxième mois 35 et le troisième 40. Donc en tout il dispose de 30+35+40=10530 + 35 + 40 = 105€ au bout de trois mois.

    cash_3 = 105
  2. 2

    Yves souhaite savoir dans combien de temps son objectif sera atteint.

    Rédige une boucle while pour aider Yves à trouver la réponse. Procède par étapes : quels sont les paramètres du problème ? Quelle condition faut-il vérifier dans la boucle while ? Comment réassigner les variables ? N'oublie pas de vérifier la condition d'arrêt.

    Solution

    Il nous faut un compteur m que l'on va incrémenter de 1 chaque mois, ainsi qu'une variable cash qui contient le total d'argent de poche après m mois.

    On initialise ces deux variables à 0 et c'est la boucle while qui va les incrémenter.

    Tant qu'il y a moins de 400€, Yves continue d'économiser, donc la condition d'arrêt est cash < 400 : dès qu'il y a 400€ ou plus, Yves arrête d'attendre.

    Ensuite, dans le corps de la boucle while, il faut incrémenter les variables m et cash. Le compteur est incrémenté de un en un avec m = m + 1.

    Le mois 2 l'argent de poche total augmente de 35 (ou 30+1×530 + 1 \times 5 ), le mois 3 l'argent augment de 40 (ou 30+2×530 + 2 \times 5). Donc au mois m l'argent de poche augmente de 30+(m1)×530 + (m-1) \times 5

    Donc on peut réassigner cash avec cash = cash + 30 + (m-1) * 5

    m = 0
    cash = 0
    
    while cash < 400:
        m = m + 1
        cash = cash + 30 + (m - 1) * 5
    
    print(m)
  3. 3

    Lorsque Yves dépense son argent, ses parents recommencent à lui donner 30€ puis 35€ etc.

    Défini une fonction objectif qui reprend le code de la question précédente, et qui accepte un argument pour personnaliser l'objectif. Par exemple pour savoir dans combien de temps le seuil de 400€ est atteint on appelle objectif(400)

    Pour l'argument, utilise un nom de variable différent des autres variables de ton code. Tu peux supprimer la variable cash_3 qui ne sert plus.

    Solution

    On place le code de la question précédente dans le corps d'une fonction objectif. Cette fonction prend un argument, le seuil à atteindre que l'on peut noter s

    Il faut ensuite remplacer la condition d'arrêt qui devient cash < s puisque la boucle while s'exécute tant que le seuil n'est pas atteint ou dépassé.

    On remplace également le print par un return

    def objectif(s):
        m = 0
        cash = 0
    
        while cash < s:
            m = m + 1
            cash = cash + 30 + (m - 1) * 5
    
        return m
  4. 4

    Yves a dépensé son argent et se fixe un nouvel objectif d'économiser jusqu'à avoir 600€. Dans combien de temps cet objectif sera atteint ? Utilise la fonction objectif dans la console pour avoir la réponse.

    Solution

    Pour obtenir le nombre de mois à attendre, on appelle dans la console la fonction objectif avec en argument un seuil de 600

    >>> objectif(600)
    11
    

Chargement...

Collecte des fichiers...

>>>