Usage des fonctions

Objectifs

  • Savoir rendre les fonctions plus génériques grâce aux arguments ;

  • Savoir renvoyer une information depuis une fonction.

Mise en situation

Vous avez sans doute appris au collègue le concept de fonction mathématique. C'est une formule de calcul qui permet de calculer une valeur en fonction de différents paramètres d'entrée. Et bien les fonctions en informatique fonctionnent de manière très similaire. Mais pas de panique, il n'y a pas besoin d'être un expert en maths.

Une fonction est composée d'un ensemble d'instructions qui réalisent une opération quelconque. Ces instructions peuvent se baser sur des paramètres d'entrées de la fonction, c'est à dire des variables, et peuvent produire un résultat en retour, donc une nouvelle variable.

FondamentalFonction

Une fonction est un ensemble d'instructions (aussi appelé sous-programme) qui a pour but de retourner un résultat ou de réaliser une tâche donnée. Cette suite d'instruction peut être appelée à plusieurs endroits du code grâce à son nom. À chaque appel de la fonction, l'ensemble de ses instructions est exécuté par l'ordinateur.

DéfinitionParamètre

Une fonction peut avoir un ou plusieurs paramètres. Ces paramètres sont équivalents aux antécédents pour les fonctions mathématiques. Un paramètre est une valeur d'un type quelconque et qui sera utilisée par la fonction pour ses calculs. À noter qu'il est possible d'avoir un type différent pour chaque argument d'une fonction.

DéfinitionValeur de retour

Une fonction peut retourner ou non un résultat. Cette valeur est équivalente à l'image d'une fonction mathématique. Une fonction peut retourner tout type de valeurs, que ce soit un type simple (entier, chaîne de caractères, etc.) ou un type complexe (tableau, enregistrement, etc.).

ComplémentProcédures et fonctions

Certains informaticiens puristes distinguent les notions de procédures et de fonctions. Le seul élément différenciant ces deux notions est le fait qu'une fonction retourne systématiquement une valeur alors qu'une procédure non.

ExempleRetourner le maximum d'une liste

1
/** JavaScript : fonction qui retourne le maximum d'une liste d'entiers. */
2
function maxList (localList) {
3
  let max = localList[0]
4
  for (let i = 0; i < localList.length; i++) {
5
    if (max < localList[i]) {
6
      max = localList[i]
7
    }
8
  }
9
  return max
10
}
11
12
console.log(maxList([2, 5, 10, 3]))
13
1
"""Python : fonction qui retourne le maximum d'une liste d'entiers. """
2
def max_list(local_list):
3
  max = local_list[0]
4
  for i in range(1, len(local_list)):
5
    if max < local_list[i]:
6
      max = local_list[i]
7
8
  return max
9
10
print(max_list([2, 5, 10, 3]))

MéthodeModulariser son code

Par défaut, il est intéressant de créer des fonctions car cela va permettre d'avoir un code fonctionnant par modules. Le programme principal deviendra plus lisible car sa taille sera réduite. Utiliser par défaut des fonctions même en l'absence de recopie réduira donc la taille du programme principal et réduira le travail du développeur, si par la suite il avait à nouveau besoin de cette fonction sans que cela ait été prévu.

Un développeur peut alors séparer son programme en plusieurs fichiers :

  • Un fichier par thématique regroupant les fonctions autour d'un même thème (calcul, interaction, etc.),

  • Un fichier principal qui appellera les différentes fonctions.

Une telle séparation aidera la relecture et la reprise du projet par un développeur tiers. Cela aidera également le développeur lui-même à découper et structurer sa tâche.

À retenir

  • Les fonctions sont une suite d'instructions qui réalise un calcul en s'appuyant sur des paramètres.

  • Une fonction peut retourner une valeur, correspondant par exemple au résultat d'un calcul.