Les fonctions
Les fonctions
Définition :
Une fonction est un sous-programme qui peut-être utilisée
plusieurs fois.
2
Les fonctions
Une fonction doit avoir:
●
un entête comprenant
1. un nom
2. un type de retour
3. un nombre fixe de paramètres (paramètres formels)
●
corps comprenant
1. la déclaration des variables locales utilisables uniquement dans le corps de la fonction
2. les instructions qui utilisent les variables locales et les paramètres de la fonction
3. un ordre de retour du résultat
3
Exemple :
int max (int i, int j) {
int diff;
diff=i-j;
if(diff >= 0)
return i;
else
return j;
}
4
Appel de fonction
●
Les paramètres effectifs sont évalués
lors de l'appel de la fonction
int main () {
i et j sont des
#include<stdio.h> paramètres int a, b;
formels printf("Entrez deux entiers \n");
int max (int i, int j) {
int diff;
scanf ("%d%d",&a,&b);
diff=i-j; printf ("Le plus grand des deux est:
if(diff >= 0) return i;
%d\n", max(a,b)); a et b sont les
return 0 ; paramètres
else return j;
effectifs
} }
5
Passage de paramètres
●
Qu’est-ce que cela affiche? Pourquoi?
●
Seule une copie du paramètre est transmise
#include<stdio.h> int main() {
void modif(int i) { int n=10;
printf(" la valeur du paramètre au départ est printf("n=%d\n", n);
%d\n", i);
modif(n);
i++;
printf("n=%d\n", n);
printf(" la valeur du paramètre après
modification est %d\n", i); return 0 ;
} }
6
Variables globales
●
Une solution pour régler le problème précédent est d'utiliser des
variables globales
●
Une variable globale est accessible dans n'importe quelle fonction
7
Exemple 1
#include<stdio.h>
int i; /* i est une variable globale*/
void affiche() {
printf("la valeur du paramètre est : %d,\n", i);
}
int main() {
for(i=1;i<5;i++) affiche();
return 0 ;
}
●
Qu’est-ce que cela affiche?
8
Exemple 2
#include<stdio.h> int main() {
int i=10; printf( " i=%d\n", i);
void modif() {
modif();
printf(" la valeur du paramètre au
départ est %d\n", i); printf(" i=%d\n", i);
i++; return 0 ;
printf(" la valeur du paramètre }
après modification est %d\n", i); ●
Qu’est-ce que cela affiche?
}
9
Variables globales
Avantages: Inconvénients:
●
On peut les utiliser dans ●
On peut les modifier dans
n'importe quelle fonction n'importe quelle fonction
●
On peut les modifier dans ●
Entraine de nombreuses
n'importe quelle fonction erreurs
10
A retenir sur les fonctions
●
Une fonction est un bout de programme qui peut être utilisée plusieurs
fois grâce aux appels.
●
Elle simplifie l’écriture des programmes et améliore leur lisibilité.
●
Les types, l’ordre d’apparition et le nombre des paramètres doivent être
les mêmes entre la déclaration (paramètres formels) et l’appel
(paramètres effectifs)
●
En C, les paramètres sont passés par copie (passage par valeurs).
●
Les paramètres effectifs sont évalués et une copie du résultat de
l’évaluation est transmise à la fonction.
●
11
Questions ?
12