sin-retorno

Exécuter l’instruction 66…

Aujourd’hui nous allons découvrir la section Fonctions. Qui sont-elles ? À quoi servent-elles ? Pourquoi contiennent-elles autant de mots étranges ? Voici les réponses à toutes vos questions :

Bloques funciones

Imagine un programme où une action est répétée de nombreuses fois. Par exemple, deux LED doivent clignoter régulièrement, ou encore une mélodie de plus de 25 blocs doit être répétée. Si chaque fois que tu voulais faire se répéter la mélodie tu devais la réécrire, tu arriverais vite à saturation !

Et s’il était possible de créer la mélodie une seule fois, de donner un nom à cette action (par exemple « Déclencher la mélodie »), puis de la déclencher grâce à un seul bloc ?

C’est justement à cela que servent les fonctions ! Elles servent à nous faire gagner du temps… et des blocs. Quand une tâche se répète beaucoup ou que tu veux mieux organiser ton projet, crée une fonction qui réalisera l’action souhaitée à chaque fois qu’elle sera appelée.

Et maintenant, si tu veux que les fonctions soient la solution et non le problème, lis avec attention ce qui va suivre.

Mais avant cela, prépare :

  • 1 x ZumBloq LED
  • 1 x ZumBloq Buzzer
  • 1 x ZumBloq Bouton
  • 1 x ZumBloq Servo à rotation continue
  • Une carte contrôleur ZUM BT 328 ou une carte compatible avec Arduino UNO
  • Un câble USB

Elle reviendra…

Commençons par le début… Dans bitbloq vous trouverez deux types de fonctions : les fonctions sans renvoi et avec renvoi. L’expression “sans renvoi” signifie que la fonction ne renverra aucune valeur suite à son exécution.

Dans le cas d’une fonction créée pour réaliser de nombreuses opérations mathématiques (par exemple : additionner, soustraire, additionner de nouveau, multiplier, soustraire puis multiplier) tu voudras que la fonction te renvoie le résultat final. Tu devras donc utiliser une fonction avec renvoi, qui te renverra le résultat final des opérations.

Mais si tu as besoin d’une fonction réalisant une série d’actions ne produisant pas de valeur finale, par exemple jouer une mélodie, tu opteras pour une fonction sans renvoi.

Bloc fonction sans renvoi et bloc appeler une fonction sans renvoi

Bloques funciones sin retorno

 

Le bloc fonction sans renvoi (en haut à gauche) sert à regrouper une série de blocs et à les exécuter quand la fonction est appelée.

On peut dire que quand on crée une fonction, on crée un mini programme et on lui donne un nom. Ainsi quand le mini programme est appelé, le programme principal “lit” la fonction, la parcourt toute entière, puis revient aux instructions principales (sans renvoyer aucune valeur dans le cas d’une fonction sans renvoi).

Ejemplo funciones flujo programa flechas

Tu te demandes sans doute pourquoi nous avons réalisé deux colonnes distinctes. En effet, nous avons expliqué que les blocs devaient tous se suivre sinon le programme ne fonctionnerait pas correctement.

Ceci n’a pas changé : les blocs du programme principal doivent tous se suivre. Mais, comme nous venons de l’expliquer, en créant une fonction, nous créons à côté un autre programme qui sera inclus dans le programme principal.

Voici maintenant un exemple pour t’aider à y voir plus clair.

Exemple avec les blocs de fonctions sans renvoi

Réaliser un programme pour actionner un servo en appuyant sur un bouton, le tout accompagné du clignotement d’une LED et du son d’un buzzer.

Ejemplo funciones sin retorno

Tu connais déjà bien le bloc si… exécuter de la section Contrôle et tu as sans doute vu plusieurs fois des programmes où selon si tu appuies ou non sur le bouton une action différente est réalisée. Tu comprends donc certainement bien le programme, en faisant abstraction des blocs roses contenant la phrase “Parpadeo_con_sonido” (Clignotement + bruit) et des blocs situés sur la droite.

Commençons donc par les blocs situés sur la droite. La première chose que nous voyons est le bloc fonction sans renvoi. Ce bloc permet de créer une fonction sans renvoi. Il faut commencer par lui donner un nom (comme pour les variables). Ce nom correspond à celui de la fonction ; nous l’utiliserons dans le bloc appeler une fonction sans renvoi (que tu peux voir dans la partie gauche du programme).

Le bloc fonction sans renvoi permet de créer un programme que nous voulons répéter plusieurs fois. Le bloc s’agrandira à mesure que tu ajouteras des blocs.

Quand tu voudras que le programme principal exécute la fonction, quelque soit sa longueur, il te suffira d’insérer un bloc appeler une fonction sans renvoi et de sélectionner le nom de la fonction voulue (comme pour les variables).

Comme tu peux le voir sur l’exemple, à chaque cycle le programme regarde si le bouton est appuyé ou non, afin de faire pivoter le servo ou de l’arrêter. De plus, avant le bloc du servo est placé le bloc d’appel de la fonction, ce qui fait qu’à chaque bloc rose appelé “Parpadeo_con_sonido” (Clignotement + bruit) tous les blocs de la fonction sont exécutés (en partant du haut vers le bas).

Un tiens vaut mieux que deux tu l’auras

Il est également possible de réaliser des programmes comportant plus d’une fonction. Ne trouves-tu pas que le programme principal est beaucoup mieux comme ça ?

Ejemplo varias funciones

En appuyant sur le bouton, tu lanceras l’exécution de la fonction Parpadear (clignoter), puis de la fonction Melodia (mélodie) et pour finir de la fonction Parpadear.

Et ce n’est pas fini…

Il nous reste à aborder un second type de fonction, la fonction avec renvoi. Cette fonction renvoie une valeur suite à son exécution. Nous en parlerons en détail dans la leçon suivante !

2 commentaires

  1. Bonjour et merci pour ces tutos.
    Existe-t-il une version de BQ en Français ou Anglais ?
    Merci d’avance.
    Théo

    1. Camille Montgolfier

      Bonjour Théo, merci pour votre commentaire. Bitbloq existe bien en français ! Vous pouvez changer la langue à partir du module en bas de la page d’accueil ou à partir de votre compte. N’hésitez pas à nous recontacter si vous avez d’autres questions. Bonne journée. Camille

Les commentaires sont fermés.