Question 2)a) On nous demande de compléter une sorte de trace de l'algorithme, ici un tableau avec l'état de deux variables et d'un test à chaque itération de la boucle tant que. Il est très facile d'obtenir cela en programmant l'algorithme sur la calculatrice, et en y rajoutant une simple instruction affichant ce qui nous est demandé en fin de boucle. Voici les programmes pour calculatrices graphiques actuelles :
Variables : n est un entier naturel u est un nombre réel Traitement : Affecter à u la valeur 5700 Affecter à n la valeur 0 Tant que u>4500 faire u prend la valeur 1,015×u-300 n prend la valeur n+1 Afficher u, n et u>4500 Fin Tant que Sortie : Afficher n
EXPORT INDESO16() BEGIN U:=5700; N:=0; WHILE U>4500 DO U:=1.015*U-300; N:=N+1; PRINT({ROUND(U,2),N,U>4500}) END; PRINT(N) END;
D'où la réponse affichée qu'il n'y a plus qu'à recopier :
Valeur de u
5700
5484,5
5267,78
5046,80
4822,50
4594,84
4363,76
Valeur de n
0
1
2
3
4
5
6
u>4500 (vrai/faux)
vrai
vrai
vrai
vrai
vrai
vrai
faux
Question 2)b) La valeur affichée en fin d'algorithme est la valeur de la variable n, et donc ici 6.
L'algorithme s'articule autour d'une boucle tant que, de condition de poursuite u>4500. Il se termine donc sur la réalisation de la condition contraire : u≤4500.
Or, la variable n, initialisée à 0 et incrémentée de 1 dans la boucle est donc un indice. De plus, la variable u, initialisée à u0=5700 et affectée dans la boucle avec la même relation de récurrence que la suite (un) contient donc la valeur du terme un
Cet algorithme détermine donc la plus petite valeur de n vérifiant un≤4500.