4. Fonctions
Résumé
L'expérience en matière de programmation informatique a
montré que la meilleure manière de développer et maintenir un grand
programme est de le construire à partir de petites entités logicielles
plus faciles à gérer. Cette technique, appelée diviser et
conquérir, est facilitée par le concept de fonction. Les
fonctions permettent en effet de décomposer un programme complexe en
une série de sous-programmes plus simples, lesquels peuvent à leur tour
être décomposés en fragments plus petits, et ainsi de suite.
D'autre part, les fonctions sont
réutilisables: si nous disposons d'une
fonction capable de calculer une racine carrée, par exemple, nous
pouvons l'utiliser un peu partout dans nos programmes
sans avoir à la ré-écrire à chaque fois.
Objectifs du chapitre
Au terme de ce chapitre, chaque étudiant devra être capable de:
- énumérer les principaux avantages de la décomposition
d'un programme en fonctions;
- subdiviser un programme complexe en fonctions dont le rôle,
limité, est clairement défini;
- définir une fonction avec ou sans paramètres et valeur de retour;
- appeler une fonction avec paramètres et récupérer son éventuelle
valeur de retour;
- expliquer la différence entre la notion de paramètre et celle
d'argument;
- définir et appeler une fonction possédant des valeurs de
paramètres par défaut;
- définir et appeler une fonction anonyme;
- donner comme identifiant des noms significatifs aux fonctions,
paramètres et autres variables présentes dans la définition
d'une fonction;
- expliquer le rôle du return au sein
d'une définition de fonction et
l'utiliser de manière appropriée;
- distinguer une fonction d'une procédure;
- importer et appeler des fonctions provenant de modules externes;
- afficher et utiliser à bon escient la documentation
d'une fonction;
- documenter une fonction de manière conventionnelle (types de
paramètres, action entreprise, type de la valeur de retour);
- compléter la documentation d'une fonction de tests exécutées par le module
doctest;
- expliquer la différence entre une variable locale et une variable
globale ainsi que la notion d'étendue
d'une variable;
- expliquer et illustrer le cycle de
vie d'une variable locale ou
d'un paramètre;
- indiquer et savoir utiliser deux techniques de transfert
d'information entre fonctions (paramètres vs variables
globales) et justifier la technique qui est préférable ;
- expliquer en quoi consiste la récursivité et l'utiliser afin de résoudre un problème simple;
- donner un exemple présentant les limites de l'utilisation de la récursion en informatique;
- traduire une fonction récursive en une fonction itérative et inversement;
- expliquer chacun des termes informatiques apparaissant dans le
glossaire du chapitre.
Documents du chapitre
Corrigés des exercices
Pour chacun des exercices du cours, les corrigés ci-dessous doivent permettre à l'élève d'observer le résultat à obtenir (double-clic sur le fichier test) et de vérifier/comparer sa résolution avec une solution possible (éditer le fichier solution):