Fonction en programmation

Programmation - FonctionNiveau : intermediate15 novembre 2025
Practice with this sheet
Create your flashcards, quizzes, and mock exams

Advanced features available in the app

  • Images
  • Mathematical formulas
  • Professional and academic diagrams in the app
Start for free

Fiche de Révision : Fonction en Programmation


Introduction

En programmation, une fonction est un bloc de code autonome conçu pour accomplir une tâche précise. Les fonctions permettent de structurer un programme de manière modulaire, de réutiliser du code, et d'améliorer la lisibilité et la maintenance. Comprendre les fonctions est essentiel pour progresser dans la programmation, que ce soit en programmation impérative, fonctionnelle ou orientée objet.


1. Définition et rôle d’une fonction

Qu’est-ce qu’une fonction ?

  • Une fonction est un ensemble d’instructions regroupées sous un même nom.
  • Elle peut recevoir des arguments (ou paramètres) en entrée.
  • Elle exécute un traitement ou une série d’instructions.
  • Elle peut retourner une valeur en sortie.

Pourquoi utiliser des fonctions ?

  • Modularité : découper un programme en sous-parties indépendantes.
  • Réutilisabilité : éviter la duplication de code.
  • Lisibilité : nommer clairement les actions pour rendre le code plus compréhensible.
  • Facilité de maintenance : modifier une fonction modifie tous les appels correspondants.

2. Syntaxe générale d’une fonction

La syntaxe varie selon les langages, mais la structure de base est la même :

fonction nomDeLaFonction(paramètre1, paramètre2, ...) {
    // instructions
    retourner valeurDeRetour
}

Exemple en Python

def addition(a, b):
    return a + b

Exemple en JavaScript

function addition(a, b) {
    return a + b;
}

3. Composants d’une fonction

3.1 Nom de la fonction

  • Identificateur unique qui sert à appeler la fonction.
  • Doit être explicite pour refléter l’action réalisée.

3.2 Paramètres (ou arguments)

  • Variables locales utilisées pour transmettre des données à la fonction.
  • Peuvent être optionnels ou avoir des valeurs par défaut selon le langage.

3.3 Corps de la fonction

  • Ensemble d’instructions qui définissent ce que fait la fonction.

3.4 Valeur de retour

  • Résultat produit par la fonction.
  • Certaines fonctions ne retournent rien (ex. fonctions void en C/C++).

4. Appel de fonction

  • Pour exécuter une fonction, on effectue un appel en utilisant son nom et en passant les arguments nécessaires.
resultat = addition(3, 5)  # resultat vaut 8

5. Types de fonctions

5.1 Fonctions avec retour de valeur

  • Renvoient une valeur via l’instruction return.
  • Exemple : calculer la somme, la moyenne, etc.

5.2 Fonctions sans retour (procédures)

  • Effectuent une action sans renvoyer de valeur explicite.
  • Exemple : afficher un message à l’écran.

6. Passage des paramètres

6.1 Passage par valeur

  • Une copie des données est passée à la fonction.
  • Modifications internes n’affectent pas l’argument d’origine.
  • Exemple en C, Java (pour types primitifs).

6.2 Passage par référence

  • L’adresse de la variable est passée.
  • Les modifications dans la fonction affectent la variable d’origine.
  • Exemple : pointeurs en C, objets en JavaScript, Python (objet mutable).

7. Fonction récursive

Définition

  • Une fonction qui s’appelle elle-même directement ou indirectement.
  • Utilisée pour résoudre des problèmes divisibles en sous-problèmes identiques.

Exemple : calcul de la factorielle

[Formule mathématique]

def factorielle(n):
    if n == 0:
        return 1
    else:
        return n * factorielle(n - 1)

8. Fonctions anonymes et lambda

  • Fonctions sans nom, souvent utilisées pour des opérations simples ou temporaires.
  • Syntaxe compacte.

Exemple en Python

carre = lambda x: x * x
print(carre(5))  # affiche 25

Exemple en JavaScript

const carre = x => x * x;
console.log(carre(5));  // affiche 25

9. Portée des variables (Scope)

  • Variables locales : déclarées dans la fonction, accessibles uniquement à l’intérieur.
  • Variables globales : accessibles partout dans le programme.
  • Les fonctions créent un espace de noms propre, limitant les conflits.

10. Fonctions pures et effets de bord

10.1 Fonction pure

  • Même entrée ⇒ même sortie.
  • Ne modifie pas d’état extérieur.
  • Pas d’effets secondaires (pas d’I/O, pas de modification de variables globales).

10.2 Fonction avec effets de bord

  • Modifie l’état global (ex : mise à jour d’une variable externe).
  • Peut interagir avec l’extérieur (fichiers, affichage, bases de données).

11. Concepts avancés liés aux fonctions

11.1 Fonctions d’ordre supérieur

  • Fonctions qui prennent une ou plusieurs fonctions en paramètre ou retournent une fonction.
  • Exemples : map, filter, reduce.

11.2 Fermetures (Closures)

  • Fonction interne qui garde en mémoire l’environnement dans lequel elle a été créée.
  • Permet de créer des fonctions avec un état privé.

11.3 Currying

  • Transformation d’une fonction à plusieurs arguments en une série de fonctions à un argument.

12. Exemple complet : fonctions enchaînées

def carre(x):
    return x * x

def somme_carre(a, b):
    return carre(a) + carre(b)

print(somme_carre(3, 4))  # affiche 25

13. Diagramme Mermaid : Relations entre concepts des fonctions

[Diagramme]


Citation importante

"Une fonction bien conçue est comme une boîte noire : on sait ce qu'elle fait, pas comment elle le fait."
— Principes de la programmation modulaire


Conclusion

Les fonctions sont un pilier fondamental de la programmation. Leur maîtrise facilite la création de programmes efficaces, clairs et maintenables. Au-delà de la simple définition, comprendre les différentes formes (récursives, anonymes), le passage de paramètres, la portée des variables, et les concepts avancés comme les fonctions d’ordre supérieur permet d’écrire un code plus puissant et flexible.


Pour aller plus loin

  • Étudier les fonctions récursives complexes (ex. tours de Hanoï).
  • Approfondir les fermetures et la programmation fonctionnelle.
  • Expérimenter avec les fonctions d’ordre supérieur dans différents langages.

Fin de la fiche de révision - Fonction en programmation

Agent CTA Background

Transform your learning experience

Get started nowJoin thousands of students who have already transformed their learning