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) Donnez quelques exemples de fonctions que vous connaissez
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 main que vous rencontrez systématiquement dans vos programme est une fonction. Déterminez à son propos ces 6 points. Donnez les éléments principaux d'une fonction
Définition(2) Une fonction est une unité algorithmique, en langage C ce sera un entité compilable. Elle possède : Un environnement Un schéma algorithmique Un lexique de variables locales
Retrouvez ces éléments pour main Définition(3) Les éléments de la définition : Le type de la fonction Suivi de son nom Suivi de parenthèses comportant éventuellement Les paramètres précédés de leur type Séparés par des virgules Le corps de la fonction entouré D'accolades ouvrante et fermante Retrouvez ces éléments pour main
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 Ex string.h Déclarez la fonction sinus qui a pour paramètre un réel double et renvoie un réel double
Définition d'une fonction La définition de la fonction correspond à son corps : Type nomFonction([type nomParam [,type nomParam]] ) Début Corps de la fonction fin Déclarez puis définissez une fonction qui doit afficher autant d'étoile que donné en paramètre. Déclarez puis définissez une fonction qui doit afficher un carré sous forme d'étoile dont le coté sera donné en paramètre.
Définition d'une fonction La définition de la fonction correspond à son corps : Type nomFonction([type nomParam [,type nomParam]] ) Début Corps de la fonction fin Déclarez puis définissez une fonction qui doit convertir en minuscule un caractère passé en paramètre. La fonction renvoie le caractère converti.
Exemple Fonction ConvertirEnMinuscule ( carLu caractère) caractère Environnement : Paramètre d’entrée : carlu caractère le caractère à convertir Paramètre de sortie : Paramètre de retour : caractère En entrée : En sortie : Schéma algorithmique : Début Si carLu 'A' et carLu ‘ Z ’ Alors carLu carLu + ( ‘a’ – ‘A’) FinSi Retourner ( carLu) Fin Lexique des variables locales :
Exemple d’appel d’une fonction Environnement : En entrée : clavier En sortie : écran Schéma algorithmique : Début lire : car car <- ConvertirEnMinuscule ( car ) écrire : car Fin Lexique des variables locales : car caractère