Parfois appelée sous-programme, module ou procédure, une fonction est un groupe
d'instructions qui réalise une tâche donnée. Chaque programme en C est composé d'au
moins une fonction, qui est main()
.
L'idée des fonctions est de ne pas répéter le même extrait de code à différents
endroits du programme. On écrit ce code dans une fonction et il suffit d'appeler
cette fonction à chaque fois que cela est nécessaire. Dans les cours précédents,
nous avons déjà utilisé quelques fonctions :
printf()
scanf()
Lorsque l'on utilise une fonction, on parle d'un appel à la fonction. Le code suivant
est un appel à la fonction print
:
printf ("Hello");
Considérons, pour l'exemple, la fonction max()
suivante qui retourne le plus grand des deux
entiers a
et b
:
int max(int a, int b);
La syntaxe de cette fonction est illustrée ci-dessous :
Détaillons cette syntaxe :
L'écriture d'une fonction se réalise en deux parties :
Voici un exemple de structure d'un programme complet avec l'implémentation d'une fonction :
#include <stdio.h>
// Prototype de la fonction
int max (int a, int b);
// Programme principal
int main(void)
{
// Appel de la fonction max
printf ("Le plus grand est %d", max(12, 7));
return 0;
}
// Implémentation de la fonction
int max(int a, int b)
{
if (a>b) return a; else return b;
}
On fournit deux fonctions addition()
et soustraction()
qui retournent respectivement
la somme et la soustraction des paramètres a
et b
:
// Additionne a et b et retourne le résultat
int addition (int a,int b) {
return a+b;
}
// Soustrait b à a et retourne le résultat
int soustraction (int a,int b) {
return a-b;
}
En utilisant ces fonctions comme modèles, compléter le programme avec
multiplication()
qui retourne le produit de ses deux paramètres :Fonction addition : x + y = 12 Fonction soustraction : x - y = 4 Fonction multiplication : x * y = 32
Écrire un programme qui contient une fonction int carre (int n)
qui calcule
le carré de l'entier n
. Testez votre fonction avec le programme principal suivant :
int main(void) {
int x=8;
printf("%d*%d = %d\n", x, x, carre(x));
return 0;
}
Écrire un programme qui contient une fonction char pair (unsigned int n)
qui retourne :
0
si n
est un nombre impair ;1
si n
est un nombre pair ;Tester la fonction avec un programme principal qui demande à l'utilisateur de saisir un entier avant d'afficher s'il est pair ou impair.
Entrez un entier : 15 15 est un nombre impair.
La fonction pair()
ne doit rien afficher, mais retourner 0 ou 1 au programme principal.
En C, une fonction permet :
Combien de paramètre(s) possède la fonction suivante :
int Ma_function (float x, unsigned short Val);
Le prototype d'une fonction ...
Le prototype d'une fonction se place ...
L'implémentation d'une fonction ...
L'implémentation d'une fonction se place ...