MyHEdison

Troisième · Mathématiques · Chapitre 10

Algorithmique et programmation

Ce que tu sauras faire

  • Lire un algorithme écrit en langage naturel, en blocs (Scratch) ou en Python, et dire ce qu'il fait.
  • Suivre pas à pas l'exécution d'un programme et remplir un tableau de valeurs des variables.
  • Utiliser une variable : la déclarer, l'affecter, la modifier, et distinguer affectation et égalité.
  • Écrire et interpréter une boucle bornée (répéter n fois) et une boucle non bornée (tant que).
  • Écrire et interpréter une instruction conditionnelle, simple ou avec plusieurs cas.
  • Définir une fonction, l'appeler, et faire le lien avec la notation f(x)f(x) du chapitre sur les fonctions.
  • Traduire un programme de calcul en expression littérale, puis démontrer une conjecture sur ce programme.
  • Corriger un programme qui ne fait pas ce qu'on attend et justifier la correction.

Au programme du chapitre

  1. Qu'est-ce qu'un algorithme ?
  2. Les variables : la mémoire du programme
  3. Un programme de calcul devient une expression littérale
  4. Répéter : les boucles
  5. Choisir : les instructions conditionnelles
  6. Les fonctions : le lien avec f(x)f(x)
  7. Se déplacer, se repérer, tracer
  8. Le hasard dans un programme
  9. Corriger un programme qui ne fait pas ce qu'on attend
  10. Lire un programme au brevet : la méthode

Exercices corrigés

Exercice 1

Deux programmes doivent compter des choses. Le premier doit compter les élèves d'une liste de 28 noms, le second doit compter le nombre de jours nécessaires pour économiser 300 €. Lequel utilise une boucle bornée, lequel une boucle non bornée ? Justifie.
Un coup de pouce
Pose-toi une seule question : avant de lancer le programme, sais-tu déjà combien de tours il va faire ?
Voir la correction pas à pas
Le premier utilise une boucle bornée (for) : le nombre de tours est connu d'avance, c'est 28.
Le second utilise une boucle non bornée (while) : on ignore combien de jours seront nécessaires, on sait seulement quand s'arrêter — lorsque la somme atteint 300 €. C'est la condition, et non un compteur fixé à l'avance, qui décide de la fin.

Exercice 2

Karim a testé un programme de calcul avec les nombres 1, 2 et 3. À chaque fois, le résultat est le triple du nombre choisi. Peut-il écrire « le programme donne toujours le triple » ? Et s'il avait trouvé un seul contre-exemple ?
Un coup de pouce
Un exemple peut réfuter une affirmation universelle ; il ne peut jamais la prouver.
Voir la correction pas à pas
Non : trois essais ne sont pas une démonstration. Un programme peut donner le triple pour 1, 2 et 3 et autre chose pour 10 ou pour −4. Pour affirmer « toujours », il faut appeler xx le nombre choisi, traduire le programme en expression, puis développer et réduire : si l'on obtient 3x3x, la propriété est démontrée pour tout xx.
En revanche, un seul contre-exemple suffit pour démontrer qu'une affirmation est fausse : les deux situations ne sont pas symétriques.

Les pièges à éviter

  • Lire n = n + 1 comme une équation et conclure qu'elle est impossible.
  • Croire que range(10) fait prendre à ii les valeurs de 1 à 10.
  • Oublier d'initialiser la variable qui accumule (somme, compteur) avant la boucle.
  • Traduire « répéter jusqu'à ce que nn dépasse 100 » par while n > 100.

Pour aller plus loin

Le même thème dans d’autres classes

Mathématiques dans les autres classes

Réviser autrement