Page 1 of 1

BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 18 Oct 2017, 18:27
by critor
Depuis 2012 au Baccalauréat, les sujets de Mathématiques peuvent interroger sur l'algorithmique. Mais d'un sujet à un autre, la forme d'écriture des algorithmes pouvait fortement varier d'un sujet à un autre, selon la sensibilité de l'auteur du sujet à tel ou tel langage.

Pour le BAC 2018, nous disposons enfin d'une uniformisation des règles d'écriture.
L'instruction d'affectation, souvent décrite par une ligne longue et lourde … prend la valeur … ou encore Affecter à … la valeur … adoptera désormais une écriture concise similaire à celle des calculatrices, … ← ….

Mais ce n'est pas le seul changement. Les règles en profitent également pour faire évoluer les choses, avec :
  • La suppression de la déclaration des variables que certains auteurs de sujets mettaient en début d'algorithme. Désormais, si des hypothèses sont à préciser sur le type de certaines variables, elles devront faire partie de l'énoncé, et non du document-algorithme.
  • La suppression de l'indication d'un découpage entre initialisation, traitement et sortie.
  • La suppression des instructions d'entrées Saisir …. Les variables utilisées par l'algorithme sans y être affectées au préalable, seront donc réputées avoir reçu les valeurs nécessaires avant l'exécution de l'algorithme, valeurs qui seront si besoin précisées par l'énoncé.
  • La suppression des instructions de sortie Afficher …. Les algorithmes de BAC jusqu'en 2017 avaient en effet le défaut de faire confondre affichages et résultats. C'est une fois encore l'énoncé qui précisera la variable-résultat et interrogera dessus.

Mine de rien, avec le retrait des entrées-sorties du corps de l'algorithme, il s'agit d'une évolution certes encore timide vers de la programmation fonctionnelle, conformément au nouveau programme de Seconde de la rentrée 2017. Il est regrettable qu'à l'exception de la NumWorks, aucune autre calculatrice graphique abordable (entrée ou de milieu de gamme) ne soit à ce jour prête pour cette révolution.

Plusieurs exemples officiels de réécritures d'algorithmes du BAC 2017 selon les nouvelles règles du BAC 2018 ont été publiés :
  • Exercice n°2 du sujet de Mathématiques BAC ES/L de juin 2017 en Métropole :
    Version originaleVersion 2018
    Code: Select all
    Variables
       S est un nombre réel
       N est un entier
       U est nombre réel
    Initialisation
       S prend la valeur 0
       U prend la valeur 900
       Pour N allant de 1 à 12 :
          Affecter à S la valeur …
          Affecter à U la valeur 0,75U+12
       Fin Pour
    Code: Select all
    S←0
    U←900
    Pour N allant de 1 à 12
       S←…
       U←0,75U+12
    Fin Pour
  • Exercice n°1 du sujet de Mathématiques du BAC S de juin 2017 en Métropole :
    Version originaleVersion 2018
    Code: Select all
    Variables
       λ est un réel positif
       S est un réel strictement compris entre 0 et 1
    Initialisation
       Saisir S
       λ prend la valeur 0
    Traitement
       Tant que 1−(λ+1)/e^λ<S faire
          λ prend la valeur λ+1
       Fin Tant que
    Sortie
       Afficher λ
    Code: Select all
    λ←0
    Tant que 1 −(λ+1)/e^λ<S faire
       λ←λ+1
    Fin Tant que
  • Exercice n°1 du sujet de Mathématiques du BAC STI2D / STL(SPCL) de juin 2017 en Métropole :
    Version originaleVersion 2018
    Code: Select all
    Variables
       N : un nombre entier naturel
       k : un nombre entier naturel
       u : un nombre réel
    Entrée
       Saisir N
    Initialisation
       u prend la valeur 660
    Traitement
       Pour k allant de 1 à …
          u prend la valeur …
       Fin pour
    Sortie
       Afficher u
    Code: Select all
    u←660
    Pour k allant de 1 à …
       u←…
    Fin pour
  • Exercice n°2 du sujet de Mathématiques du BAC STL(Bio) de juin 2017 en Métropole :
    Version originaleVersion 2018
    Code: Select all
    Variables
       n entier naturel
       C réel
    Initialisation
       Affecter à n la valeur 0
       Affecter à C la valeur 3,4
       Traitement Tant que C est supérieur à 1
          Affecter à n la valeur n+1
          Affecter à C la valeur 0,8×C
       Fin tant que
    Sortie
       Afficher n
    Code: Select all
    n←0
    C←3,4
    Tant que C≥1
       n←n+1
       C←0,8×?
    Fin Tant que
  • Exercice n°4 du sujet de Mathématiques du BAC STMG de juin 2017 en Métropole :
    Version originaleVersion 2018
    Code: Select all
    Variables
       n est un nombre entier
       u et k sont des nombres réels
    Traitement
       Saisir ?
       n prend la valeur 0
       u prend la valeur 3081,45
       Tant que u<k Faire
          u prend la valeur 1,04×u
          n prend la valeur n + 1
       Fin Tant que
       Afficher n
    Code: Select all
    n←0
    u←3081,45
    Tant que u<k
       u←1,04×u
       n←n+1
    Fin Tant que


Pour avoir également les évolutions de formulation de l'énoncé qui va avec, voir le document téléchargeable ci-dessous.



Téléchargement : archives_voir.php?id=1185924

Sources :

Re: BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 18 Oct 2017, 18:51
by critor
Perso pour les devoirs, j'utilisais déjà pour l'affectation la notation variable←valeur depuis 2009, et je ne l'ai jamais regretté. :)
Et je ne mettais pas non plus la description des variables dans le document-algorithme.

J'en connais donc qui ne devraient pas être perturbés par le changement. ;)

Re: BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 18 Oct 2017, 19:49
by LaFouine94
OK la déclaration des variables, ce n'était pas indispensable, mais la saisie, c'est quand même un peu perturbant de la supprimer.
Pour qu'un élève programme un algo de suite divergente dont il veut savoir quand elle dépasse une valeur particulière, c'est dommage d'avoir supprimé cette notion d'input...
Surtout que parfois, dans les exercices, il est demandé de trouver à partir de quel rang la suite dépasse (par exemple) 10, 100, 500.
Du coup, à chaque fois, il va falloir modifier le programme puisqu'on ne pourra mettre cette valeur qu'en dur dans le code...
C'est un peu idiot, non ?
A trop vouloir simplifier, cela devient réducteur je trouve...

Re: BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 18 Oct 2017, 20:03
by critor
En pratique, autant l'affectation ça passe, autant les élèves pouvaient avoir tendance à confondre entrées et sorties. Tout comme ils confondent aisément abscisses et ordonnées. Je n'ai pas encore trouvé de solution miracle.

Autant la suppression pure et simple de toute indication de résultat (instruction afficher finale que l'on aurait pu remplacer par une instruction renvoyer/retourner) me dérange, autant la saisie ne fait à mon sens pas partie de l'algorithme que j'ai toujours défini en tant qu'une autre forme d'écriture de fonction.

Sinon patiente, les entrées reviendront sous forme d'arguments d'une écriture fonctionnelle à partir du BAC 2020.

Re: BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 18 Oct 2017, 20:14
by parisse
Je trouve que la non declaration des variables (locales) n'est pas une bonne idee, car elle permet de bien distinguer les arguments d'une fonction des variables qui sont uniquement necessaires au deroulement de l'algorithme (c'est sans doute une consequence de la mode actuelle pour Python, les variables locales n'y necessitant pas de declaration).

Re: BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 19 Oct 2017, 11:53
by Adriweb
Je pense qu'on peut supposer que toutes les variables qui arrivent comme un cheveu sur la soupe sont en fait des paramètres/saisies, mais en effet, ça surprend un peu.
On peut espérer que ce soit quand même dit avant, par exemple dans l'énoncé : "S est une entrée", ou quelque chose du genre. Apparemment en 2020 ça sera plus explicite voire directement dans l'algo si c'est sous forme d'algo avec des fonctions ayant des arguments, mais éclaircir le sujet avant ne serait pas plus mal.

Re: BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 20 Oct 2017, 15:33
by Alvoko
Ce changement a un avantage c'est qu'il permet de rapprocher le langue algo machine de algorithmie classique, mais un autre défaut. Le fait de ne pas déclarer les variables ne posent aucun problème pour les 82a ou 83pce mais pour les calculatrices plus haut gamme cette forme d'écriture risque de faire confusion chez les élèves ayant de telles modèles. Et surtout pour quelqu'un arrivant en seconde sans avoir fait de programmation de toute sa vie va avoir plus de mal à comprendre "->" que " prend la valeur ".(mais bon en trois ans de lycée on a largement le temps de le comprendre non?)

Re: BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 20 Oct 2017, 17:46
by critor
En pratique, mon impression est que la flèche passe mieux que "prend la valeur" / "affecter à ... la valeur". Je serais davantage inquiet du Python qui note = pour l'opérateur d'affectation, ce qui n'a pas du tout le même sens que le = mathématique. Un exemple ? Une affectation récursive, x=x+1, qui en langage mathématique signifie et implique tout autre chose. Bonjour les confusions et donc erreurs... Sur ce critère, un très mauvais choix de langage pour des lycéens qui sont encore en "construction mathématique" à mon avis.

Pour les modèles de haut de gamme (TI-Nspire, HP Prime et fx-CP400+E), aucun n'oblige à déclarer les variables, c'est juste une possibilité. Il y a parfois quelques contraintes toutefois lorsque l'on souhaite s'affranchir des déclarations.

Par contre, les entrées/sorties, aussi simples qu'elles puissent nous paraître, étaient perturbantes. Possiblement parce qu'elles restent abstraites sur une feuille de papier. Pour ça qu'à la place de la suppression pure et simple de l'instruction afficher, j'aurais préféré une instruction renvoyer finale.

Re: BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 23 Oct 2017, 06:04
by randlog
critor wrote:En pratique, mon impression est que la flèche passe mieux que "prend la valeur" / "affecter à ... la valeur".


Surtout quand il y a des variables des deux côtés du style, A prend la valeur B et que certains savent jamais si c'est A ou B qu'on modifie...

Re: BAC 2018 : nouvelle écriture des algorithmes

Unread postPosted: 23 Oct 2017, 17:52
by Ti64CLi++
Ca me semble pourtant explicite que A prend la valeur B, bah c'est A qui prend la valeur B :lol: