3ᵉ · Technologie · Informatique et programmation
Un objet technique programmable (portail, robot, feu tricolore) exécute un programme. Quand ce programme devient long, on le découpe en sous-programmes : des blocs plus petits qui réalisent chacun une tâche précise. C'est la décomposition d'un problème en sous-problèmes.
Un sous-programme (ou fonction, ou « bloc » dans Scratch) est nommé, puis appelé par le programme principal autant de fois qu'on veut. On peut lui transmettre un paramètre (une valeur d'entrée, comme un angle ou une distance) pour l'adapter. Cela évite de répéter le même code : on écrit une fois, on réutilise partout.
Les sous-programmes rendent le code plus lisible, plus court, et surtout plus facile à corriger : on modifie le bloc à un seul endroit. Un système complexe combine plusieurs sous-programmes avec des conditions (si… alors), des boucles et des variables. C'est la logique de la chaîne d'information : acquérir (capteurs), traiter (programme), communiquer (actionneurs).
À quoi servent les sous-programmes dans la vraie vie ? Imagine un robot aspirateur qui doit avancer, tourner, éviter un mur et repartir : cela ferait un programme géant et illisible. Alors les ingénieurs découpent le travail en petits blocs réutilisables, comme « tourner à droite » ou « éviter obstacle ».
Chaque bloc est écrit une seule fois, puis appelé autant de fois qu'il le faut. C'est exactement ce qui fait tourner les feux de circulation, les portails automatiques ou les jeux vidéo. Découper pour mieux régner : voilà le secret des systèmes complexes.
Face à un système complexe, la première règle est de ne pas tout faire d'un coup. On décompose : on découpe le grand problème en petits problèmes plus simples à résoudre. Prenons un portail automatique : on peut le séparer en « détecter la voiture », « ouvrir le portail », « attendre », puis « fermer le portail ».
Chaque morceau devient un sous-programme facile à écrire et à tester tout seul. Ensuite, le programme principal se contente d'appeler ces blocs dans le bon ordre. C'est plus clair, plus rapide, et bien plus facile à corriger.
Un sous-programme, c'est comme une recette qu'on range dans un tiroir : on lui donne un nom, par exemple « avancer ». Ensuite, dans le programme principal, il suffit d'écrire ce nom pour l'exécuter : on dit qu'on l'appelle. Le vrai super-pouvoir, c'est le paramètre : une valeur qu'on transmet au bloc pour l'adapter.
Au lieu d'un bloc « tourner de 90 degrés », on crée « tourner de… » avec un paramètre angle. Ainsi le même bloc sert à tourner de 90, de 45 ou de 180 degrés.
Un seul bloc, mille usages.
Un système complexe ne se contente pas d'appeler des blocs en ligne : il prend des décisions. Pour cela, on utilise la condition, écrite « si… alors…
sinon ». Par exemple : si le capteur détecte un obstacle, alors appelle le bloc « éviter », sinon appelle le bloc « avancer ». On ajoute aussi des boucles pour répéter un comportement tant que la situation dure.
Le tout forme la chaîne d'information : le capteur acquiert, le programme traite avec ses blocs et ses conditions, et l'actionneur agit. C'est ainsi qu'on programme un robot vraiment autonome.
12 des 32 questions de ce chapitre. Les réponses, et les explications de chacune, sont dans l'application.