Vous êtes sur la page 1sur 3

Université de Bejaia Support de cour programmation C++

Faculté de Technologie GAGAOUA M


Département Génie électrique/ATE 2019/2020
3ieme année Automatique

Chapitre 3 : les fonctions Exemple :


En langage C++, il n’existe qu’une seule sorte de sous-programme nommé int produit (int a, int b)
fonction. { return(a*b);
}
Définition d’une fonction :
int puissance (int a, int n)
La définition d’une fonction qu’on appelle corps de la fonction est de la {int p = 1;
forme suivante : if (n == 0)
return(1);
Type-fonction nom-fonction (type-1 arg-1,..., type-n arg-n) for(i = 1,i<=n,i++)
{
p = p*a ;
Déclarations de variables locales
Liste d’instructions return(p);
Return …… ; }
}
Type-fonction : Est le type de retour (résultat) de la fonction. Une fonction
Appel d’une fonction :
qui ne renvoie pas de valeur est une fonction dont le type est spécifié par
L’appel d’une fonction se fait par l’expression
le mot clef void.
Nom-fonction : Est un identificateur permettant de nommer la fonction. nom-fonction(para-1,para-2,...,para-n)
Type-1…Type-n: sont les types des paramètres de la fonction arg-1…arg-n Exemple :
Une fonction renvoie sont résultat avec l’instruction
Return(expression) ; int main()
La valeur de expression est la valeur que retourne la fonction. Son type {int n,x;
doit être le même que celui qui a été spécifié dans l’en-tête de la fonction. Cin >> n>> x ;
Si la fonction ne retourne pas de valeur (fonction de type void), sa définition Cout<< “x puissance n :“<<
s’achève sans return puissance(x,n)<< endl ;
Plusieurs instructions return peuvent apparaître dans une fonction. Le return 0;
retour au programme appelant sera alors provoqué par le premier return }
rencontré lors de l’exécution.

1
Université de Bejaia Support de cour programmation C++
Faculté de Technologie GAGAOUA M
Département Génie électrique/ATE 2019/2020
3ieme année Automatique

Déclaration d’une fonction : Passage par référence (adresse) :


La définition d’une fonction secondaire doit être placée soit avant, soit Pour qu’une fonction puisse modifier la valeur d’un de ses arguments, il
après la fonction principale main. Toutefois, il est indispensable que le faut qu’elle ait pour paramètre l’adresse de cet objet (sa référence) et
compilateur “connaisse” la fonction au moment où celle-ci est appelée, non sa valeur.
elle doit impérativement être déclarée au préalable. Exemple :
type nom-fonction(type-1,...,type-n); void permuter(int & a, int & b)
Exemple : {
puissance( int,int) ; int t;
t= a;
Variables globales et locales a =b;
On appelle variable globale une variable déclarée en dehors de toute b= t;
fonction. Une variable globale est connue dans toute la portion de code qui }
suit sa déclaration. Les variables globales sont partagées par toutes les
fonctions alors toute fois il faut s’assurer de leur intégrités.
On appelle variable locale une variable déclarée à l’intérieur d’une fonction Transformation d’une fonction en procédure :
(ou d’un bloc d’instructions) du programme. Quand une fonction est En C++ une fonction ne peut renvoyer qu’une seule valeur. Dans le
appelée, elle place ses variables locales dans la pile. A la sortie de la cas où on veut renvoyer plusieurs résultats en même temps, la fonction
fonction, les variables locales sont dépilées et donc perdues. Dans une doit céder sa place aux procédures.
fonction, une variable qui porte le même non qu’une variable globale, est Pour transformer une fonction procédure en suit les étapes suivantes :
considérée locale.  Rajouter autant de paramètres formels que de résultats à
Passage de paramètres dans une fonction : renvoyer
Passage par valeur :  Passer ces nouveaux paramètres formels en donnée / résultat
Les fonctions utilisent le passage par valeur pour leurs paramètres, lors de  Supprimer l’instruction return
l’appel de la fonction, les paramètres effectifs sont copiés dans le segment
de pile. La fonction travaille alors uniquement sur cette copie. Cette copie
disparaît lors du retour au programme appelant. Cela implique en
particulier que, si la fonction modifie la valeur d’un de ses paramètres,
seule la copie sera modifiée.

2
Université de Bejaia Support de cour programmation C++
Faculté de Technologie GAGAOUA M
Département Génie électrique/ATE 2019/2020
3ieme année Automatique

Exemple : Exemple :
 Fonction qui retourne un entier #include <iostream>
int somme(int a, int b) using namespace std;
{ int som; int fact(int n)
som=a+b; {if(n==0)
return som; return(1);
} else
 Procédure qui contient un nouveau paramètre return(n*fact(n-1));
permettant de stocker la valeur "retournée" }
int main () {
void somme(int a, int b, int & som) int n ;
{ cout << "inroduire n " << endl ;
som=a+b; cin >> n;
} cout<<"le factoriel de "<< n << "est :"<< fact(n)<<endl;
 Procédure qui renvoie deux valeurs return 0;}
void som_prod(int a, int b, int &s, int &p)
{
s=a+b;
p=a*b;
}

Fonctions récursives :
Une fonction récursive est une fonction qui fait appelle à elle-même. La
récursivité est utilisable pour les problèmes qui peuvent être résolut par
récurrence.

Vous aimerez peut-être aussi