Etabli
← Retour aux leçons
Leçon · FND-03 · Logique de programmation · 3/4

Approfondir : fonctions et tableaux

4 étapes·25 min·0/4 fait·quiz à réussir
voix

Ton code marche, mais il s'allonge : les mêmes cinq lignes de clignotement recopiées trois fois, huit boîtes baptisées mesure1 à mesure8… Cette leçon t'offre les deux outils des élégants : , qui donne un nom à une intention et se teste toute seule, et le tableau, qui range cent mesures dans une seule boîte numérotée — avec, en récompense, la qui apprivoise les mesures folles.

📖 Comprendre

1. La fonction : nommer une intention

Quand les mêmes lignes apparaissent deux fois, dupliqué devient un bug en attente : tu corriges une copie, tu oublies l'autre, et le robot fait deux choses différentes selon l'endroit. Le remède est : on extrait les lignes répétées, on leur donne un nom, et partout ailleurs on APPELLE ce nom. Une seule version du geste existe — la corriger une fois, c'est la corriger partout.

Un bon nom de fonction est un verbe qui dit l'intention : clignoter, mesurer, freiner. , une responsabilité — si tu as besoin d'un « et » pour décrire ce qu'elle fait, c'est qu'il en faut deux. Récompense immédiate : le programme principal se lit comme l' lui-même, phrase après phrase, et les détails de chaque geste attendent sagement dans leur fonction qu'on ait besoin de les rouvrir.

2. Paramètres et retour : la fonction dialogue

Les paramètres rendent réglable : clignote(fois, duree) reçoit deux boîtes remplies au moment de l'appel. clignote(3, 200), trois éclats posés ; clignote(10, 50), une rafale d'alerte — même corps, intentions différentes. Le paramètre est dont la valeur vient de l'appelant : la fonction décrit le geste, l'appel choisit la dose.

La valeur de retour fait le chemin inverse : distanceCm() lit la mesure brute du , la convertit, et REND des centimètres au appelant. La formule vit à un seul endroit — change de capteur, une seule fonction change. Et surtout : qui rend un résultat se teste séparément. Dix appels, dix affichages, la règle graduée à côté — si distanceCm ment, tu le sauras AVANT que le robot fonce dans le mur.

3. Le tableau : la boîte numérotée

est une boîte à cases numérotées sous une seule étiquette : mesures. Chaque case se désigne par son indice, et la numérotation part de zéro : mesures[0] est la première case, mesures[7] la huitième et dernière d'un tableau de huit. Cette convention surprend une fois, puis devient une seconde nature — le décalage entre « huitième case » et « indice 7 » est la petite marche à ne pas rater.

Le tableau prend tout son sens marié à une boucle : « pour indice de 0 à 7, traiter mesures[indice] ». Somme, moyenne, recherche du plus grand : trois lignes chacune, quel que soit le nombre de cases. Même une mélodie devient de notes qu'une boucle joue case après case : les données changent, ne bouge plus. Dix numérotées à la main, c'est le passé.

4. Trois mesures, une médiane

Les mesures d'un tremblent, et parfois l'une d'elles déraille complètement — un parasite, un , une valeur folle. La moyenne laisse entrer l'intruse et la dilue dans le résultat ; la l'ignore : on trie les valeurs et on prend celle du milieu. L'aberration, forcément expulsée vers un bord par le tri, n'atteint jamais le centre — le résultat reste sage.

L' tient en trois pas : ranger les trois dernières mesures dans , trier, lire la case du milieu — l'indice 1 d'un tableau de trois. Il n'est simple QUE parce que les mesures vivent ensemble dans une boîte numérotée : on ne trie pas trois éparpillées. C'est l'exemple parfait d'un outil (le tableau) qui rend un algorithme naturel — et le chapitre des de distance s'en servira tel quel contre les mesures fantômes.

🧮 Exemple guidé : la médiane de 12, 45 et 13

Le capteur annonce coup sur coup 12, 45 puis 13 centimètres — le 45 sent la mesure folle. Range les trois valeurs dans un tableau, calcule la médiane, et compare avec la moyenne.

  1. 1.Ranger : mesures[0] = 12, mesures[1] = 45, mesures[2] = 13 — trois cases sous une seule étiquette.
  2. 2.Trier le tableau du plus petit au plus grand : [12, 13, 45]. Le 45 est expulsé vers le bord.
  3. 3.Lire la case du milieu — l'indice 1 : médiane = 13 centimètres. La valeur folle n'a rien influencé.
  4. 4.Contre-épreuve, la moyenne : (12 + 45 + 13) ÷ 3 ≈ 23,3 cm — presque le double de la réalité, l'intruse a tout faussé.

Médiane 13, moyenne 23,3 : ton robot roulera d'après 13 — la bonne réponse — pendant que le robot moyenneur freinerait pour un mur imaginaire à mi-distance. Trois cases, un tri, une case du milieu : le tableau vient de rendre ton capteur honnête.

🛠 Pratiquer sur l'établi

  1. 01Extraire clignote(fois, duree) du code répété

    Repère les cinq lignes de clignotement recopiées dans ton et extrais-les en clignote(fois, duree). Remplace chaque copie par un appel, puis vérifie que tout clignote comme avant. Enfin, savoure : une seule correction de tempo se propage désormais partout — le code dupliqué a cessé d'être un bug en attente.

    sur l'établi
    +220 Ω≈ 2 V à ses bornesanode vers le + : ça brille — la résistance tient le courant

Objectifs

  • +Découper en
  • +Passer des paramètres, rendre un résultat
  • +Ranger des séries dans des
🧪 S'entraîner dans le bac à sable

Quiz de validation

À réussir pour valider la leçon

Réponds de mémoire, sans remonter la page : c'est l'effort de rappel qui grave le cours. Les trois bonnes réponses valident la leçon.

1. Pourquoi remplacer trois copies du code de clignotement par la fonction clignote ?

2. Dans un tableau de huit mesures, que désigne mesures[0] ?

3. Mesures : 12, 45 et 13. Que rend la médiane, et pourquoi pas la moyenne ?

🧠 Ce qu'il faut retenir

  • 1. = un nom qui dit ce qu'elle fait, une seule responsabilité.
  • 2. dupliqué est un bug en attente : le supprime à la racine.
  • 3. + une boucle remplacent dix numérotées à la main.