Connexion
Revenir au blog

Comment écrire un programme Python pour faire les calculs à notre place ?

Prenons un cas très concret.

Imaginons que l'on a un collier dont le prix est de 35€.

Tous les mois, son prix augmente de 3%.

On aimerais déterminer au bout de combien de mois, le prix du collier va t-il dépasser 300€ ?

Les Maths sont nos amies

On va commencer par résoudre ce problème grâce aux maths.

Augmenter une quantité de 3% revient à la multiplier par 1.03 (on obtient ce résultat en remarquant qu'augmenter de 3% reviens à faire 100% + 3% = 103% = \(\frac{103}{100}=1.03\)).

On est donc le cas d'une suite géométrique, puisque chaque mois on multiplie par 1.03.

Ainsi, on peut donner la forme explicite de notre suite (imaginons qu'on l'appelle u).

On aura donc \( u_n=u_0\cdot 1.03^n\) , où \(u_0=35\) c'est à dire le prix initial du collier et \(u_n\) le prix du collier au bout de n mois.

Ainsi, \( u_n=35\cdot 1.03^n\) On cherche donc n (le nombre de mois) tel que \( u_n > 300\) (le prix dépasse 300€).

On aura donc

\(35\cdot 1.03^n > 300\)

\( \Leftrightarrow 1.03^n > \frac{300}{35}\).

Et là, on va appliquer la fonction logarithme pour faire "descendre" la puissance que l'on cherche car

\( ln(a^b)=bln(a)\) pour \(a>0\).

Ainsi, on aura

\( ln(1.03^n) > ln(\frac{300}{35})\)

\( \Leftrightarrow n\cdot ln(1.03) > ln(\frac{300}{35})\)

\(\Leftrightarrow n > \frac{ln(\frac{300}{35})}{ln(1.03}=72.6\).

Le collier va donc dépasser 300€ après 72.6 mois c'est à dire après 73 mois puisqu'on prend des valeurs entières pour les mois.

Bon, c'était pas super compliqué, mais si un ordinateur pouvait le faire pour nous, ce serait top, non ?

Python is your friend !

Un programme en Python (et plus généralement en informatique) est toujours construit de la même façon.

Tout d'abord, on doit donner les informations de départ.

Ici, on a deux informations à suivre: le prix du collier et le nombre de mois.

On devra donc créer deux variables (ce sont des boîtes qui contiennent une seule information).

Par exemple, cela peut être:

La boucle

Ensuite, il faut qu'on rentre dans la boucle du programme, là où l'algorithme va faire les calculs.

Il existe deux boucles.

La boucle for, lorsqu'on sait jusqu'à quand on doit faire les calculs (ici ce n'est pas notre cas car on ne sait pas à quel mois on doit s'arrêter) et le boucle while (qui est utilisée lorsqu'on doit dépasser une certaine valeur).

Ici, on pourrait se dire que, tant que le prix du collier n'a pas dépassé 300€, l'ordinateur doit calculer le prix du collier du mois suivant.

Une boucle "tant que" est une boucle while.

Ainsi, on va avoir:

while prix < 300:

\( \quad\) Prix = \(35\cdot 1.03 \) ce qui se traduit par "dans la variable prix, tu met 1.03 fois la valeur qu'il y avait dans prix"

\( \quad\) Mois = Mois + 1 ce qui se traduit par "dans la variable mois, tu stocke la valeur qui était dedans + 1 et qui permet donc de suivre l'évolution du nombre de mois"

Et en conclusion, la récompense

Après tous ces efforts pour bien construire le programme, il est temps de demandé à l'ordinetrur de nous afficher le résultat tant espéré.

Pour cela, on va utiliser la fonction print() qui signifie "affiche".

Et nous, ce qui nous intéresse, est d'afficher le numéro du mois, donc on va dire à Python:

Et si tout se passe bien, il devrait nous afficher n = 73 !

Si tu préfère les vidéos, je t'explique tout dans cette vidéo !


La Maths-inale pour cartonner en Maths au lycée.

Une méthode structurée qui vous donne les clés pour faire exploser votre progression et vos notes en Maths, en 1ère et en Terminale.

Rejoindre La Maths-inale