Le sujet porte donc sur l’étude comparative de deux suites, l’une arithmétique, l’autre géométrique, et la somme de leurs termes. Ces suites modélisent évidemment les distances parcourues par les cyclistes.
Partie A : l’entraînement d’Ugo
Comme la suite décrit les valeurs successives de la distance parcourue, il paraît naturel
- de créer une variable (puisque la distance varie de semaine en semaine) ;
- de lui donner le nom « distance » ;
- de l’initialiser à 40.
Ce qui se fait avec cette instruction :
distance = nouvelle Variable 40
Voici la suite de l’énoncé :
Calculer les distances parcourues par Ugo au cours des deuxième et troisième semaines d’entraînement. |
Alors on va boucler deux fois, ce qui se fait comme ceci :
distance = nouvelle Variable 40
2 fois faire
L’énoncé dit ce qu’il faut faire dans la boucle : « augmenter cette distance de 5 km par semaine » :
distance = nouvelle Variable 40
2 fois faire
augmenter distance de 5
montrer distance
Pour connaître les valeurs obtenues, il faut aller sur l’interpréteur (ou ci-dessous) et y écrire le script puis cliquer sur le bouton de test...
Pour savoir si les 1500 km désirés seront parcourus en 20 semaines, il faut créer une nouvelle variable appelée « total » et l’augmenter chaque semaine de la distance parcourue :
Voici le calcul de la somme des 20 premiers termes de u :
distance = nouvelle Variable 40
total = nouvelle Variable 0
20 fois faire
augmenter distance de 5
augmenter total de distance
montrer total
Pour savoir si la distance totale est supérieure à 1500, on peut le demander à Sophus. Mais il faut savoir que total n’est pas un nombre, mais une variable Sophus (qui contient le nombre voulu), alors si on veut un nombre il faut écrire non total mais total.valeur :
distance = nouvelle Variable 40
total = nouvelle Variable 0
20 fois faire
augmenter distance de 5
augmenter total de distance
montrer total.valeur >= 1500
Remarque : Après l’export de ce script il est bon de rajouter le mot « si » pour obtenir cet export :
distance = nouvelle variable initialisée à 40 total = nouvelle variable initialisée à 0 20 fois faire augmenter distance de 5 augmenter total de distance montrer si la valeur de total est supérieure ou égale à 1500 |
Partie B : l’entraînement de Vivien
Deux différences avec ce qui précède :
- la distance initiale est 30 ;
- l’augmentation n’est plus de 5 km mais de 10 pourcents :
Voici le script Sophus calculant la distance totale parcourue par Vivien :
distance = nouvelle Variable 30
total = nouvelle Variable 0
20 fois faire
augmenter distance de 10 pourcents
augmenter total de distance
montrer total
Partie C : comparaison des deux entraînements
1. Vivien est persuadé qu’il y aura une semaine où il parcourra une distance supérieure à celle parcourue par Ugo. Vivien a-t-il raison ? |
Pour comparer les deux suites, on a besoin de deux variables différentes, l’une contenant la distance parcourue par Ugo et l’autre, la distance parcourue par Vivien. Bien entendu, on nomme respectivement u et v ces deux variables. On n’a plus qu’à afficher si la valeur de v est supérieure à celle de u :
u = nouvelle Variable 40
v = nouvelle Variable 30
10 fois faire
augmenter u de 5 # km
augmenter v de 10 pourcents
montrer u.valeur > v.valeur
Seulement il faut de la patience. Alors pourquoi pas n’afficher la valeur de v que si celle-ci est supérieure à celle de u ? Ainsi
- l’absence d’affichage signifie que v n’est jamais supérieur à u pendant les 20 semaines ;
- la présence d’un affichage n’aura pas lieu trop souvent et l’algorithme sera vite testé :
u = nouvelle Variable 40
v = nouvelle Variable 30
10 fois faire
augmenter u de 5 # km
augmenter v de 10 pourcents
Si u.valeur > v.valeur
montrer v
2. À la fin de la 17e semaine, les deux cyclistes se blessent. Ils décident alors de réduire leur entraînement. Ils ne feront plus que 80 km chacun par semaine à partir de la 18e semaine. Leur objectif sera-t-il atteint ? |
Là, on boucle 17 fois « normalement » puis on fixe les deux variables à 80 pour les 3 derniers tours de boucle.
Apparemment Ugo a atteint son objectif :
distance = nouvelle Variable 40
total = nouvelle Variable 0
17 fois faire
augmenter distance de 5
augmenter total de distance
3 fois faire
augmenter total de 80
montrer total
Quant à Vivien, pour savoir s’il a atteint le sien, il faut tester l’algorithme suivant :
distance = nouvelle Variable 30
total = nouvelle Variable 0
17 fois faire
augmenter distance de 10 pourcents
augmenter total de distance
3 fois faire
augmenter total de 80
montrer total
Interpréteur en ligne
Pour essayer les scripts ci-dessus :
Interpréteur Sophus
Commentaires