Comprendre Les Fonctions




Jusqu'à présent, nous avons travaillé à l'intérieur de la fonction main mais c'est une mauvaise habitude à ne surtout pas prendre ! Plus tard, vous écrirez sûrement des codes sources beaucoup plus complets et tout serait concentré dans cette fonction main, on ne pourrait donc plus s'y retrouver. C'est donc principalement pour cette raison que les fonctions existent.


Rappelez-vous que chaque fonction est composée d'instructions, c'est déjà un élément important à retenir sur la fonction, voici la fonction main constituée de deux instructions :


int main()
{
    printf("Salut tout le monde !");

    return 0;
}


Je vous rappelle également que main est la fonction qui est exécutée automatiquement par l'ordinateur lors de l'exécution d'un programme, l'ordinateur la connaît par cœur, il faut donc toujours une fonction main dans votre projet sinon il ne compilera pas.


Je vous présente en image le mécanisme d'une fonction :

Ce schéma est à connaître, les fonctions sont la base de la base !


On distingue 3 étapes importantes :


    * On envoie des informations en entrée à la fonction pour qu'elle puisse travailler par la suite.

    * La fonction exécute un tas d'instructions à l'aide des informations qu'elle a reçu.

    * Enfin, la fonction renvoie un résultat en sortie, on parle aussi de retour (return en anglais).


Ce mécanisme est appelé en programmation un appel d'une fonction ! Ce n'est pas si nouveau que ça, j'ai déjà évoqué ce terme précédemment. Il est à connaître par coeur bien entendu.


Si vous avez compris ça, vous avez tout compris .


triple


D'autres exemples pour mieux comprendre ? Imaginez une fonction calculant le triple d'un nombre (4), une fonction est nommée, je l'ai donc appelée triple :



On envoie 4 en entrée, la fonction effectue des opérations avec 4 et une fois qu'elle a fini, elle nous renvoie le résultat 12 en sortie. C'est exactement le même principe que les cours de mathématiques avec f(x) (si vous les suivez ).



somme


Imaginez maintenant une autre fonction calculant la somme de 2 nombres (6 et 2) :



Ici, on envoie 2 informations en entrée et la fonction nous renvoie 8. La particularité des fonctions, c'est qu'elles ne peuvent en aucun cas renvoyer plusieurs informations. Nous verrons qu'elles peuvent par contre ne rien renvoyer du tout.


Notez que toutes les informations envoyées en entrée lors d'un appel d'une fonction sont appelées en programmation des paramètres, 2 et 6 sont donc des paramètres de la fonction somme.

Retenez bien ce terme, je vais dès maintenant l'utiliser fréquemment !


printf


Regardez maintenant la fonction printf, qui affiche du texte à l'écran :



Elle est un peu particulière ! D'abord, on lui envoie en entrée le texte à afficher à l'écran. Mais que voulez-vous qu'elle renvoie en sortie ? Bah, rien... La fonction ne renvoie aucune valeur. Elle se contente d'effectuer des opérations avec le texte, ici, elle affiche tout bêtement le texte à l'écran.

On peut donc dire que la fonction printf ne prend qu'un paramètre en entrée, le texte.


iaorana


Pour finir, imaginez une fonction qui affiche toujours la même chose à l'écran, j'ai nommé, iaorana :



Elle ne prend pas de paramètres en entrée, et ne renvoie rien en sortie. Elle pourrait renvoyer une valeur mais elle serait toujours la même, il est donc inutile d'en renvoyer une.


C'est bien gentil mais elles servent à quoi ces fonctions alors ?


Elles sont utilisées pour éviter de répéter du code source. En effet, ces fonctions peuvent être utilisées par exemple pour afficher un message d'erreur, la date, l'heure...




En résumé, nous avons distingué ces fonctions :


  • Les fonctions qui prennent des paramètres en entrée et renvoient un résultat en sortie.
    Ici, triple et somme.

  • Les fonctions qui prennent des paramètres en entrée mais ne renvoient aucun résultat en sortie.
    Ici, printf.

  • Les fonctions monotones qui ne prennent pas de paramètres en entrée et donc qui renvoient rarement un résultat en sortie. 
    Ici, iaorana.


Nous allons étudier précisément chaque fonction pour bien comprendre...

Créé avec HelpNDoc Personal Edition: Créer des documentations web iPhone