OPTION · À TON RYTHME
Apprendre étape par étape
Lis les passages ouverts, puis essaie les checkpoints. En cas d’erreur, une explication t’aide à reprendre ; tes réponses déjà réussies sont conservées. Une réussite avec aide sera à confirmer plus tard.
Avant de commencer5 questions pour vérifier tes bases
Pourquoi programmer en maths ?
La machine fait le calcul, toi tu fais le raisonnement
Beaucoup de problèmes mathématiques demandent de répéter un calcul des centaines de fois, ou de tester une condition sur une longue liste de nombres. À la main, c'est interminable et source d'erreurs. La programmation confie cette exécution mécanique à la machine : tu décris une fois pour toutes la méthode (l'algorithme), et l'ordinateur exécute les instructions écrites ; une méthode incorrecte ou des arrondis peuvent produire un résultat inadapté. Ton travail reste le plus important : penser la méthode.
Algorithme ou programme ?
Un algorithme est une suite finie d'instructions non ambiguës qui résout un problème. On peut l'écrire en langage naturel (en français, avec le symbole \(\aff\) pour « prend la valeur ») ou dans un langage de programmation comme Python. Le programme, c'est la traduction de l'algorithme dans un langage que la machine comprend.
L'idée directrice
L'idée avant le code
Une variable, c'est une boîte avec une étiquette
Choisir, répéter : les deux gestes de base
Découper pour ne pas se noyer : les fonctions
Le cours complet
Variables, types et affectation
Instructions conditionnelles : choisir
Boucles bornées : répéter un nombre connu de fois
Boucles non bornées : répéter jusqu'à une condition
Fonctions et programmation modulaire
Les listes : la grande nouveauté
Couples et produit cartésien
Identité, équation et statut des lettres
Trois structures de raisonnement
Pour aller plus loin : prouver qu'un algorithme est correct
Boîte à outils : réflexes pour le bac
Exercices
Exercice 1 ★☆☆ : Lire une affectation
On exécute : a = 4 ; b = 7 ; a = a + b ; b = a - b. Quelles sont les valeurs finales de a et b ?
Exercice 2 ★☆☆ : Trace d'une boucle
Que vaut s après ce code ? Détailler les valeurs successives.
s = 0
for k in range(1, 5):
s = s + k
Exercice 3 ★☆☆ : Lire une liste
Soit L = [3, 9, 1, 7, 4]. Donner L[0], L[2], len(L), L[len(L)-1], et la valeur de sum(L).
Exercice 4 ★☆☆ : Pair ou impair
Écrire une fonction parite(n) qui renvoie la chaîne "pair" si n est pair, "impair" sinon. (Indice : n % 2 vaut \(0\) si n est pair.)
Exercice 5 ★☆☆ : Compter
Écrire une fonction compte_pairs(L) qui renvoie le nombre d'éléments pairs d'une liste L.
Exercice 6 ★☆☆ : Liste en compréhension
Écrire, en une seule ligne (compréhension), la liste des cubes \(k^3\) pour \(k\) de \(1\) à \(10\). Puis la liste des multiples de \(3\) entre \(0\) et \(30\) inclus.
Exercice 7 ★★☆ : Somme conditionnelle
Écrire une fonction somme_positifs(L) qui renvoie la somme des éléments strictement positifs d'une liste L.
Exercice 8 ★★☆ : Table de multiplication
Écrire une fonction table(n) qui renvoie la liste [n, 2n, 3n, ..., 10n].
Exercice 9 ★★☆ : Maximum et sa position
Pour une liste non vide de nombres, écrire une fonction indice_max(L) qui renvoie l'indice du plus grand élément (le premier en cas d'égalité).
Exercice 10 ★★☆ : Suite et seuil
On définit \(u_0=2\) et \(u_{n+1}=1{,}5\,u_n\). Écrire une fonction seuil(S) qui renvoie le plus petit \(n\) tel que \(u_n>S\).
Exercice 11 ★★☆ : Recherche dans une liste
Écrire une fonction est_present(x, L) qui renvoie True si x apparaît dans L, False sinon, sans le test d'appartenance x in L. Une boucle de parcours for ... in L est autorisée.
Exercice 12 ★★★ : Logique et méthodes de preuve
1. Pour chaque implication, dire si elle est vraie, puis donner sa réciproque et dire si elle est vraie.
« \(n\) multiple de \(4\) \(\Rightarrow\) \(n\) pair » ;
« \(x>3 \Rightarrow x>1\) » ;
«
\[x^2=9\Rightarrow x=3\]».
2. Nier correctement : « tous les élèves ont réussi » ; « il existe un entier pair supérieur à \(100\) » ; « \(x>0\) et \(x<2\) ».
3. Démontrer par disjonction des cas que \(n(n+1)\) est pair pour tout entier \(n\).
4. Démontrer par contraposée : si \(n^2\) est pair, alors \(n\) est pair.
5. Démontrer par l'absurde qu'aucun entier ne peut être à la fois pair et impair.
Exercice 13 ★★★ : Tester et lister les nombres premiers
Écrire une fonction est_premier(n) qui renvoie True si n est premier (\(n\geqslant 2\)), puis une fonction premiers_jusqua(N) qui renvoie la liste des nombres premiers inférieurs ou égaux à N.
Exercice 14 ★★★ : Simulation et espérance
On lance indépendamment deux dés équilibrés et on s'intéresse à la somme \(S\). Écrire une fonction moyenne_somme(n) qui simule n lancers de deux dés et renvoie la moyenne des sommes obtenues, pour un entier \(n>0\). Autour de quelle valeur les moyennes de grands échantillons se concentrent-elles dans ce modèle ? (Lien fiche 10.)
Exercice 15 ★★★ : Inverser une liste
Écrire une fonction renverse(L) qui renvoie une nouvelle liste contenant les éléments de L dans l'ordre inverse, sans utiliser L.reverse() ni L[::-1].
Exercice 16 ★★★ : Ensembles et produit cartésien via les listes
1. Écrire une fonction intersection(A, B) qui renvoie la liste des éléments présents à la fois dans A et dans B (sans doublon). Relier au symbole mathématique correspondant.
2. Écrire une fonction produit_cartesien(A, B) qui renvoie la liste de tous les couples \((x,y)\) avec \(x\in A\) et \(y\in B\). Combien de couples obtient-on si \(A\) contient \(p\) éléments et \(B\) en contient \(q\) ?
Problème guidé d'approfondissement
Partie A : les briques de base\\[2pt] On dispose d'une liste de notes, par exemple notes = [12, 8, 15, 10, 6, 18, 9].
Écrire
moyenne(L)qui renvoie la moyenne d'une liste non vide.Écrire
maximum(L)etminimum(L)sans utilisermaxnimin.Écrire
nb_admis(L)qui renvoie le nombre de notes supérieures ou égales à \(10\).
Partie B : compréhensions et sélection\\[2pt]
En une ligne (compréhension), construire la liste des notes
>= 10.Écrire
ajuste(L)qui renvoie une nouvelle liste où chaque note est augmentée de \(1\) point, sans dépasser \(20\).
Partie C : assemblage modulaire\\[2pt]
Écrire
bilan(L)qui réutilise les fonctions précédentes et renvoie un texte du type : « Moyenne : 11.1 ; Min : 6 ; Max : 18 ; Admis : 4/7 ».Expliquer en deux phrases pourquoi découper en petites fonctions (plutôt qu'un seul long bloc) rend le programme plus sûr et plus réutilisable.
Corrigés détaillés
Corrigé 1
Corrigé 2
Corrigé 3
Corrigé 4
Corrigé 5
Corrigé 6
Corrigé 7
Corrigé 8
Corrigé 9
Corrigé 10
Corrigé 11
Corrigé 12
Corrigé 13
Corrigé 14
Corrigé 15
Corrigé 16
Corrigé du problème guidé
Fiche-mémoire
Maîtrise du chapitre
Validation contrôlée
Réponds aux QCM, sélectionne les bonnes propositions ou remets les étapes dans l'ordre. Le site vérifie chaque réponse avant d'ouvrir la balise suivante.
Parcours validé
Tu as validé les checkpoints et le bilan. Tu peux maintenant t’entraîner et revenir sur les notions quand tu le souhaites.
Télécharger la synthèse