Les fonctions
Pourquoi utiliser des fonctions ? Pour rendre plus compréhensible un algorithme Pour cacher certaines parties de code Pour réutiliser du code déjà existant Pour limiter la taille d’un module (inférieur à une page) Pour éviter les répétitions de code Pour paramétrer le code
Les fonctions prédéfinies Les fonctions systèmes Pour accéder aux ressources du système (gestion mémoire,heure,…) Les fonctions d’entrées sorties Lire Ecrire Les fonctions mathématiques Les fonctions de manipulation de caractère isdigit, isspace,… (voir fichier ctype.h) Les fonctions de manipulation de chaînes de caractères strlen, strcpy,…(voir fichier string.h)
Définition Une fonction est une unité algorithmique Elle possède un nom Elle a un corps regroupant une suite d’instructions Elle peut avoir des paramètres Elle peut avoir une valeur de retour Elle a au moins une entrée et une sortie typeRetour NomFonction(parametres) { ... }
Appel d’une fonction Pour appeler une fonction, il suffit de faire suivre son nom d'une parenthèse ouvrante, avec éventuellement des arguments, puis d'une parenthèse fermante et enfin suivi de point virgule Un résultat, du même type que la fonction, peut recevoir la valeur de retour. nom_De_La_Fonction (liste_des_parametres) ; ou resultat = nom_De_La_Fonction(liste_des_parametres) ;
Portée des variables Les variables utilisées dans une fonction sont propres à l’environnement de la fonction. Elles ne sont pas vues à l’extérieur de la fonction. Les variables du programme appelant ne sont pas vues dans la fonction appelée. Le moyen d’échange entre le programme appelant et la fonction appelée se fait à l'aide de paramètres.
Le paramètre de retour Le paramètre de retour d’une fonction est limité à une seule donnée (caractère, entier, réel…). Il ne peut y avoir qu’un seul paramètre de retour à une fonction. Si plusieurs valeurs doivent être retournées, il faut utiliser des paramètres de sortie.
Déclaration d'une fonction Toute fonction doit être déclarée avant son utilisation Elle se déclare en algorithme dans le lexique Dans un langage de programmation avant l'utilisation de la fonction : Dans un fichier d'en tête en c nommé xxx.h
Exemple en langage C Fonction sans paramètre de retour : Déclaration Utilisation Définition
Exemple en langage C Fonction avec paramètre de retour : Déclaration Définition Utilisation
Création de bibliothèque Lorsque l'on est amené à créer plusieurs fonctions pour un même projet, on regroupe ses dernières dans une bibliothèque. En langage C, une bibliothèque est constituée de 2 fichiers ayant le même nom avec une extension en .c et .h Pour pouvoir utiliser les fonctions de cette bibliothèque, il suffit de l'inclure au programme principale par l'intermédiaire de la commande "include"
Création de bibliothèque fichier des définitions biblioPerso.c Création de bibliothèque fichier des déclarations biblioPerso.h Exemple : Programme principale (main.c) avec inclusion de la bibliothèque
Fonctions typeDeRetour nomDeLaFonction(paramètres) Il peut y avoir plusieurs paramètres (séparés par des virgules) Un paramètres est de la même forme que le déclaration d'une variable ( ex : float valeur) Les variables paramètres prendront les valeurs données par l'utilisateur de la fonction (les valeurs pouvant se trouver dans des variables). Les paramètres sont considérés comme des variables initialisées correctement
Fonctions Les fonctions sont mises dans des bibliothèques. Une bibliothèque est composée d'un fichier de déclaration (.h) et d'un fichier de définition (.c)
Fonctions Le fichier de déclaration contient la déclaration de toutes les fonctions de la bibliothèque (prototypes des fonctions). Le fichier de définition contient le code des fonctions de la bibliothèque. Pour pouvoir utiliser une fonction d'une bibliothèque, il faut inclure le fichier de déclaration correspondant (#include "nomDeBibliotheque.h").
Fonctions Les fonctions faisant de l'affichage ne retourne rien (void, pas de return dans la définition de la fonction). Pour utiliser une fonction retournant une valeur, il faut obligatoirement avoir une variable du même type que la valeur retournée par la fonction. Exemple pour la fonction int partieEntier(float v): int retour ; retour = partieEntiere(15.56) ; Il ne peut y avoir qu'un et un seul return dans une fonction.