Remonter

Mathématiques

Les fonctions informatiques

Les algorithmes appris au collège sont assez simples et ne permettent souvent que de réaliser une seule action (déplacer un objet, tracer une figure etc…). Mais les programmes informatiques de la vie courante, eux, sont conçus pour réaliser plusieurs actions différentes !

Les fonctions, souvent étudiées en 3ème, permettent de décomposer un programme suivant les différentes tâches qu’il doit effectuer.

A quoi servent les fonctions ?

Lorsqu’on crée un programme un peu plus élaboré, il est nécessaire de décomposer les tâches à effectuer en plusieurs tâches simples, pour y voir plus clair et structurer le programme.
Par exemple, un logiciel de traitement de texte a de nombreuses fonctionnalités :

Traitement de texte

Même un moteur de recherche, sur lequel à priori on ne fait qu’une seule chose (des recherches) :

moteur de recherche

A chacune de ces tâches peut correspondre une fonction informatique.

Par définition, en informatique, une fonction est une séquence d’instructions qui réalisent une tâche.
Ainsi, un programmeur peut créer ses propres fonctions, ou (plus souvent) réutiliser les fonctions créées par d’autres programmeurs.

En fait, les suites d’instructions que vos enfants créent depuis leurs débuts en algorithmique sont en quelques sorte des fonctions ! Mais ici, il va être question de réutiliser ces suites d’instructions pour faire d’autres algorithmes encore plus élaborés.

Créer et utiliser une fonction

En programmation par blocs, il existe généralement un bloc permettant de créer une fonction.

Dans Algoblocs

Supposons qu’on ait une suite d’instructions permettant de dessiner une étoile :

étoile

instruction étoile

Si on veut en faire une fonction, il suffit d’ajouter un bloc de la rubrique « Fonctions » et d’y placer notre suite d’instructions. On nomme cette fonction comme on veut (ici, « dessiner une étoile »).

fonction

Cela crée un bloc « dessiner une étoile » dans la rubrique « Fonctions » qu’on peut réutiliser un peu partout, par exemple pour dessiner 3 étoiles de couleurs différentes.

fonction étoile

Trois étoiles

Dans Scratch

Il faut utiliser la rubrique « Ajouter bloc » et créer un nouveau bloc. Voici un exemple : 

Fonction scratch

Avec Python

Avec un langage, comme Python, on utilise le mot clef def, suivi du nom de la fonction puis des parenthèses (nous verrons leur utilité dans la partie suivante !).

Voici comment on crée une fonction qui affiche la table de 3 :

def tablede3():
                  n = 1
                  while n <11 :
                                    print (n * 3)
                                    n = n +1

Les arguments

Dans les exemples que nous avons pris, la fonction fait toujours la même chose. Il est possible de changer son comportement avec les arguments.

Dans algoblocs

Prenons cette fonction dans Algoblocs qui dessine un carré de côté 100 pixels. Nous allons lui permettre de dessiner des carrés de taille différente.

carré

fonction carré

En cliquant sur l’icône représentant un engrenage, on peut demander que cette fonction prenne un argument en entrée. Nous allons laisser le nom par défaut, « x » :

argument

On se retrouve avec un bloc « x » dans la rubriques « Variables ». Ce bloc contiendra un nombre différent à chaque fois qu’on utilisera la fonction. Nous allons l’utiliser pour déterminer le côté du carré que la fonction va tracer.

Pour plus d’informations sur les variables, consultez cette autre fiche.

variable argument

Le bloc fonction permet maintenant d’accueillir un nombre, qui permettra de donner une valeur à x :

fonction x

Ainsi, en utilisant cette fonction avec un nombre différent, on peut dessiner des carrés de tailles différentes :

carrés

fonction carrés

Dans Scratch

Dans Scratch, on ajoute des arguments après avoir cliqué sur « Créer un bloc ». Il suffit de faire apparaitre le menu « Options ».

arguments scratch

En Python

En Python, on donne le nom des arguments dans les parenthèses qui suivent le nom de la fonction. Voici une fonction qui affiche la table de multiplication d’un nombre appelé x.

def table(x):
                  n = 1
                  while n <11 :
                                    print (n * x)
                                    n = n +1
Ainsi, table(4) affichera la table de 4, table(10) affichera la table de 10…

Les valeurs de retour


Vous devez être inscrit sur Les Clefs de l’Ecole
pour lire l’intégralité de la fiche pédagogique.

Je m'inscris gratuitement
Je m'identifie