Corrigé des sujets d’algorithmique au bac de novembre 2014 (ES, S, STMG)

jeudi 27 novembre 2014
par  Alain BUSSER

  • Amérique du Sud novembre 2014 :
    • ES : l’exercice 3 « spé » portait sur une chaîne de Markov, avec une suite arithmético-géométrique ; la version « obli/L » portait sur une suite géométrique.
    • S : La partie C de l’exercice 4 portait sur une somme de Riemann.
  • Nouvelle-Calédonie novembre 2014 :
    • S : Somme des termes d’une suite (en « obli » ; l’exercice « spé maths » comportait l’algorithme d’Euclide avec soustractions, non traité ici mais déjà donné au rallye).
    • ES/L : Le dernier exercice décrivait un algorithme de recherche d’un maximum par balayage ; non traité ici.
    • STMG : Le premier exercice portait sur la somme des termes d’une suite géométrique

Corrigé du bac novembre 2014 Amérique du Sud ES/L

Le sujet « obligatoire » :

Une agence de presse a la charge de la publication d’un journal hebdomadaire traitant des informations d’une communauté de communes dans le but de mieux faire connaître les différents évènements qui s’y déroulent.
Un sondage prévoit un accueil favorable de ce journal dans la population.
Une étude de marché estime à 1200 le nombre de journaux vendus lors du lancement du journal avec une progression des ventes de 2% chaque semaine pour les éditions suivantes.
L’agence souhaite dépasser les 4000 journaux vendus par semaine.

L’algorithme est « classique » : On boucle jusqu’à ce que le seuil de 4000 journaux par semaine soit dépassé (autrement dit, tant que 4000 est plus grand que la vente de journaux), et dans la boucle, on met à jour

    • la vente de journaux (en l’augmentant de 2%),
    • le nombre de semaines écoulées (simplement incrémenté).

On a donc besoin de deux variables : Le temps (« semaine », une variable entière initialisée à 1) et les ventes de journaux (« ventes », une variable a priori réelle [1] initialisée à 1200). Le script est alors une traduction relativement directe de l’énoncé :

ventes = nouvelle Variable 1200
semaine = nouvelle Variable 1
Jusqu'à ce que ventes.valeur >= 4000
    augmenter ventes de 2 pourcents
    incrémenter semaine
montrer semaine

Le sujet « spé » :

La première semaine de l’année, le responsable de la communication d’une grande entreprise propose aux employés de se déterminer sur un nouveau logo, le choix devant être fait par un vote en fin d’année.
Deux logos, désignés respectivement par A et B, sont soumis au choix.
Lors de la présentation qui se déroule la première semaine de l’année, 24% des employés sont favorables au logo A et tous les autres employés sont favorables au logo B.
Les discussions entre employés font évoluer cette répartition tout au long de l’année.
Ainsi 9% des employés favorables au logo A changent d’avis la semaine suivante et 16% des employés favorables au logo B changent d’avis la semaine suivante.

Le début de l’exercice montre que, si an est la probabilité qu’un employé préfère le logo A la semaine n, alors an+1=0,75an+0,16, ce qui permet de calculer la suite an dans une boucle. La condition pour quitter la boucle est que la probabilité soit passée au-dessus de 0,639, donc la condition pour rester dans la boucle est

    • la probabilité est plus petite que 0,639, ou
    • 0,639 est plus grand que la probabilité (ci-dessous)

Comme le terme général est la probabilité que l’employé préfère le logo A, il vaut mieux le noter pA (comme « probabilité de A ») pour rappeler à la lecture du script, ce que désigne cette variable ; de même l’indice de la suite représentant une date (en semaines), il vaut mieux l’appeler « semaine » que « n » :

pA = nouvelle Variable 0.24
semaine = nouvelle Variable 1
Jusqu'à ce que pA.valeur > 0.639
    diminuer pA, de, 1, quart
    augmenter pA, de, 0.16
    incrémenter semaine
montrer semaine

Une variante est montrée dans l’interpréteur en bas de page.


Corrigé du bac S novembre 2014 Amérique du Sud

Le sujet :

On désire réaliser un portail de même forme mais à partir de planches rectangulaires disjointes de largeur 0,12 m, espacées de 0,05 m. Pour le vantail de droite, le coin supérieur gauche de chaque planche est situé sur le bord supérieur du vantail (voir l’annexe 2 de l’exercice 4) et le bas de chaque planche à 0,05 m de hauteur. Les planches sont numérotées à partir de 0 : ainsi la première planche à gauche porte le numéro 0.

Ici on doit définir la fonction donnant les hauteurs des planches. Par ailleurs il faut tenir compte du décalage de 17 cm (12cm + l’écart par rapport à la planche précédente).

Comme dans l’exercice « obligatoire » du sujet S Nouvelle-Calédonie ci-dessous, il peut être commode de nommer f la fonction décrivant les hauteurs des planches. Ce qui est dans les faits, une affectation d’une variable de type « fonction ». Ensuite, dans la boucle, on additionne les aires des planches, chacune ayant pour largeur 0,15 et pour hauteur f(abscissePlanche), la variable portant un nom rappelant ce qu’elle représente. Voici le script :

f = (x) ->
    (x+1/4)*Math.exp(-4*x)+5/4
abscissePlanche = nouvelle Variable 0
aireTotale = nouvelle Variable 0
Jusqu'à ce que abscissePlanche.valeur > 2-0.17
    augmenter aireTotale de 0.12*f(abscissePlanche.valeur)
    augmenter abscissePlanche de 0.17
montrer aireTotale

On remarque que la fin de la sommation a lieu, non lorsque l’abscisse de la planche atteint ou dépasse 2, mais lorsque le bord droit dépasse 2 mètres. Le seuil est donc 2 mètres, moins la largeur d’une planche.


Corrigé du sujet S bac Nouvelle-Calédonie novembre 2014

Le sujet « obligatoire » :

On considère la fonction f définie sur l’intervalle [0 ;+∞[ par : f(x)=5-4/(x+2).
On considère la suite (un) définie par u0=1 et, pour tout entier naturel n, un+1=f(un).
Compléter l’algorithme donné en annexe 2 pour qu’il affiche la somme Sn pour la valeur de l’entier n demandée à l’utilisateur.

Le corrigé Sophus se fait en deux parties :

  • Définition de la fonction f : Par des transformations très sophusiennes, on peut
    • créer une nouvelle variable, destinée, à terme, à être l’image de x par f ;
    • initialiser cette variable à la valeur de x ;
    • lui ajouter 2 pour avoir x+2 ;
    • inverser le résultat pour avoir 1/(x+2) ;
    • multiplier l’inverse par -4 pour avoir -4/(x+2) ;
    • ajouter 2 pour avoir f(x) ;
    • retourner la valeur finale de y

Le script est alors celui-ci :

f = (x) ->
    y = nouvelle Variable x
    augmenter y de 2
    inverser y
    quadrupler y
    multiplier y par -1
    augmenter y de 2
    y

Dorénavant il suffit d’écrire f(x) pour avoir l’image de x par f (attention : x peut être soit un nombre soit une variable de Sophus, alors que f(x) est une variable Sophus et pas un nombre. Cela ne change rien au programme d’addition).

  • Somme des termes de la suite.

L’énoncé demande que n (nombre de termes à additionner) soit entré par l’utilisateur. Celui-ci ayant oublié d’être masochiste, on préférera ici, entrer n (ici, 6) directement dans le script. Mais pour les masochistes, Sophus possède l’équipement SM compatible avec les sujets de bac, en remplaçant

n = 6

(qui est alors un nombre), par

n = nouvelle Variable
entrer n

Pour additionner 6 termes consécutifs de la suite, voici le script :

f = (x) ->
    y = nouvelle Variable x
    augmenter y de 2
    inverser y
    quadrupler y
    multiplier y par -1
    augmenter y de 2
    y


#plutôt que demander à l'utilisateur d'entrer une variable
#autant la modifier directement dans le script...
n = 6


indice = nouvelle Variable 0
S = nouvelle Variable 0
Jusqu'à ce que indice.valeur > n
    augmenter S de f(indice)
    incrémenter indice
montrer S

Corrigé du sujet bac STMG Nouvelle-Calédonie novembre 2014

Le sujet :

On suppose que le prix moyen d’un paquet de cigarettes augmente de 6% par an à partir du 1er janvier 2000. On note un le prix moyen d’un paquet de cigarettes pour l’année (2000+n).
On a donc u0=3,2.

L’algorithme a pour but d’additionner les termes de la suite un. En dehors du cas hypothétique de quelqu’un qui achèterait un paquet de cigarettes par an, et pour qui on calculerait ainsi la dépense totale, on voit mal l’intérêt dans le cadre de cet exercice, de l’algorithme en question... Ceci dit, le voici, dans une version à comparer avec celle de l’énoncé, bien moins concise que celle ci-dessous :

prixPaquet = nouvelle Variable 3.2
prixTotal = nouvelle Variable 3.2
4 fois faire
    augmenter prixPaquet de 6 pourcents
    augmenter prixTotal de prixPaquet
montrer prixTotal

Pour tester les scripts ci-dessus, on peut les copier vers l’interpréteur suivant :

Interpréteur Sophus

Sortie en français

© IREM de La Réunion: Alain Busser, Florian Tobé 2014

[1en fait, entière puisque les journaux incomplets ne se vendent pas. Il faut dire que la cohérence n’a pas été une priorité chez les concepteurs des sujets du bac de novembre 2014, voir le sujet de STMG. Cependant, pour garantir un nombre entier de journaux (donc une augmentation qui n’est pas forcément exactement de 2%), on peut rajouter une ligne dans le script, comme ceci :

ventes = nouvelle Variable 1200
semaine = nouvelle Variable 1
Jusqu'à ce que ventes.valeur >= 4000
    augmenter ventes de 2 pourcents
    arrondir ventes
    incrémenter semaine
montrer semaine

mais cela ne change pas la réponse qui est toujours de 62 semaines.


Portfolio

PNG - 32 kio PNG - 22 kio PNG - 26.8 kio PNG - 28.1 kio PNG - 32.8 kio PNG - 26 kio

Commentaires