On s’intéresse à l’évolution du nombre de visiteurs quotidiens d’un site naturel protégé.
Au départ, le site accueille visiteurs par jour.
Chaque jour :
le nombre de visiteurs augmente de par rapport à la veille,
puis visiteurs quittent le site plus tôt que prévu.
On note le nombre de visiteurs un jour donné.
Expliquer, avec des mots, comment évolue le nombre de visiteurs d’un jour au suivant.
On souhaite savoir au bout de combien de jours le nombre de visiteurs dépassera .
a. Sans faire de calcul précis, expliquer pourquoi le nombre de visiteurs finira par dépasser .
b. On propose l’algorithme suivant, inspiré de ce que l’on faisait auparavant avec Scratch.
Recopier et compléter cet algorithme pour qu’il affiche le nombre de jours nécessaires pour que le nombre de visiteurs dépasse .
On précisera clairement :
la condition de la boucle while,
la mise à jour de la variable jour,
la formule permettant de calculer le nouveau nombre de visiteurs.
D’un jour au suivant, on fait deux actions dans l’ordre :
On augmente d’abord le nombre de visiteurs de .
Puis on enlève visiteurs.
Cela veut dire : « on multiplie par , puis on retire ».
On peut l’écrire en une seule expression :
.
👉 Conseil : une augmentation de , ce n’est pas « +15 », c’est « ».
Au départ, .
Chaque jour, on multiplie par , ce qui fait une augmentation importante.
Même si on enlève ensuite , l’effet de la multiplication par va finir par l’emporter, car plus devient grand, plus de devient grand.
Donc le nombre de visiteurs va globalement augmenter et finira par dépasser .
👉 Conseil : ici, on ne demande pas « au bout de combien de jours », seulement une justification logique : « ça augmente de plus en plus ».
whileOn veut trouver le premier jour où dépasse .
On part avec :
jour = 0 (jour de départ),
v = 120 (valeur de départ).
On doit répéter le calcul « jour suivant » tant qu’on n’a pas encore dépassé .
On veut continuer tant que n’a pas dépassé , c’est-à-dire tant que .
La condition est donc :while v <= 300:
👉 Conseil : si l’objectif est « dépasser », alors on boucle tant qu’on est encore à ou en dessous, donc <= et pas <.
À chaque tour de boucle, on passe au jour suivant, donc on ajoute à jour :
jour = jour + 1
👉 Conseil : dans Scratch, c’était souvent « ajouter 1 à jour ». En Python, c’est la même idée.
Chaque jour :
on augmente de : on fait ,
puis on enlève .
Donc :
v = 1.15*v - 18
👉 Conseil : attention à l’ordre : on fait d’abord la hausse, puis on retire 18.
👉 Conseil : en Python, on écrit avec un point : 1.15 (pas une virgule).
Explication très claire du rôle de la boucle
while
La boucle while veut dire : « répéter tant que la condition est vraie ».
Ici, la condition est v <= 300, donc :
tant que n’a pas encore dépassé , on refait un jour de plus,
on met à jour jour,
on calcule le nouveau nombre de visiteurs,
puis on reteste la condition.
Quand devient enfin strictement supérieur à , la condition v <= 300 devient fausse, donc la boucle s’arrête, et on renvoie jour.
👉 Conseil : pour te représenter la boucle comme dans Scratch, imagine un bloc « répéter jusqu’à ce que ». En Python, c’est pareil, mais écrit sous forme while v <= 300:.