Chargement…

Un éclairage de couloir doit s'allumer quand la pièce devient sombre. Le capteur de luminosité renvoie une valeur de 0 (noir) à 100 (très lumineux). On mesure 80 en plein jour et 15 le soir. Écrire l'algorithme.
Données : entrée = luminosité (0 à 100), sortie = LED. Seuil choisi entre 15 et 80, par exemple 40. Algorithme : répéter indéfiniment ; mettre la valeur du capteur dans la variable lumiere ; si lumiere < 40 alors allumer la LED sinon éteindre la LED. La lecture est dans la boucle, donc l'éclairage réagit à chaque changement. Test : à 80 la LED reste éteinte, à 15 elle s'allume.
Un robot doit s'arrêter devant un obstacle. Son capteur de distance renvoie des centimètres. Écrire une fonction obstacle_proche qui renvoie vrai si la distance est inférieure à 20, puis le programme principal. Que fait le robot si le capteur indique 35 puis 12 ?
Fonction obstacle_proche : lire le capteur dans la variable d ; renvoyer (d < 20). Programme principal : répéter indéfiniment ; si obstacle_proche() alors arrêter les moteurs sinon avancer. Avec 35 : 35 < 20 est faux, la fonction renvoie faux, le robot avance. Avec 12 : 12 < 20 est vrai, le robot s'arrête. Grâce à la fonction, le programme principal est lisible et la lecture peut être réutilisée ailleurs.
Un capteur de température renvoie 18 le matin et 31 l'après-midi. On veut allumer un ventilateur quand il fait chaud. Propose un seuil justifié et écris la condition.
Seuil possible : 25 ; condition : si temperature > 25 alors allumer le ventilateur.
Le seuil doit se situer entre les deux mesures relevées (18 et 31) pour distinguer frais et chaud. Toute valeur strictement entre elles est défendable ; 25 est un choix raisonnable. Le sens de la comparaison (>) correspond à l'action voulue : agir quand il fait plus chaud.
Pourquoi le programme « lire le capteur de contact ; si contact alors allumer la LED » sans boucle ne réagit-il qu'une seule fois ? Comment le corriger ?
Sans boucle, le programme exécute les instructions une seule fois puis se termine ; il faut placer la lecture et le test dans une boucle (répéter indéfiniment).
Un programme séquentiel lit la valeur à un instant donné et s'arrête. Pour surveiller un phénomène qui évolue, la lecture et la condition doivent être répétées ; la boucle permet d'actualiser la valeur à chaque tour.
Quel est l'intérêt de mettre la lecture d'un capteur de distance dans une fonction plutôt que de la recopier dans le programme principal ?
La fonction évite de répéter le code, rend le programme principal plus lisible et permet de corriger ou modifier la lecture en un seul endroit.
Regrouper la lecture et le test dans une fonction nommée (par exemple obstacle_proche) structure le programme, réduit les erreurs de recopie et permet de réutiliser la même mesure dans plusieurs parties du programme.
Cette fiche fait partie de notre collection TechnologieRetrouve nos autres fiches de 3e pour réviser efficacement !
Voir toutes les fiches