Chapitre 8 : Fonctions et Récursivité¶
Apprenez à modulariser votre code en blocs réutilisables, organisés et faciles à maintenir.
Concepts abordés¶
- Anatomie d'une fonction : Type de retour, nom, paramètres et corps de la fonction.
- Prototypes : Déclarer l'existence d'une fonction avant son utilisation pour informer le compilateur.
- Passage de paramètres :
- Par valeur : La fonction travaille sur une copie de la donnée.
- Par pointeur : La fonction peut modifier directement la variable d'origine.
- Récursivité : Une fonction qui s'appelle elle-même pour résoudre un problème en le divisant en sous-problèmes plus petits.
- Portée des variables : Différence entre variables locales (à l'intérieur d'une fonction) et variables globales.
Explications du code¶
fonctions.c¶
Montre comment créer des fonctions mathématiques simples (addition, puissance), une procédure d'affichage (void), et comment échanger deux nombres en utilisant des pointeurs.
recursivite.c¶
Explore les algorithmes récursifs célèbres : le calcul de la factorielle, la suite de Fibonacci et la résolution du casse-tête des Tours de Hanoï.
Conseils et astuces¶
- Responsabilité unique : Une fonction devrait idéalement ne faire qu'une seule chose. Si elle devient trop longue, divisez-la en plusieurs petites fonctions.
- Cas de base : En récursivité, le "cas de base" est vital. C'est lui qui arrête les appels successifs. Sans lui, vous provoquerez un "Stack Overflow" (saturation de la pile mémoire).
- Nommage : Utilisez des verbes pour nommer vos fonctions (ex:
calculerMoyenne,afficherMenu) afin de refléter l'action qu'elles effectuent.