Page 1 of 1

Correction algo exo 1 BTS 2016 groupe B (France - mai 2016)

Unread postPosted: 19 May 2016, 20:52
by critor
Correction algo exercice n°1 du sujet de Maths du BTS groupement B de mai 2016 en France.

Question C)1)
Programmons l'algorithme sur notre calculatrice et rajoutons une instruction d'affichage de l'état des variables et du test en fin de la boucle "tant que" pour qu'il nous dise directement comment compléter le tableau.

Algorithme
Programme
Code: Select all
Variables :
   t est un nombre réel
Initialisation :
   t prend la valeur 0
Traitement :
   Tant que f(t)<11,9
      t prend la valeur t+1
   Fin de Tant que
Sortie :
   Afficher t
Code: Select all
Chaîne►Équ("-10e^(-0.3X)+12",Y1)
0→T
While Y1(T)<11.9
   T+1→T
   Disp {T,Y1(T),Y1(T)<11.9}
End
T

Code: Select all
String►Equ("-10e^(-0.3X)+12",Y1)
0→T
While Y1(T)<11.9
   T+1→T
   Disp {T,Y1(T),Y1(T)<11.9}
End
T

Code: Select all
Define bts2016b()=
Func
   Local f,t
   Define f(t)=-10·e^(-0.3t)+12
   0→t
   While f(t)<11.9
      t+1→t
      Disp {t,f(t),f(t)<11.9}
   EndWhile
   Return t
EndFunc
Code: Select all
"-10e^(-0.3X)+12"→Y1
0→T
While Y1(T)<11.9
   T+1→T
   {T,Y1(T),Y1(T)<11.9}◢
WhileEnd
T

Code: Select all
SetDecimal
Define f(t)=-10e^(-0.3t)+12
0⇒t
While f(t)<11.9
   t+1⇒t
   Print {t,f(t),judge(f(t)<11.9)}
WhileEnd
Print t
Code: Select all
EXPORT BTS2016B()
BEGIN
   F1:="-10*e^(-0.3*X)+12";
   T:=0;
   WHILE F1(T)<11.9 DO
      T:=T+1;
      PRINT({T,F1(T),F1(T)<11.9})
   END;
   PRINT(T)
END;


D'où la réponse :
EtapesValeur de tValeur de f(t)Condition f(t)<11.9Affichage
étape 10f(0)=2VRAIEaucun
étape 21f(1)≈4,59VRAIEaucun
étape 32f(2)≈6,51VRAIEaucun
étape 43f(3)≈7,93VRAIEaucun
étape 54f(4)≈8,99VRAIEaucun
étape 65f(5)≈9,77VRAIEaucun
étape 76f(6)≈10,35VRAIEaucun
étape 87f(7)≈10,78VRAIEaucun
étape 98f(8)≈11,09VRAIEaucun
étape 109f(9)≈11,33VRAIEaucun
étape 1110f(10)≈11,50VRAIEaucun
étape 1211f(11)≈11,63VRAIEaucun
étape 1312f(12)≈11,73VRAIEaucun
étape 1413f(13)≈11,80VRAIEaucun
étape 1514f(14)≈11,85VRAIEaucun
étape 1615f(15)≈11,89VRAIEaucun
étape 1716f(16)≈11,92FAUSSE16


Question C)2)
D'après le tableau précédent, c'est entre t=15s et t=16s que la hauteur f(t) de la nacelle devient comprise entre 11,9 et 12.
A la seconde près, on peut donc considérer que la nacelle est stabilisée à partir de t0=16s.

Question C)3)
L'algorithme précédent effectue un balayage à partir de t=0s par pas de 1s.
Pour obtenir une valeur approchée au dixième près, il nous suffit donc d'effectuer un balayage par pas de 0,1s.
De plus, on sait que la valeur recherchée est entre 15 et 16, et on peut donc initialiser la variable t à 15 pour gagner du temps.

On peut également programmer l'algorithme ainsi modifié sur calculatrice, pour vérifier qu'il fonctionne correctement en renvoyant bien une valeur au dixième près entre 15 et 16 :

Algorithme
Programme
Code: Select all
Variables :
   t est un nombre réel
Initialisation :
   t prend la valeur 15
Traitement :
   Tant que f(t)<11,9
      t prend la valeur t+0,1
   Fin de Tant que
Sortie :
   Afficher t
Code: Select all
Chaîne►Équ("-10e^(-0.3X)+12",Y1)
15→T
While Y1(T)<11.9
   T+0.1→T
   Disp {T,Y1(T),Y1(T)<11.9}
End
T

Code: Select all
String►Equ("-10e^(-0.3X)+12",Y1)
15→T
While Y1(T)<11.9
   T+0.1→T
   Disp {T,Y1(T),Y1(T)<11.9}
End
T

Code: Select all
Define bts2016b2()=
Func
   Local f,t
   Define f(t)=-10·e^(-0.3t)+12
   15→t
   While f(t)<11.9
      t+0.1→t
      Disp {t,f(t),f(t)<11.9}
   EndWhile
   Return t
EndFunc
Code: Select all
"-10e^(-0.3X)+12"→Y1
15→T
While Y1(T)<11.9
   T+0.1→T
   {T,Y1(T),Y1(T)<11.9}◢
WhileEnd
T

Code: Select all
SetDecimal
Define f(t)=-10e^(-0.3t)+12
15⇒t
While f(t)<11.9
   t+0.1⇒t
   Print {t,f(t),judge(f(t)<11.9)}
WhileEnd
Print t
Code: Select all
EXPORT BTS2016B2()
BEGIN
   F1:="-10*e^(-0.3*X)+12";
   T:=15;
   WHILE F1(T)<11.9 DO
      T:=T+0.1;
      PRINT({T,F1(T),F1(T)<11.9})
   END;
   PRINT(T)
END;