π
<-
Chat plein-écran
[^]

Correction algo exo 4 Spécialité BAC S 2017, Liban

Online

Correction algo exo 4 Spécialité BAC S 2017, Liban

Unread postby critor » 10 Jun 2017, 13:40

Correction algo exercice n°4 de Spécialité du sujet de Maths du BAC S 2017 au Liban :
https://toutmonexam.fr/epreuve.php?id=2177

La programmation de l'algorithme sur la calculatrice graphique, permet d'obtenir directement les réponses justifiées aux premières question, mais aussi de servir de support de recherche et vérification pour les questions suivantes.

Pour la modélisation de la suite
ak
finie des chiffres de la carte, on peut utiliser le type de variable liste de la calculatrice.

Rajoutons une instruction en fin des deux boucles
Pour
pour avoir les justifications.


Algorithme
Programme
Code: Select all
Initialisation :
   I prend la valeur 0
   P prend la valeur 0
   R prend la valeur 0
Traitement :
   Pour k allant de 0 à 7 :
      R prend le reste de 2a(2k+1) par 9
      I prend la valeur I+R
      Afficher k, a(2k+1), 2a(2k+1), R, I
   Fin Pour
   Pour k allant de 1 à 7 :
      P prend la valeur P+a(2k)
      Afficher k, a(2k) et P
   Fin Pour
Sortie :
   S prend la valeur I+P+c
   Si S est multiple de 10 alors :
      Afficher "numéro carte correct"
   Sinon :
      Afficher "numéro carte incorrect"
   Fin Si
Code: Select all
{5,6,3,5,4,0,0,2,9,5,6,1,3,4,1}→⌊A
1→C
0→I
0→P
0→R
For(K,0,7)
   reste(2⌊A(2K+1),9)→R
   I+R→I
   Disp {K,⌊A(2K+1),2⌊A(2K+1),R,I}
End
Pause
For(K,1,7)
   P+⌊A(2K)→P
   Disp {K,⌊A(2K),P}
End
I+P+C→S
If reste(S,10)=0
Then
   Disp "NUM. CARTE CORRECT"
Else
   Disp "NUM. CARTE INCORR."
End


Code: Select all
{5,6,3,5,4,0,0,2,9,5,6,1,3,4,1}→⌊A
1→C
0→I
0→P
0→R
For(K,0,7)
   remainder(2⌊A(2K+1),9)→R
   I+R→I
   Disp {K,⌊A(2K+1),2⌊A(2K+1),R,I}
End
Pause
For(K,1,7)
   P+⌊A(2K)→P
   Disp {K,⌊A(2K),P}
End
I+P+C→S
If remainder(S,10)=0
Then
   Disp "NUM. CARTE CORRECT"
Else
   Disp "NUM. CARTE INCORR."
End


Code: Select all
Define liban2017sspe()=
Prgm
   {5,6,3,5,4,0,0,2,9,5,6,1,3,4,1}→a
   1→c
   0→i
   0→p
   0→r
   For k,0,7
      mod(2·a[2·k+1],9)→r
      i+r→i
      Disp k,a[2·k+1],2·a[2·k+1],r,i
   EndFor
   For k,1,7
      p+a[2·k]→p
      Disp k,a[2·k],p
   EndFor
   i+p+c→s
   If mod(s,10)=0 Then
      Disp "num. carte correct"
   Else
      Disp "num. carte incorr."
   EndIf
EndPrgm

Code: Select all
{5,6,3,5,4,0,0,2,9,5,6,1,3,4,1}→List 1
1→C
0→I
0→P
0→R
For 0→K To 7
   MOD(2List 1[2K+1],9)→R
   I+R→I
   List 1[2K+1]→U
   {K,U,2U,R,I}◢
Next
For 1→K To 7
   P+List 1[2K]→P
   List 1[2K]→U
   {K,U,P}◢
Next
I+P+C→S
If MOD(S,10)=0
Then
   "NUM. CARTE CORRECT"
Else
   "NUM. CARTE INCORR."
IfEnd



Code: Select all
{5,6,3,5,4,0,0,2,9,5,6,1,3,4,1}⇒a
1⇒c
0⇒i
0⇒p
0⇒r
For 0⇒k To 7
   mod(2a[2k+1],9)⇒r
   i+r⇒i
   Print {k,a[2k+1],2a[2k+1],r,i}
Next
For 1⇒k To 7
   p+a[2k]⇒p
   Print {k,a[2k],p}
Next
i+p+c⇒s
If mod(s,10)=0
Then
   Print "numéro carte correct"
Else
   "numéro carte incorr."
IfEnd
Code: Select all
EXPORT liban2017sspe()
BEGIN
   LOCAL a;
   a:={5,6,3,5,4,0,0,2,9,5,6,1,3,4,1};
   C:=1;
   I:=0;
   P:=0;
   R:=0;
   FOR K FROM 0 TO 7 DO
      R:=2*a[2*K+1] MOD 9;
      I:=I+R;
      PRINT({K,a[2*K+1],2*a[2*K+1],R,I});
   END;
   FOR K FROM 1 TO 7 DO
      P:=P+a[2*K];
      PRINT({K,a[2*K],P});
   END;
   S:=I+P+C;
   IF (S MOD 10)=0 THEN
      PRINT("numéro de carte correct");
   ELSE
      PRINT("numéro de carte incorrect");
   END;
END;




Question 1)a)
:

Le tableau demandé correspond à la première partie de l'affichage de la calculatrice, soit ce qui est affiché par la première boucle et qu'il suffit juste de recopier.


k01234567
a2k+153409631
2a2k+110680181262
R16800362
I17151515182426


Question 1)b)
:

A la fin de la première boucle
Pour
, la variable
I
vérifiant les chiffres de rang impair vaut donc 26.
Poursuivons l'exécution de l'algorithme avec la deuxième boucle
Pour
:
Produisons la justification avec la trace par itération, correspondant cette fois-ci à la deuxième partie de l'affichage de la calculatrice


k1234567
a2k6502514
P6111113181923

A la fin de la deuxième boucle
Pour
, la variable
P
vérifiant les chiffres de rang pair vaut donc 23.
Donc en sortie d'algorithme, la variable
S
vaut
$mathjax$I+P+c=26+23+1\\
\phantom{1+P+c}=50$mathjax$
.
50 étant bien un multiple de 10, le numéro de carte est donc correct.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33721
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Correction algo exo 4 Spécialité BAC S 2017, Liban

Unread postby Bisam » 11 Jun 2017, 12:51

2 questions :
1) La fonction "remainder(" sur z80, c'est à partir de quel OS ?
2) Est-ce vraiment au programme l'utilisation d'une fonction interne à la calculette (comme le calcul du reste d'une division euclidienne, par exemple) ?

J'imagine que tous les profs de spécialité ont expliqué la fonction "mod" ou les fonctions de division euclidienne à leurs élèves... mais est-ce exigible au Bac ?
User avatar
BisamAdmin.
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 47.4%
 
Posts: 5422
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):

Online

Re: Correction algo exo 4 Spécialité BAC S 2017, Liban

Unread postby critor » 11 Jun 2017, 12:58

Bisam wrote:2 questions :
1) La fonction "remainder(" sur z80, c'est à partir de quel OS ?

Bonne remarque.
A partir des versions 2.xx il me semble, donc ça excluerait les TI-83 non-USB ainsi que les TI-82.

Mais ce ne sera plus un problème dans quelques semaines...

Bisam wrote:2) Est-ce vraiment au programme l'utilisation d'une fonction interne à la calculette (comme le calcul du reste d'une division euclidienne, par exemple) ?

Niveau programmation, on est de toutes façons déjà hors programme avec une variable de type liste.
Mais on peut s'en tirer sans aucune programmation, en prenant le temps de tester/vérifier à la main pour chaque question de l'exercice.

Je trouvais juste qu'il était pertinent de montrer comment faire, vu le temps que cela fait gagner.

En tous cas, l'algorithme du sujet ne mentionne le reste que sur une seule ligne sans le détailler, et donc le référence comme quelque chose de déjà existant, de la même façon qu'un cosinus ou un logarithme.
Donc de même sur machine, il m'a paru fidèle de transcrire cet algorithme en appelant la fonction reste de la machine.
Elle n'est pas cachée, en français elle s'appelle reste() et se trouve très facilement dans :f41: :f26: .
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33721
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Correction algo exo 4 Spécialité BAC S 2017, Liban

Unread postby Adriweb » 11 Jun 2017, 13:00

critor wrote:
Bisam wrote:2 questions :
1) La fonction "remainder(" sur z80, c'est à partir de quel OS ?

Bonne remarque.
A partir des versions 2.xx il me semble, donc ça excluerait les TI-83 non-USB ainsi que les TI-82.

2.53MP, pour être plus précis.

critor wrote:Mais ce ne sera plus un problème dans quelques semaines...

En effet...
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 51.7%
 
Posts: 12652
Images: 1081
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Online

Re: Correction algo exo 4 Spécialité BAC S 2017, Liban

Unread postby critor » 11 Jun 2017, 13:04

Ah, si récent que ça... :#roll#:
Ma TI Galaxy 10 des années 90 le faisait, donc c'est surprenant. :p
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33721
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Correction algo exo 4 Spécialité BAC S 2017, Liban

Unread postby Bisam » 11 Jun 2017, 13:34

Oui, en fait, je dis n'importe quoi à propos des fonctions.

Les fonctions à un seul argument sont courantes... mais celles à plusieurs arguments aussi, ne serait-ce que pour les probas !
Bref, ma remarque ne tient pas la route. C'est juste que j'étais étonné de l'utilisation de cette fonction en particulier.
User avatar
BisamAdmin.
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 47.4%
 
Posts: 5422
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):

Online

Re: Correction algo exo 4 Spécialité BAC S 2017, Liban

Unread postby critor » 11 Jun 2017, 13:41

Les fonctions à plusieurs variables étaient mentionnées au programme de Seconde de 2009.
Je n'ai pas encore bien fait attention à ça dans le nouveau programme de 2017, mais à mon avis ça reste d'une façon ou d'une autre puisque les algorithmes sont présentés comme des fonctions et peuvent prendre plusieurs arguments.

Après en pratique, on n'avait pas forcément le temps de faire grand chose avec, surtout quand les fonctions à 1 variable ne tournent déjà pas rond dans la tête de nombre d'élèves...

Moi j'y consacrais 1 activité concrète dans le contexte de l'algorithmique, avec le calcul de l'indice IMC même si certes on perdait alors l'écriture fonctionnelle, puis bien sûr 4-5 lignes de cours et des exos d'application avec des f(x,y).
Bref c'était fait, mais ça n'allait pas bien loin.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33721
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Correction algo exo 4 Spécialité BAC S 2017, Liban

Unread postby parisse » 11 Jun 2017, 19:41

Encore un sujet ou il s'agit de faire du reverse-engeneering au lieu de demander aux eleves de concevoir un algorithme alors qu'ici c'est quand meme tres simple avec deux boucles non imbriquees : on est quand meme avec des eleves de TS specialite maths! Si toutefois on craint que cela leur soit trop difficile de concevoir un algorithme de but en blanc, il est possible de donner une maquette a completer. Le travail demande aux eleves n'est pas creatif, en fait il s'apparente au travail d'un prof qui corrige des copies, c'est ininteressant. En plus, je suis persuade que les concepteurs font fausse route : comprendre une regle a partir d'un algorithme non commente est souvent plus difficile que l'inverse : ici il faut commencer par retenir des notations de variables qui ne deviennent claires qu'une fois la regle comprise, et l'utilisation de 2 variables pour faire les sommes est etrange (une seule variable suffit algorithmiquement parlant) tant qu'on n'a pas compris la regle, sans parler de la mise a l'ecart de c.
Sur HP Prime (et probablement sur TI nspire et ti89/92/v200 et peut-etre d'autre modeles) on peut remplacer les boucles par des sum. Voici l'algorithme en Xcas traduit sous forme d'une fonction prenant en argument une liste (noter que les indices commencent a 0 en Xcas d'ou le decalage):
Code: Select all
f(l):=sum(irem(2*l[2*k],9),k,0,7)+sum(l[2*k+1],k,0,7);

Le meme prenant un nombre entier de 16 chiffres et renvoyant un entier qui doit etre multiple de 10, avec une variable locale pour stocker les chiffres du nombre
Code: Select all
fonction f(x)
  local l,k;
  l:=revlist(convert(x,base,10)); // extraction des chiffres de x en base 10
  return sum(irem(2*l[2*k],9),k,0,7)+sum(l[2*k+1],k,0,7);
ffonction:;

Si le code de la carte commence par des 0, il faut rajouter la ligne de code suivante apres la definition de l:
Code: Select all
  si size(l)<16 alors l:=concat(seq(0,16-size(l)),l); fsi;

Il n'y a vraiment pas beaucoup d'arithmetique la-dedans (la division euclidienne par 9 c'est du programme du primaire en fait!) et elle a ete rajoutee artificiellement car le veritable test des cartes bancaires ne calcule pas le reste de la division euclidienne par 9 mais retire 9 si on est plus grand que 9. Je m'en suis apercu en testant mon numero de carte bancaire qui est considere comme incorrect par la regle de cet exercice de bac.
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 80.4%
 
Posts: 1803
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Online

Re: Correction algo exo 4 Spécialité BAC S 2017, Liban

Unread postby critor » 16 Jun 2017, 21:17

parisse wrote:Si toutefois on craint que cela leur soit trop difficile de concevoir un algorithme de but en blanc, il est possible de donner une maquette a completer.

En même temps, dans les IUFM/ESPE on présente le texte à trous comme la pire des abominations.
Je ne suis donc pas surpris que les algorithmes à trous restent extrêmement rares au BAC, même si personnellement je les sors régulièrement en DS
(histoire qu'il y ait un minimum de "production" par l'élève)
.

Faire écrire un cours, c'est pas intéressant pour les élèves, faut pas faire.
Donner des polycopiés de cours pour passer plus rapidement à l'application, c'est pas bien puisque l'élève ne s'approprie pas le cours.
Donner des polycopiés à trous pour que l'élève soit obligé de suivre le cours, c'est exclu.

Conclusion logique ?
Ben je suppose qu'on a voulu nous faire comprendre qu'il ne fallait plus faire cours... :p
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33721
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Online

Re: Correction algo exo 4 non-Spé BAC S 2017, Centres Etrang

Unread postby critor » 17 Jun 2017, 09:22

@parisse Ah ben voilà, tu vas être content je pense, et l'ESPE aussi :
Image

La toute première fois que ça tombe au BAC il me semble, hier en Polynésie française.
En plus, c'est l'algo type présent dans l'écrasante majorité des sujets, avec recherche d'un seuil sur une suite récurrente.

Sauf que... c'est le sujet pour non spécialites commun aux séries ES/L.
J'ai peur qu'il y ait eu beaucoup de dégâts, avec nombre de candidats sautant la question
(ou pire le reste de l'exercice alors que c'est sans rapport)
.
De quoi convaincre les concepteurs de sujets de ne pas récidiver, je crains. :(

https://toutmonexam.fr/epreuve.php?id=1910

En passant, je l'ai corrigé.
viewtopic.php?f=61&t=20169#p218633
En détaillant/justifiant la production de l'algorithme.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.2%
 
Posts: 33721
Images: 8795
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Next

Return to Corrections BAC avec calculatrice

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
-
Featured topics
Concours TI-Planet-Casio de rentrée 2019. 3 défis pour plus d'une 15aine de calculatrices graphiques et nombre de goodies sortant de l'ordinaire ! :D
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
455 utilisateurs:
>439 invités
>10 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)