Le don à une association
Corentin décide de soutenir financièrement une association pour encourager les actions menées. La première année il donne 100€. Chaque année il augmente de 10% la somme donnée, donc le don de la deuxième année est de 110€.
- 1
Quelle est la somme donnée la troisième année ? Donne ta réponse dans la variable
don_3
Solution
Elle donne 10% de plus que l'année 2 donc
don_3 = 110 + 110 * 10 / 100
que l'on peut aussi écrire en factorisant par 110don_3 = 110 * (1 + 10/100)
. Autrement dit il faut multiplier le don de l'année 2 par 1,1 qui le coefficient multiplicateur que cette augmentation de 10%. Ce qui donne 121don_3 = 121
- 2
À l'aide du coefficient multiplicateur détermine le don de la dixième année. Donne ta réponse dans une variable
don_10
. Tu peux utiliser une puissance...Solution
Le don de la deuxième année est , le don de la troisième année est (on multiplie deux fois par 1,1)
Pour chaque année qui passe on ajoute une multiplication par 1,1 donc pour avoir le don de la dixième année il faut multiplier neuf fois :
Donc finalement le don de la dixième année est donnée par
don_3 = 121 don_10 = 100 * 1.1 ** 9
- 3
Quelle est la somme totale donnée sur les trois premières années ? Donne ta réponse dans la variable
don_total_3
Solution
Le don total sur les trois premières années est la somme ce qui donne 331
don_total_3 = 331
- 4
Corentin souhaite connaître à l'avance le montant total qu'il va donner sur les dix premières années.
Crée une variable
don
initialisée à 0 puis utilise une boucle for pour parcourir l'ensemble des années et incrémenter la variabledon
.Solution
Pour parcourir les dix années on peut utiliser
range(10)
ourange(1, 11)
. Ce choix va influencer la suite du code car ici l'incrémentation dépend de l'année.Si on utilise
range(10)
alors on compte les années de 0 à 9. Si on utiliserange(1, 11)
alors on compte les années de 1 à 10. Ce deuxième choix est plus proche de la formulation du problème. C'est ce qu'on utilise dans la suite.L'incrémentation dépend de l'année car on a vu que l'année
n
(en comptant à partir de 1) Corentin donne €, quantité par laquelle il faut incrémenterdon
cette année là. Donc dans ce cas l'incrément estdon = don + 100 * 1.1 ** (n-1)
On utilise un
print
en-dehors de la boucle pour afficher uniquement le résultat finaldon = 0 for n in range(1, 11): don = don + 100 * 1.1 ** (n-1) print(don)
- 5
Crée une fonction
don_total
dont le corps contient la boucle for précédente. Cette fonction prend l'année en argument, par exempledon_total(12)
renvoie la somme totale donnée par Corentin sur les douze premières années.Solution
On insère l'entête de la fonction
don_total
à la ligne 1. Cette fonction dépend d'une variable qui représente l'année, notons làm
par exemple carn
est déjà utilisé dans la boucle for.Ensuite on indente tout le code de la question précédente dans la fonction.
Il faut également adapter la boucle pour qu'elle fasse les calculs de l'année 1 à
m
inclus donc on modifie lerange
enrange(1, m+1)
Enfin on utilise un
return
à la place duprint
pour renvoyer la valeur du don total.def don_total(m): don = 0 for n in range(1, m+1): don = don + 100 * 1.1 ** (n-1) return don
- 6
Quel est le don total de Corentin sur vingt ans ? Utilise ta fonction
don_total
dans la console pour obtenir le résultat. Tu peux arrondir le résultat renvoyer par la fonction aux centimes.Solution
Pour un résultat plus lisible arrondissons d'abord au centime le résultats renvoyé par
don_total
à l'aide de la fonctionround
def don_total(m): don = 0 for n in range(1, m+1): don = don + 100 * 1.1 ** (n-1) return round(don, 2)
On obtient alors dans la console
>>> don_total(20) 5727.5