Une nouveauté de ce sujet est qu’il n’est plus nécessaire, pour comprendre l’algorithme, de savoir que la perte de 8% correspond à une multiplication par 0,92 puisque le calcul, tel que décrit dans l’algorithme, est
C prend la valeur C − C×0,08 + 50
Mais Sophus sait soustraire un pourcentage donc le problème ne se pose pas avec Sophus. L’algorithme de l’énoncé demande de boucler avec cette condition :
Tant que C < 400
Puisque C désigne visiblement le nombre de colonies, on en déduit que le but de cet algorithme est de savoir au bout de combien d’années l’apiculteur aura dépassé les 400 colonies. Alors, autant faire cette traduction sophusienne :
Nom dans le sujet | Nom dans Sophus |
n | années |
C | colonies |
L’algorithme se traduit alors ainsi en Sophus [1] :
colonies devient nouvelle Variable 300
années devient nouvelle Variable 0
Tant que colonies.valeur < 400
diminuer colonies de 8 pourcents
augmenter colonies de 50
incrémenter années
montrer années
Mais l’exercice était plus d’algorithmique « papier-crayon » que de programmation, alors il y avait un tableau à remplir, dans lequel on devait donner successivement les valeurs des deux variables ainsi que le test de comparaison avec 400. Pour constituer un tel tableau dans Sophus, on va effectuer les opérations suivantes :
- créer des listes, sous la forme de crochets vides (ce ne sont pas des variables Sophus, juste des tableaux de JavaScript) [2] ;
- à chaque passage dans la boucle, empiler dans ces tableaux les valeurs courantes des variables Sophus [3]. Par exemple le nombre actuel de colonies est colonies.valeur et non colonies [4] ;
- Tout à la fin, on affiche (« montrer ») toute la pile d’un coup, ce qui évite de multiplier les affichages.
Voici les noms des tableaux :
Nom du tableau | Signification |
test | valeurs de vérité de la proposition "C<400" |
valeurDeC | nombre actuel de colonies |
valeurDeN | temps écoulé, en années |
Et le tableau obtenu [5] :
Il y a moins de 400 colonies | c’est vrai | c’est vrai | c’est vrai | c’est vrai | c’est faux |
nombre de colonies | 326 | 349,92 | 371,926 | 392,172 | 410,799 |
années passées | 1 | 2 | 3 | 4 | 5 |
Représentation graphique de la suite
Sophus n’a pas de capacité graphique mais alcoffeethmique, si ; voici la représentation graphique de la suite en question :
Question 3
L’apiculteur espère doubler son nombre initial de colonies. Il voudrait savoir combien d’années il lui faudra pour atteindre cet objectif. |
Pour répondre à cette question, il suffit de changer la valeur du seuil dans l’algorithme du début. Au cas où on aurait du mal à savoir quel est le double de 300, on peut tenter cet algorithme :
seuil = nouvelle Variable 300
doubler seuil
montrer seuil
On sait maintenant comment modifier l’algorithme du début :
colonies devient nouvelle Variable 300
années devient nouvelle Variable 0
Tant que colonies.valeur < 600
diminuer colonies de 8 pourcents
augmenter colonies de 50
incrémenter années
montrer années
interpréteur en ligne
Pour tester les scripts, les copier-coller ci-dessous puis expérimenter avec :
Interpréteur Sophus
Commentaires