Bac Maths Spécialité study materials
Bac Maths Spécialité study resources

Bac Maths Spécialité: Algorithmique et programmation Python

Bac Maths Spécialité · Work through your exam, one topic at a time.

All guide sections

Algorithmique et programmation Python

Le domaine algorithmique et programmation Python évalue la capacité à lire, tracer et modifier un algorithme, souvent en lien avec les suites, les probabilités ou les fonctions. Les questions demandent la valeur renvoyée, le nombre d’itérations, la correction d’une erreur ou la traduction d’une formule mathématique en code.

Règles et concepts essentiels

  • Une boucle for parcourt une plage ou une liste un nombre connu de fois ; une boucle while répète tant qu’une condition est vraie. Il faut vérifier l’état des variables avant et après chaque passage.
  • Une fonction retourne une valeur avec return. Un return placé dans une boucle interrompt immédiatement la fonction ; un print affiche sans renvoyer.
  • En Python, l’indentation définit les blocs. Une instruction mal indentée change le corps de la boucle ou de la condition.
  • La division entière // et le reste % sont fréquents pour tester la parité ou extraire des chiffres. Attention : 7/2 vaut 3,5 alors que 7//2 vaut 3.
  • Pour tracer un algorithme, on construit un tableau avec les variables u, n et éventuellement la condition. On écrit chaque valeur successivement, sans sauter d’itération.
  • La complexité se lit souvent au nombre de passages de boucle : une boucle simple est linéaire, deux boucles imbriquées peuvent être quadratiques.

Exemple rédigé

On considère la fonction Python suivante : def rang(): u=1 n=0 while u<100: u=2*u+1 n=n+1 return n On trace les valeurs. Au départ, u=1 et n=0. La condition u<100 est vraie. Premier passage : u=3, n=1. Deuxième : u=7, n=2. Troisième : u=15, n=3. Quatrième : u=31, n=4. Cinquième : u=63, n=5. Sixième : u=127, n=6. La condition 127<100 est fausse, la boucle s’arrête et la fonction renvoie 6. Le nombre d’itérations effectuées est donc 6, et la valeur finale de u est 127.

Pièges qui coûtent des points

  • Confondre la valeur renvoyée par return et la dernière valeur affichée par print.
  • Oublier une itération dans un tableau de trace, notamment l’état initial.
  • Utiliser / au lieu de // pour un quotient entier.
  • Placer return à l’intérieur d’une boucle alors qu’on veut une valeur après la boucle.
  • Modifier la condition d’arrêt sans vérifier son effet sur le nombre de passages.