Page 1 of 2

Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2015)

Unread postPosted: 14 Mar 2015, 16:15
by critor
Considérons aujourd'hui la question d'algorithmique qui vient de tomber à l'épeuve de maths du BAC ES/L en Nouvelle Calédonie (mars 2015).

Il s'agit d'un algorithme de dichotomie destinée à approcher la solution d'une équation, et le sujet demande de décrire son exécution à l'aide d'une trace partielle à compléter.



Méthode n°1 :
On peut exécuter l'algorithme à la main, en réalisant la trace complète de l'algorithme.
C'est un tableau où l'on décrit pour chaque instruction (en ligne), l'état mémoire de la machine exécutant l'algorithme, avec en colonnes:
  • toutes les variables
  • les tests d'instructions et boucles conditionnelles éventuelles
La voici :
abyTant que
b-a>0.1
Si
y>1
Commentaire
a prend la valeur 44
b prend la valeur 545Vrai
y prend la valeur f((a+b)/2)45≈0.894Faux1ère itération Tant que
b prend la valeur (a+b)/244.5≈0.894VraiCas sinon du Si.
y prend la valeur f((a+b)/2)44.5≈1.059Vrai2ème itération Tant que
a prend la valeur (a+b)/24.254.5≈1.059VraiCas alors du Si.
y prend la valeur f((a+b)/2)4.254.5≈0.974Faux3ème itération Tant que
b prend la valeur (a+b)/24.254.375≈1.059VraiCas sinon du Si.
y prend la valeur f((a+b)/2)4.254.375≈1.016Vrai4ème itération Tant que
a prend la valeur (a+b)/24.31254.375≈1.016FauxCas alors du Si.


Ce que demande l'énoncé est un résumé de cette trace, avec une seule ligne par itération de la boucle Tant que.
Ce résumé étant partiellement complété, on remarque en comparant avec la trace complète ci-dessus que c'est l'état des variables en fin d'itération qui est attendu.

D'où la trace partielle suivante :




(a+b)/2yabb-aSortie
1ère boucle Tant que4.250.89444.50.5
1ère boucle Tant que4.3751.0594.254.50.25
1ère boucle Tant que4.31250.9744.254.3750.125
1ère boucle Tant que4.343751.0164.31254.3750.06254.34375

L'algorithme répond donc 4.34375 comme valeur approchée de la solution α de l'équation f(x)=1 sur l'intervalle [4;5].
On en déduit donc pour la question 3)c) que α≈4.3.



Méthode n°2 :
Si tu es doté d'une calculatrice graphique et que tu sais la programmer, tu peux obtenir ces résultats de façon beaucoup plus simple et rapide.
Il suffit simplement de programmer sur ta calculatrice graphique un algorithme légèrement modifié.
Nous allons tout simplement rajouter, en fin de boucle, une instruction affichant les informations demandées par l'énoncé, et il te suffira juste de les recopier. ;)
Voici ci-dessous les programmes pour l'ensemble des modèles actuellement en circulation :

Algorithme
Programme
Code: Select all
Initialisation :
   a prend la valeur 4
   b prend la valeur 5
Traitement :
   Tant que b-a>0,1 faire
      y prend la valeur f((a+b)/2)
      Si y>1 alors
         a prend la valeur (a+b)/2
      sinon
         b prend la valeur (a+b)/2
      FinSi
   Fin Tant que
Sortie :
   Afficher (a+b)/2
Code: Select all
Chaîne►Equ("(25X-32)e^(-X)",Y1
4→A
5→B
While B-A>0.1
   Y1((A+B)/2)→Y
   If Y>1
   Then
      (A+B)/2→A
   Else
      (A+B)/2→B
   End
   Pause {(A+B)/2,arrondir(Y,3),A,B,B-A
End
(A+B)/2

Code: Select all
String►Equ("(25X-32)e^(-X)",Y1
4→A
5→B
While B-A>0.1
   Y1((A+B)/2)→Y
   If Y>1
   Then
      (A+B)/2→A
   Else
      (A+B)/2→B
   End
   Pause {(A+B)/2,round(Y,3),A,B,B-A
End
(A+B)/2

Code: Select all
Define ncales2015()=
Func
   Local f,a,b,y
   Define f(x)=(25x-32)e^(−x)
   4→a
   5→b
   While b-a>0.1
      f((a+b)/2)→y
      If y>1 Then
         (a+b)/2→a
      Else
         (a+b)/2→b
      EndIf
      Disp {(a+b)/2,round(y,3),a,b,b-a}
   EndWhile
   Return (a+b)/2
EndFunc

Code: Select all
"(25x-32)e^-x"→Y1
4→A
5→B
While B-A>0.1
   Y1((A+B)÷2)→Y
   If Y>1
   Then (A+B)÷2→A
   Else (A+B)÷2→B
   IfEnd
   {(A+B)÷2,Y,A,B,B-A}◢
WhileEnd
(A+B)÷2


Code: Select all
SetDecimal
define f(x)=(25x-32)e^-x
4⇒a
5⇒b
While b-a>0.1
   f((a+b)/2)⇒y
   If y>1
   Then
      (a+b)/2⇒a
   Else
      (a+b)/2⇒b
   IfEnd
   Print {(a+b)/2,y,a,b,b-a}
WhileEnd
Print (a+b)/2

Code: Select all
EXPORT NCALES2015()
BEGIN
   F1:="(25X-32)e^(-X)";
   A:=4;
   B:=5;
   WHILE B-A>0.1 DO
      Y:=F1((A+B)/2);
      IF Y>1 THEN
         A:=(A+B)/2;
      ELSE
         B:=(A+B)/2;
      END;
      PRINT({(A+B)/2,ROUND(Y,3),A,B,B-A});
   END;
   PRINT((A+B)/2);
END;



Un bon sujet dans le contexte de la compétence "savoir programmer un algorithme sur calculatrice" - même les séries S devraient le regarder ;)



Sujet :

Correction intégrale : http://www.annales2maths.com/corrrectio ... mars-2015/

Source : http://www.apmep.fr/-Annales-Bac-Brevet-BTS- via viewtopic.php?t=16188&p=178939#p178939

Re: Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2

Unread postPosted: 14 Mar 2015, 16:37
by compsystems
What program uses to write the pseudo code in French?

Please inluide code for ti68k calcs

use tiedit68k to export in unicode format (Buttons Copy > Unicode)

http://home.arcor.de/p-engels/tiedit/

for classpad to use an old emulator that is hacked in the web

PS: spanish pseudocode interpreter

http://pseint.sourceforge.net/index.php ... ortada.php

Re: Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2

Unread postPosted: 14 Mar 2015, 22:08
by Adriweb
CompSystems wrote:What program uses to write the pseudo code in French?

It's actually what the exercise says on the paper. Then, on the forum, it's displayed with syntax highlighting thanks to the [code] bbcode tag.

CompSystems wrote:Please inluide code for ti68k calcs

It's already there, in the nspire/89 tab :)

Re: Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2

Unread postPosted: 16 Mar 2015, 20:55
by critor
Voilà.

Enfin rajouté la correction pour ceux équipés en Casio Classpad/fx-CP.

Re: Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2

Unread postPosted: 16 Mar 2015, 20:59
by Victor D
C'est le même code pour les classpad et les fx-cg 10/20 ?

Re: Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2

Unread postPosted: 16 Mar 2015, 21:04
by critor
Ben regarde dans le 1er post ;)

Re: Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2

Unread postPosted: 16 Mar 2015, 21:07
by Victor D
critor wrote:Ben regarde dans le 1er post ;)


C'est justement pour ça que je posais la question ;)

Re: Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2

Unread postPosted: 16 Mar 2015, 21:08
by critor
Ben est-ce que tu vois le même code ?

Re: Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2

Unread postPosted: 16 Mar 2015, 21:10
by Victor D
critor wrote:Ben est-ce que tu vois le même code ?


Ben oui.... mais il me semblais que le c'était particulier pour la fx-cp400....

Re: Correction algo BAC ES/L 2015 (Nouvelle Calédonie mars 2

Unread postPosted: 16 Mar 2015, 22:03
by Bisam
Je n'avais jamais fait attention, mais quelle idée saugrenue d'utiliser le symbole d'implication comme symbole d'affectation sur les Classpad !!