Académique Documents
Professionnel Documents
Culture Documents
Filière SMP - S4
1 Généralités
2 Fonctions
1 Généralités
fonctions.
programmation modulaire.
2 Fonctions
Définition
I Une fonction est un sous programme du C++ permet de regrouper des
prototype de la fonction.
I Un prototype (en-tête de la fonction) donne le nom, le nombre et le type
I Toute fonction utilisée dans le programme principal doit être déclarée avant le
main().
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 4 / 38
Fonctions
Exemples
Remarque
Si une fonction ne retourne aucun résultat, son type de retour
est void. C’est l’équivalent d’une procédure en algorithmique.
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 5 / 38
Fonctions
bloc {}. Cela définira la suite d’instructions qui sera exécutée à chaque appel
de la fonction.
Syntaxe de définition :
type_retourné nom_fonction ( type1 arg1, type2 arg2, ... ) // En-tête
{
// Corps de la fonction
Bloc d’instructions ;
return expression ;
}
Exemples
Exemples
entre parenthèses.
Syntaxe d’appel :
nom_fonction ( arg1, arg2, arg3, ... );
int a , i =1 , j =8 ;
Définition :
Mécanisme d’appel
I Quand un programme rencontre un appel à une fonction :
1 il se place directement au début de la fonction,
2 exécute les instructions dans cette fonction,
3 après l’exécution, le programme revient à l’instruction qui suit l’appel de la
fonction.
I L’appel d’une fonction peut se faire dans le main() ou dans une autre
fonction.
Passage par valeur : Lors de l’appel de la fonction, c’est seulement une copie
des valeurs des paramètres effectifs qui est affectées aux paramètres formels.
Passage par adresse : Ici, c’est l’adresse des emplacements mémoire des
paramètres réels qui est copiée dans les paramètres formels (Pointeur).
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 14 / 38
Paramètres d’une fonction
formels x et y.
1. z = x; 2. x = y; 3. x = z;
Driss ABADA Initiation à la programmation : Langage C++ Année Universitaire : 2019/2020 17 / 38
Paramètres d’une fonction
Notion de référence
I Une référence est un synonyme (alias) d’une autre variable.
I On peut faire référence à la même variable (même espace mémoire) avec
plusieurs identificateurs différents.
I La référence est déclarée en ajoutant une esperluette & entre le type et le
nom de la variable. Syntaxe : type &nom_id1 = nom_id2 ;
I Comme une constante, une référence doit être initialisée dès sa déclaration.
Exemple :
int n = 33;
int & r = n ; // r est une reference a n
cout << n << " " << r << endl ; // memes valeurs
--n ; // n vaut 32 et aussi r vaut 32
cout << n << " " << r << endl ;
r *= 2; // r vaut 64 et aussi n vaut 64
cout << n << " " << r << endl ;
cout << & n << " " << & r << endl ; // adresse memoire
Notion de pointeur
I Un pointeur est une variable qui a pour valeur l’adresse mémoire d’une autre
variable.
I On peut faire référence à une variable avec une autre variable contenant son
adresse appelée pointeur.
I Le pointeur est déclaré en ajoutant une étoile * entre le type et le nom de la
variable. Syntaxe : type *nom_ptr ;
Exemple :
int j = 4;
int * ptr = 0; // declaration de pointeur
ptr = & j ; // l ’ adresse de j est stockee dans ptr
int k = * ptr ; // la valeur de j est affectee a k
cout << k << " \ t " << * ptr << endl ;
* ptr = 5; // la valeur 5 est affectee a j
cout << * ptr << " \ t " << j << endl ;
pointeurs qui peuvent être par la suite utilisé pour modifier les variable
pointées a et b.
Exercice 1 :
une autre qui retourne leurs produit. Les deux paramètres sont passés par
valeurs.
2 Écrire en C++ une procédure (fonction de type void) équivalent aux deux
I En utilisant 4 paramètres.
I En utilisant 2 paramètres.
Exercice 2 :
une solution, false si non. La solution est renvoyé par la fonction par un
Corrigé de l’exercice 2 :
Corrigé de l’exercice 2 :
if ( a !=0)
s=-b/a;
return true ;
s = -1;
return false ;