Numérique et Sciences Informatiques > Algorithmique : Concepts de Base > Fonctions et Procédures > Définition et appel de fonctions

Définition et Appel de Fonctions en Algorithmique

Apprenez à définir et à appeler des fonctions en algorithmique. Ce guide complet, conçu pour les lycéens, explique pas à pas les concepts clés avec des exemples concrets et des exercices pratiques. Découvrez comment structurer votre code, réutiliser des portions de code et améliorer la lisibilité de vos programmes.

Qu'est-ce qu'une Fonction ?

Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. Imaginez une fonction comme une mini-recette : vous lui donnez des ingrédients (les arguments), elle les traite selon des instructions précises, et elle vous renvoie un résultat (la valeur de retour). Les fonctions permettent de diviser un programme complexe en parties plus petites et plus faciles à gérer, ce qui améliore la lisibilité, la maintenabilité et la réutilisabilité du code.

Définition d'une Fonction

Pour définir une fonction, on utilise une syntaxe spécifique qui varie selon le langage de programmation ou l'outil algorithmique utilisé (par exemple, Python, Pseudo-code). En général, la structure de définition comprend:

  • Le nom de la fonction: Un identifiant unique qui permet d'appeler la fonction. Choisissez un nom descriptif qui indique clairement ce que fait la fonction (par exemple, calculer_moyenne, afficher_message).
  • Les paramètres (ou arguments): Ce sont les données que la fonction reçoit en entrée. Ils sont optionnels. Si la fonction n'a pas besoin de données externes pour fonctionner, elle n'a pas de paramètres. Chaque paramètre a un nom et un type (par exemple, un nombre entier, une chaîne de caractères).
  • Le corps de la fonction: C'est le bloc de code qui contient les instructions à exécuter. Il est généralement délimité par des accolades {} ou une indentation.
  • La valeur de retour: C'est le résultat que la fonction renvoie après son exécution. Elle est optionnelle. Si la fonction ne renvoie pas de valeur, on dit qu'elle est de type 'void' (en C++, Java) ou qu'elle renvoie 'None' (en Python). La valeur de retour est spécifiée par le mot-clé return.
Exemple en pseudo-code : Fonction additionner(a : entier, b : entier) : entier Début Retourner a + b Fin Dans cet exemple :
  • additionner est le nom de la fonction.
  • a et b sont les paramètres d'entrée, tous deux de type entier.
  • La fonction retourne la somme de a et b, qui est également un entier.

Appel d'une Fonction

Une fois qu'une fonction est définie, on peut l'appeler (ou l'invoquer) pour exécuter le code qu'elle contient. Pour appeler une fonction, on utilise son nom suivi de parenthèses. Si la fonction prend des paramètres, on doit fournir les valeurs correspondantes (les arguments) entre les parenthèses. L'appel de fonction peut se faire à l'intérieur d'une autre fonction, ou directement dans le programme principal. Exemple en pseudo-code (suite de l'exemple précédent) : Variable resultat : entier resultat ← additionner(5, 3) // Appel de la fonction additionner avec les arguments 5 et 3 Afficher(resultat) // Affichage de la valeur de resultat (qui sera 8) Dans cet exemple, la fonction additionner est appelée avec les arguments 5 et 3. La valeur de retour de la fonction (8) est ensuite stockée dans la variable resultat, puis affichée.

Exemple Concret : Calcul de la Moyenne

Considérons un exemple plus complexe : une fonction qui calcule la moyenne d'un tableau de nombres. Définition de la fonction : Fonction calculer_moyenne(tableau : tableau de réels) : réel Début Variable somme : réel ← 0 Variable taille : entier ← longueur(tableau) Pour i de 0 à taille - 1 faire somme ← somme + tableau[i] Fin Pour Si taille > 0 alors Retourner somme / taille Sinon Retourner 0 // Pour éviter une division par zéro si le tableau est vide Fin Si Fin Appel de la fonction : Variable notes : tableau de réels ← {12.5, 15, 18, 10, 14} Variable moyenne : réel moyenne ← calculer_moyenne(notes) Afficher("La moyenne est : ", moyenne) Cet exemple illustre comment une fonction peut encapsuler une logique plus complexe (le calcul de la moyenne) et être réutilisée facilement avec différents ensembles de données.

Portée des Variables

Il est important de comprendre la notion de portée des variables lorsqu'on travaille avec des fonctions. Une variable définie à l'intérieur d'une fonction (variable locale) n'est accessible qu'à l'intérieur de cette fonction. Les variables définies à l'extérieur des fonctions (variables globales) sont accessibles depuis n'importe où dans le programme, mais leur utilisation est généralement déconseillée car elle peut rendre le code plus difficile à comprendre et à maintenir. Exemple : Variable globale : entier ← 10 Fonction exemple() Début Variable locale : entier ← 5 Afficher("Variable locale : ", locale) Afficher("Variable globale : ", globale) Fin Début du programme principal exemple() //Afficher(locale) // Cette ligne provoquerait une erreur car 'locale' n'est pas accessible ici Afficher("Variable globale : ", globale) Fin Dans cet exemple, la variable locale n'est accessible qu'à l'intérieur de la fonction exemple. Tenter d'y accéder depuis le programme principal provoquerait une erreur.

Ce qu'il faut retenir

  • Définition : Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique.
  • Avantages : Améliore la lisibilité, la maintenabilité et la réutilisabilité du code.
  • Définition : Comprend un nom, des paramètres (optionnels), un corps et une valeur de retour (optionnelle).
  • Appel : S'effectue en utilisant le nom de la fonction suivi de parenthèses (et des arguments si nécessaire).
  • Portée des variables : Les variables locales sont accessibles uniquement à l'intérieur de la fonction, tandis que les variables globales sont accessibles depuis n'importe où (mais leur utilisation est déconseillée).
  • Retour : Une fonction peut retourner une valeur en utilisant le mot-clé return.

FAQ

  • Pourquoi utiliser des fonctions ?

    Les fonctions permettent de structurer le code, de le rendre plus lisible, plus facile à maintenir et de réutiliser des portions de code.
  • Quelle est la différence entre une fonction et une procédure ?

    Dans certains langages, une procédure est une fonction qui ne renvoie pas de valeur. En pseudo-code, on utilise souvent le terme 'fonction' de manière générique pour désigner les deux concepts. Certains langages utilisent le mot clé 'procedure' pour indiquer explicitement qu'une fonction ne retourne aucune valeur.
  • Comment passer des paramètres à une fonction ?

    Les paramètres sont passés entre parenthèses lors de l'appel de la fonction. L'ordre et le type des arguments doivent correspondre à la définition de la fonction.