LES
FONCTIONS
Comme
vous le voyez dans le titre, dans ce chapitre on va parler du mot
fonction.
(Mais les fonctions, on a vu ça. )
Tu n’arrêteras jamais de
dire ça si tu as bien compris les chapitres
précédents . Eh bien je suis
d’accord avec vous, on a vu la structure d’une
fonction, la fonction main…
Mais est ce que vous savez qu’on peut créer ses
propres fonctions ?
Bah C’est possible.
D’ailleurs on va le voir dans
ce chapitre. N’ayez pas peur, pas des nouveaux,
c’est sont des choses qu’on a
déjà vu comme vous le dites. C’est
pourquoi on ne va pas trop rester ici pour faire des
répétitions.
Vous devez mettre en tête que ce
chapitre est beaucoup plus important dans la mesure où si
nous voulons réaliser un programme si long, il est
nécessaire d’utiliser plusieurs fonctions. Pour
cela, la notion de création d’une fonction et
d’appel d’une fonction doit être bien
acquise.
1)
Création d’une fonction
Pour
créer une fonction, voici les procédures
à suivre :
- Prototype de la fonction :
il s’agit
d’une description de la fonction à
définir, destinée au compilateur. Il indique
au compilateur certains données qui lui permettent
de vérifier à chaque appel de la fonction que le
nombre et le type de paramètres, ainsi que la valeurs de
retour sont corrects.
Il est identique à l’entête
d’une fonction et se termine par un point virgule (;).
syntaxe:
type_fonction
nom_fonction(type_argument nom_argument1, type_argument
nom_argument2,..);
exemple: int
mafonction(int a,int b);
- definition de
la fonction :
-l'entête:syntaxe:
identique à celle du prototype: type_fonct
nom_fonction(parametres1,parametres,...).
type fonction(type_fonct): il
s'agit du type de valeur renvoyé par la fonction c'est a
dire le type de données que la fonction retournera au
programme appelé. il peut être char,
int, long, double, void.
nom de
la fonction( nom_fonct) : on
utilise les mêmes règles que pour les noms de
variables.
argument: donnée transmise
à la fonction par le programme.
exemples:
code C:
|
intmafonction(int
a, int b) |
code C: |
void mafonction( int a, int b) |
code C: |
void mafonction( void) |
. .
.
-corps de la
fonction: il est delimité
par 2 accolades.A
l’intérieur de ces accolades, on trouve les
instructions et les variables locales.
exemple:
code C:
int
mafonction( int x, int y)
{
int a , b;
...
}
|
Ici a et b sont des variables locales à la
fonction "ma fonction".
- renvoie
de valeur: on
utilise la fonction "return" pour renvoyer la valeur si le
type de la fonction est différent de void car avec" void", il y a pas de
valeur retournée.
exemple:
code
C:
int
mafonction(int x)
{
int a,
...
return a;
} |
2) Appel d’une
fonction
Programme
principal :
Ce schéma nous montre
comment on appelle les fonctions à
l’intérieur de la fonction main.

Ce
qui se passe quand le programme principale appelle une fonction, les
instructions de la fonction s’exécutent
d’abord avant la continuité d’autre
chose.
Ici
nous allons voir deux méthodes utilisées pour
appeler une fonction. Avant d’attaquer ces deux
méthodes, nous devons savoir comment se fait le passage
d’arguments à une fonction.
Soit
par exemple :
L’en-tête
de la fonction : int
mafonction (int x, in y, int z)
L’appel de la fonction : mafonction(a,b,c)
Ici a
sera attribué int
x, b
à int y
et c
à int z.
les arguments sont toujours attribués dans l’ordre
aux paramètres.
Si on a déjà compris ça, rien n’est difficile
pour le reste.
Voici
les deux méthodes qu’on vous a
parlé :
1ère
méthode : nom de la fonction suivi de la liste de
d’arguments entre parenthèses, dans une
instruction.
Exemple :
nombretotaledesboules (17, 20,79)
Pour
mieux comprendre voici un exemple,code source :
code C/C++
#include
<stdlib.h>
#include <stdio.h>
void nombretotaldesboules( int boulesbleux, int boulesrouges, int
boulesverts)
{ int nombretotaldesboules ;
nombretotaldesboules = boulesbleux + boulesrouges + boulesverts;
printf("le nombre
total des boules est %d\n",nombretotaldesboules);
}
int main()
{ nombretotaldesboules(17,48,75);/*Ici on a
appelé la fonction nombretotaldesboules,
17 est
attribué aux boulesbleux, 48 aux boulesrouges et 75 aux
boulesverts */
system("pause");
return 0;
}
|
Note bien:
Si la fonction renvoie une valeur, celle ci est
ignorée.
2ème
méthode : ici on utilise la fonction
étant une expression.
Exemple :
printf("le nombre total des
boules est %d\n",nombretotaldesboules(17,48,75));
Pour
mieux comprendre voici un exemple,code source :
code C/C++:
#include
<stdlib.h>
#include <stdio.h>
int nombretotaldesboules( int boulesbleux, int boulesrouges, int
boulesverts)
{
return boulesbleux + boulesrouges + boulesverts;
}
int main()
{
printf("le nombre
total des boules est %d\n",nombretotaldesboules(17,48,75));
system("pause");
return 0;
}
|
Dans notre exemple, vous remarquer
très bien que la fonction nombretotaldesboules est
appelée dans la fonction printf.
Remarque :
lorsqu’une fonction s’appelle elle-même
directement ou indirectement, on parle de récurrence.
|