Cinquième · Technologie · Chapitre 5
Programmer un objet technique : comprendre et modifier un programme
- programme
- entrées et sorties : capteur, interface, actionneur, fichier
- donnée utilisée et donnée produite
- variable : nombre, mot, booléen
- algorithme en langage naturel
- séquence, événement, condition, boucle
- programmation par blocs
- paramètre d'un programme
Ce que tu sauras faire
- Repérer les entrées (capteurs, interface, fichiers) et les sorties (actionneurs, interface, fichiers) du programme associé à une fonctionnalité d'un objet technique.
- Identifier les données utilisées et les données produites par un programme existant, et reconnaître une variable de type nombre, mot ou booléen.
- Traduire un programme simple en un algorithme écrit en langage naturel, puis relire cet algorithme pour vérifier qu'il dit la même chose.
- Reconnaître dans un programme, écrit en blocs ou en texte, les séquences, les événements, les variables, les conditions et les boucles.
- Modifier les paramètres d'un programme, prévoir puis évaluer l'effet de chaque modification sur la fonctionnalité de l'objet.
- Analyser un programme fourni, le tester avec des valeurs bien choisies et décider s'il répond au besoin, puis le modifier pour corriger un défaut.
- Réaliser et mettre au point un programme simple qui commande un objet technique, en suivant la démarche écrire, tester, corriger.
Au programme du chapitre
- Un programme dans un objet technique : entrées et sorties
- Les données d'un programme : celles qu'il utilise, celles qu'il produit
- Du programme à l'algorithme : le raconter en français
- Les briques d'un programme : séquence, événement, condition, boucle
- Modifier les paramètres d'un programme et évaluer les effets
- Analyser un programme fourni et tester s'il répond au besoin
- Modifier un programme fourni pour répondre à un problème
- Réaliser et mettre au point un programme simple qui commande un objet
- Ce que tu sais faire maintenant
Exercices corrigés
Exercice 1
Le besoin du brumisateur d'une serre est : « il doit se déclencher quand l'humidité de l'air est de 60 % ou moins ». Le programme utilise le test « humidité plus petite que 60 ». Pour une humidité de 60 %, le brumisateur reste arrêté. L'objet est-il en panne ?
Un coup de pouce
Teste la valeur 60 elle-même et compare ce que demande le besoin avec ce que fait le programme.
Voir la correction pas à pas
Non, ce n'est pas une panne : aucune pièce n'est défectueuse. Le programme fait exactement ce qui est écrit : 60 n'est pas strictement plus petit que 60, donc le brumisateur ne se déclenche pas.
En revanche, il y a un défaut du programme par rapport au besoin : pour 60 %, le besoin demande le déclenchement (« 60 ou moins »). L'écart est sur le cas limite, pile sur la valeur du seuil. On le corrige en remplaçant « plus petit que » par « plus petit ou égal à ».
Moralité : une panne vient de l'objet, un défaut vient du programme. Avant de juger, relis le besoin, mot par mot.
En revanche, il y a un défaut du programme par rapport au besoin : pour 60 %, le besoin demande le déclenchement (« 60 ou moins »). L'écart est sur le cas limite, pile sur la valeur du seuil. On le corrige en remplaçant « plus petit que » par « plus petit ou égal à ».
Moralité : une panne vient de l'objet, un défaut vient du programme. Avant de juger, relis le besoin, mot par mot.
Exercice 2
Tom teste le programme d'un distributeur de gel avec une seule situation : une main est détectée et le réservoir est plein. Le gel est distribué, comme prévu. Il conclut que le programme est correct. Le besoin est : « distribuer du gel seulement si une main est détectée et si le réservoir n'est pas vide ». Le programme utilise le mot « ou ». Que lui réponds-tu ?
Un coup de pouce
Écris les quatre situations possibles et compare, pour chacune, le besoin avec le programme.
Voir la correction pas à pas
Un seul test ne suffit pas. Il y a quatre situations à examiner :
• main détectée, réservoir plein : le gel doit être distribué ; avec « ou », il l'est (conforme) ;
• main détectée, réservoir vide : pas de gel attendu ; avec « ou », le programme distribue (défaut) ;
• pas de main, réservoir plein : pas de gel attendu ; avec « ou », il distribue (défaut) ;
• pas de main, réservoir vide : pas de gel ; avec « ou », il n'en distribue pas (conforme).
Tom n'a testé que la situation où le défaut ne se voit pas. Il faut tester toutes les situations, surtout celles où « et » et « ou » donnent des résultats différents.
• main détectée, réservoir plein : le gel doit être distribué ; avec « ou », il l'est (conforme) ;
• main détectée, réservoir vide : pas de gel attendu ; avec « ou », le programme distribue (défaut) ;
• pas de main, réservoir plein : pas de gel attendu ; avec « ou », il distribue (défaut) ;
• pas de main, réservoir vide : pas de gel ; avec « ou », il n'en distribue pas (conforme).
Tom n'a testé que la situation où le défaut ne se voit pas. Il faut tester toutes les situations, surtout celles où « et » et « ou » donnent des résultats différents.
Les pièges à éviter
- Dire qu'un capteur est une sortie parce qu'il « envoie » une information.
- Écrire un algorithme avec les mots de Python (if, :, guillemets), ou croire qu'algorithme et programme sont la même chose.
- Lire le signe = d'une affectation comme une égalité de mathématiques.
- Oublier de tester la valeur pile au seuil.
Pour aller plus loin
Le même thème dans d’autres classes
- Programmer : comprendre, compléter et modifier un programme associé à une fonctionnalité — Technologie, quatrième
- Programmer un objet connecté : capteurs, actionneurs et algorithmes — Technologie, troisième
Technologie dans les autres classes
Réviser autrement
- Technologie : toutes les révisions — de la cinquième à la troisième
- Toutes les matières de la cinquième
- Préparer un devoir ou un DS — tous les chapitres, toutes les classes