Arborescence

Programmer

Penser en algorithmes

Avant tout langage : décomposer un problème en étapes qu'une machine peut suivre.

1 h 30Dès 9 ans, sans ordinateurFiche G1

01Objectif

À la fin de cette séquence : Décomposer une tâche en instructions non ambiguës, reconnaître les trois structures qui composent tout programme, et détecter une consigne impossible à exécuter.

02L'essentiel

Un algorithme n'admet aucun implicite

« Mets la table » suppose des dizaines de savoirs. Une machine exige : prendre une assiette, la poser devant la chaise, répéter pour chaque convive.

Trois structures suffisent à tout

La séquence (faire ceci puis cela), le choix (si... alors... sinon), la répétition (tant que... faire). Tout programme, du plus simple au plus complexe, n'est qu'un assemblage de ces trois.

Une répétition doit pouvoir s'arrêter

« Tant qu'il reste des assiettes » s'arrête, car le nombre diminue. Une condition qui ne change jamais produit une boucle infinie : la machine ne s'arrête plus.

L'ordre change le résultat

Verser le café puis le lait ne donne pas la même chose que l'inverse. C'est la source la plus fréquente d'erreurs chez les débutants comme chez les professionnels.

03Le schéma

Repetition1Verifier lacondition2Executer l'action3Modifier l'etat4Revenir au test
Si l'étape 3 ne modifie pas ce que l'étape 1 vérifie, la boucle tourne indéfiniment. C'est la première panne que tout programmeur apprend à reconnaître.

04À retenir

  • Séquence, choix, répétition : les trois briques de tout programme.
  • Aucun implicite. Ce qui n'est pas dit ne sera pas fait.
  • Toute boucle doit progresser vers sa sortie, sinon elle ne s'arrête jamais.

05Exercice

Écrivez la marche à suivre pour dessiner un carré, à donner à quelqu'un les yeux fermés qui n'a jamais vu de carré. Faites-la exécuter à la lettre. Ce qui rate indique ce que vous aviez supposé sans le dire.

Indice — Comptez les angles : si vous n'avez pas précisé « tourner d'un quart de tour », le résultat sera surprenant.

06Vérification des acquis

Qu'est-ce qu'une boucle infinie ?

Une répétition dont la condition d'arrêt n'est jamais atteinte, parce que rien dans le corps de la boucle ne la fait évoluer. Le programme se fige.

Pourquoi l'ordre des instructions compte-t-il autant ?

Parce que chaque instruction modifie l'état de la machine, et que la suivante travaille sur cet état modifié. Inverser deux lignes peut changer entièrement le résultat.