Page 1 of 1

Correction algo exo 2 BAC S 2015 (Amérique du Nord - juin)

Unread postPosted: 03 Jun 2015, 12:26
by critor
Correction algo exercice n°2 (suites + algo) du sujet de Maths du BAC S 2015 en Amérique du Nord.

Question 1)b)
Il y a deux affectations récurrentes à compléter dans la boucle, pour les deux suites récurrentes (xn) et (yn).
On pourrait donc proposer :
Code: Select all
t prend la valeur x
x prend la valeur 0.8x-0.6y
y prend la valeur 0.6x+0.8y

Ce qui est faux. En effet, la première affectation récurrente modifie la variable x et nous fait donc perdre sa valeur dont on avait besoin à pour l'affectation récurrente de y suivante.

C'est pour cela que l'algorithme proposé sauvegarde la valeur de x dans la variable t. D'où deux propositions possibles :
Code: Select all
t prend la valeur x
x prend la valeur 0.8x-0.6y
y prend la valeur 0.6t+0.8y

ou encore
Code: Select all
t prend la valeur x
x prend la valeur 0.8t-0.6y
y prend la valeur 0.6t+0.8y


Il nous est possible en situation d'examen de vérifier la justesse de cet algorithme. En effet nous avons suite à la question 1)a) les valeurs des termes x0, x0, y0, x1, y1, x2, y2.
Rajoutons donc une simple instruction d'affichage des valeurs dans la boucle, et traduisons cet algorithme pour notre calculatrice graphique.


Algorithme
Programme
Code: Select all
Variables :
   i, x, y, t : nombres réels
Initialisation :
   x prend la valeur -3
   y prend la valeur 4
Traitement :
   Pour i allant de 0 à 20
   |   t prend la valeur x
   |   x prend la valeur 0.8t-0.6y
   |   y prend la valeur 0.6t+0.8y
   FinPour
Code: Select all
-3→X
4→Y
For(I,0,20
   Pause {I,X,Y
   X→T
   0.8T-0.6Y→X
   0.6T+0.8Y→Y
End

Code: Select all
Define amerns2015()=
Prgm
   -3→x
   4→y
   For i,0,20
      Disp {i,x,y}
      x→t
      0.8t-0.6y→x
      0.6t+0.8y→y
   End
EndPrgm
Code: Select all
-3→X
4→Y
For 0→I To 20
   {I,X,Y}◢
   X→T
   0.8T-0.6Y→X
   0.6T+0.8Y→Y
Next

Code: Select all
-3⇒x
4⇒y
For 0⇒i To 20
   Print {i,x,y}
   x→t
   0.8t-0.6x→x
   0.6t+0.8y→y
Next
Code: Select all
EXPORT AMERNS2015()
BEGIN
   X:=-3;
   Y:=4;
   FOR I FROM 0 TO 20 DO
      PRINT({I,X,Y});
      T:=X;
      X:=0.8*T-0.6*Y;
      Y:=0.6*T+0.8*Y;
   END;
END;