LyCode Lab

Chapitre 5 : Définitions et appels de fonctions

Créer ses propres blocs : les fonctions

Quand un groupe d'instructions revient souvent, on lui donne un nom : c'est une fonction. On la définit une fois, puis on l'appelle autant de fois qu'on veut. C'est comme créer ton propre bloc, que Pixel comprend ensuite comme les autres.

Au programme de SNT : Définitions et appels de fonctions. Écrire et développer des programmes pour répondre à des problèmes.

Définir une fonction, puis l'appeler

Le bloc « à faire ... » définit une fonction : tu lui donnes un nom et tu y glisses les instructions. Un nouveau bloc d'appel apparaît alors dans la catégorie « Fonctions ». Définir ne suffit pas : la fonction ne s'exécute que lorsqu'on l'appelle.

Un demi-tour, c'est deux virages
def demi_tour():
    tourner_droite()
    tourner_droite()

avancer()
demi_tour()

Les paramètres

Une fonction peut recevoir des informations : ses paramètres. Ils se comportent comme des variables, qui prennent une valeur à chaque appel. Ainsi, une seule fonction sert dans plusieurs situations.

Avancer d'un nombre de cases choisi à chaque appel
def avancer_de(n):
    for _ in range(n):
        avancer()

avancer_de(3)
tourner_droite()
avancer_de(2)

Une fonction qui retourne une valeur

Une fonction peut aussi calculer une valeur et la retourner : le bloc « à faire ... retourner » a une case pour la valeur renvoyée. Son appel est alors un bloc valeur, que l'on peut brancher dans un calcul ou dans « afficher ».

Doubler un nombre
def double(x):
    return x * 2

print(double(21))

À toi de jouer : Exercice guidé

La fonction demi_tour est définie, mais elle ne fait qu'un virage. Pixel avance de 2 cases, fait « demi-tour », puis avance de 2 cases : il doit revenir à son point de départ. Complète la fonction pour qu'elle fasse un vrai demi-tour.

Passer à l'énigme : La patrouille