Algorithmique au bac 2013

dimanche 23 juin 2013
par  Alain BUSSER

L’algorithmique était présente dans la plupart des sujets du bac ES/L et S. Voici comment les algorithmes présentés lors de cette session peuvent être testés avec MathsOntologie.

Bac ES/L

Pondichery

Sujet

Voici l’extrait du sujet où l’on parle d’algorithmique :


Question 3

Comme il est clair que S est un seuil et U un capital, autant les renommer respectivement seuil et capital (et au passage, n devient an puisqu’on compte par années).

Pour entrer une donnée numérique, il faut

  • créer une entrée interactive avec Interactif new ;
  • lui demander un champ d’entrée de nombre avec entrerNombre suivi du message à afficher.

L’algorithme (on boucle jusqu’à ce qu’on ait dépassé le seuil) devient alors

Question 4

Pas besoin de modifier l’algorithme, seul le seuil doit être modifié ; on relance donc l’algorithme, et lorsqu’il demande le seuil, on met 5000 :

On obtient alors la réponse suivante :

Comme il faut attendre jusqu’à 2021 pour dépasser le seuil de 5000 €, celui-ci ne sera pas encore atteint en 2013.

Question 5

Une petite modification consistant à affecter le seuil (décuple du capital initial) après le capital :

Liban

Voici l’énoncé :

et le script MathsOntologie :

Amérique du Nord

Le sujet parlant de gestion d’une bibliothèque, autant renommer les variables avec des noms plus évocateurs :

Ainsi, au lieu d’appeler n l’indice, an est plus approprié (et autant commencer à compter en 2013 plutôt qu’en 0), et u représentant le nombre d’ouvrages, en milliers), autant l’appeler milliersLivres ; c’est plus long à taper mais plus rapide à lire :

Polynésie

Le sujet modélisait l’exportation de produits perliers de Polynésie par une suite géométrique :

D’où l’idée de remplacer les noms d’une lettre par des noms plus évocateurs :

  • an à la place de n (et commencer à compter à partir de 2011 pour éviter l’addition finale) ;
  • seuil à la place de P ;
  • produitsPerliers à la place de U :

Centres étrangers

Un QCM sur une suite arithmético-géométrique (sujet très à la mode au bac 2013, tant en ES qu’en S) :

Ce sujet illustre parfaitement le fait que les boucles tant que des langages de programmation habituels sont bien moins naturelles que leurs négations jusque, puisque la réponse correcte est exprimée avec l’idée de jusque (« le plus petit »...) :

Sujet dévoilé

L’algorithmique apparaît deux fois :

Obligatoire

Le sujet portait sur une suite géométrique :

On pouvait traiter cela avec des pourcentages :


Spécialité

Le sujet portait sur une suite arithmético-géométrique avec une matrice de Markov :

On pouvait donc aussi le traiter matriciellement :

On lit avec l’abscisse du vecteur que la probabilité que l’employé boive du café le quatrième jour est environ 0,666.

Mais la suite arithmético-géométrique était également présente, avec un algorithme :

Voici un corrigé possible :

Polynésie septembre

La population de l’Allemagne (nombre de personnes résidant
sur le territoire allemand) s’élevait à 81751602 habitants au premier janvier 2011. De plus, on sait qu’en 2011, le nombre de naissances en Allemagne ne compense pas le nombre de décès, et sans tenir compte des flux migratoires on estime le taux d’évolution de la population allemande à -0,22%. On admet que cette évolution reste constante les années suivantes.

Comme d’habitude, les variables portent des noms ésotériques empêchant de deviner ce qu’elles représentent : U pour le terme général (alors que « population » était plus parlant), et N pour l’indice (au fait, S doit sans doute déisgner un seuil). Mais l’usage de la calculatrice graphique est prévu, et celle-ci n’a que des lettres majuscules, et il est plus rapide d’utiliser des noms de variables d’une seule lettre :

Le corrigé direct est ceci :

Ceci dit, en se rappelant que la raison de la suite géométrique vient d’une baisse de 0,22% et ce que représente son terme général, on peut faire plus concret :

En fait, il s’agit juste d’une variante du script précédent, avec des noms de variables plus évocateurs :

Antilles-Guyane septembre

Encore une suite arithmético-géométrique, avec une histoire de club de randonnée au succès grandissant :

La solution à la sauce MathsOntologie :


Bac S

Pondichery

L’exercice sur les probabilités comporte un exercice sur une suite arithmético-géométrique, vue sous l’angle algorithmique :

Comme (d’après la partie précédente du sujet), J désigne le numéro de la semaine et K le nombre de décimales auquel arrondir, autant renommer J en semaine et remplacer K par le nombre auquel arrondir (0,001 au lieu de 3 par exemple). Ce qui donne le résultat suivant :

Liban

Obligatoire

Voici le sujet :

En fait, on n’a pas besoin de l’indice i pour boucler :

Par contre, les arrondis montrent mieux que les valeurs exactes, la convergence :

En représentant la suite par un « dictionnaire » (ou tableau associatif), les clés étant les indices successifs i et les valeurs étant les valeurs successives de la suite v, on peut représenter graphiquement la suite et conjecturer sa convergence :


Spécialité

Voici le début du sujet :

Et le script :

La suite du sujet étudie la même suite du point de vue matriciel :

Le produit des trois matrices P, D et Q donne bien la matrice A :

Amérique du Nord

Obligatoire

Le sujet portait sur une suite récurrente :

et voici une proposition de corrigé :

Pour la suite :

on peut faire cette modification :


Spécialité

Une fois qu’on a fait le (c), on peut améliorer la présentation de l’algorithme :

En imprimant 13//4 et 13\\4 (ou 13 modulo: 4) on peut vérifier que cet algorithme fait bien une division euclidienne.

Polynésie

Le sujet visait à approcher l’intégrale d’une fonction (x → (x+2)e-x en l’occurence) sur [0 ;1] par la méthode des rectangles :

Comme la somme des rectangles est une fonctionnelle (un algorithme acceptant une fonction comme valeur d’entrée), on va rebaptiser la fonction laFonction au lieu de f ; la lettre f désignant l’antécédent de l’algorithme algo.

Pour représenter graphiquement la fonction, il suffit de l’affecter :

Mais pour dessiner les 4 rectangles de l’énoncé, il faut un tableau de valeurs, construit sous forme de tableau associatif (ou « dictionnaire ») :

Pour additionner les aires des rectangles, on peut faire plus court qu’une boucle :

  • On crée la liste des entiers allant de 0 à 3 (les valeurs successives des indices, regroupées dans un tableau) ;
  • on fait picorer la fonction sur les quarts des valeurs ci-dessus (des x allant de 0 à 1 par pas de 1/4) ; on obtient alors une liste de valeurs de la fonction ;
  • on additionne les éléments de cette liste :

Remarque : On n’a pas besoin de décrire l’algorithme comme fonctionnel pour l’exécuter, il suffit de faire référence directement à la fonction f de l’énoncé :

Pour la question (b), la seule modification à apporter est l’entrée de N, au passage rebaptisé nombreDeRectangles :

Pour comparer avec une valeur plus précise, on peut faire appel à la méthode des trapèzes embarquée dans MathsOntologie :

Centres étrangers

Obligatoire

Le sujet porte sur une suite récurrente :

  • u1=3/2.
  • un+1=(n×un+1)/(2(n+1))

Question 1

En laissant 3/2 au lieu de 1,5 on voit que le terme général de la suite est un rationnel. Ici au rang 9 :

Simplifications

  • On aurait pu remplacer la ligne avec [ indice < 9 ] par simplement 9 foisRépète:
  • On aurait pu se passer de l’indice avec une boucle à nombre prédéterminé d’exécutions (c’est au programme !), avec
(1 jusque: 9) fais: [ :indice |
	termeGénéral := (indice*termeGénéral+1)/2/(indice+1).
	]

Question 2

Il suffit de déplacer la sortie :

Partie C

Le sujet revient à l’agorithmique après l’étude de la suite (en partie B) :

En s’inspirant de la partie A, écrire un algorithme permettant de déterminer et d’afficher le plus petit entier n tel que un < 0, 001.

Étonnant : Il faut apparemment beaucoup d’itérations, et pourtant l’affichage du résultat est instantané avec MathsOntologie :


Spécialité

Une chaîne de Markov pour modéliser les migrations d’une espèce d’oiseaux :

Pas facile de repérer les « oublis » : Celui de la liste des variables et leur type doit-il être noté au bac ?

En tout cas, les affichages sont mal placés (oubli ou erreur ?) et il manque l’incrémentation de l’indice, ce qui fait boucler sans fin. Information pratique : Si MathsOntologie boucle sans fin, faire Alt et le point, ça interrompt celui-ci...

Asie

Obligatoire

Une suite récurrente (itérations d’une homographie) :

C’est une bonne occasion pour simuler l’écriture d’un tableau avec MathsOntologie :


Spécialité

Une affinité dans le plan, vue sous l’angle matriciel :

Comme MathsOntologie possède des matrices, autant les utiliser directement pour simplifier l’algorithme (l’erreur signalée dans l’énoncé ne concernait pas les calculs matriciels eux-mêmes) :

Si on lance ce programme, il va se bloquer à la phase « entrée », avec l’afichage de cette fenêtre modale :

Comme le résultat est fourni dans l’énoncé jusqu’au rang 15, on entre 15 pour vérifier qu’on ne s’est pas trompé dans l’écriture de ce programme ; on obtient alors [1]

On constate que

  • C’est conforme aux résultats donnés dans l’énoncé ;
  • on peut facilement émettre une conjecture, surtout si on (re)connaît les puissances de 2...

Antilles-Guyane

Obligatoire

Une suite récurrente, mais complexe (A et B sont les parties réelle et imaginaire du terme général)

On peut donc la traiter directement avec les nombres complexes :

Réunion/métropole

Une résolution d’équation par la méthode de dichotomie :

Entrer la fonction

La notation est « polonaise inversée » : on écrit x avant d’écrire ln, parce qu’on envoye le message ln (qui veut dire « s’il te plaît, donne-moi ton logarithme ») au nombre x :

On vérifie par l’allure de la représentation graphique, que cette notation est algébriquement correcte.

Type des nombres

Si on entre a et b comme entiers, les valeurs successives de m seront reconnues comme des fractions et affichées comme telles :

Comme au bon vieux temps de Python 2.6, on va donc écrire l’un des deux nombres a et b comme décimal, et les calculs seront menés en décimaux :

Vérification

MathsOntologie sait résoudre numériquement ce genre d’équation :

La question précédente demandait un encadrement entier de l’autre solution de l’équation f(x)=1 ; on peut faire comme ci-dessus pour cela :

*

Ce qui permet de répondre à la question c :

c) L’autre solution par modification de l’algorithme


Bacs STI2D/STL

Polynésie

(sujet commun aux sections STI2D et STL)

La partie algorithmique traitait d’une suite arithmético-géométrique, et demandait d’analyser un algorithme tout fait :

Les élèves de terminale STI2D semblant plus naturel de « boucler jusqu’à ce que » que de « boucler tant que », on peut remplacer la condition « tant que U-5>0,01 » par « jusqu’à ce que U≤5,01 » :

Antilles/Guyane

Une suite géométrique :

Le sujet est assez simple, le corrigé aussi :

Réunion/métropole

Une histoire de pertes dans un câble, pour utiliser une suite géométrique :

On peut donner aux variables des noms plus évocateurs que dans l’énoncé, pour mieux faire la suite de l’exercice :

Par la suite il y avait un tableau à remplir :

En plaçant l’affichage dans la boucle, on peut remplir le tableau (lequel semble confondre n, valeur finale de l’indice de la boucle, avec l’indice lui-même) :

STL Polynésie

Le sujet :

Le corrigé :


[1avec une nouvelle erreur de programmation, ou plutôt de grammaire, dans la première ligne affichée (invisible ici)


Commentaires