Vous êtes sur la page 1sur 23

Université des Frères Mentouri – Constantine-1

Faculté des ST - Département d'Electronique

PROGRAMMATION ORIENTÉE-
OBJET EN C++
Dr. Amina HAMEURLAINE
Amina.hameurlaine@umc.edu.dz

2018/2019
Les Fonctions

Cours Programmation Orientée Objet en C++ Dr. A.HAMEURLAINE 2


Définition:

 Une fonction est un morceau de code qui accomplit une tâche


particulière.
 Elle reçoit des données à traiter, effectue des actions avec, et
enfin renvoie une valeur.

Exemple:
 Les avantages des fonctions:

 Décomposer un problème en sous-problèmes moins complexes


et les traiter séparément.
 Simplifier la réalisation et la maintenance des programmes.
 Eviter les répétitions.
 Favoriser la réutilisabilité du code.
Syntaxe:

type nomFonction (arguments)


{ //Instructions effectuées par la fonction
return valeur; //valeur renvoyée par la fonction.
}

Note: L'instruction return est une instruction comme une autre!


On peut l’utiliser comme toute autre instruction.
Exemple:

Attention:
Une fonction produit toujours
un seul résultat:
=> Il n’est pas possible de
renvoyer plus d’une valeur.
Fonction sans arguments:

Exemple:

string demanderNom ( ) {
cout << "Entrez votre nom ";
string nom;
cin >> nom;
return nom;
}
Des fonctions qui ne renvoient rien:

Il est possible d'écrire des fonctions qui ne renvoient rien.

=> Rien ne ressort de la fonction mais, quand on la déclare, il faut


quand même indiquer un type.
On utilise le type void, ce qui signifie « néant » en anglais.

Exemple:

void initX _Y(double newX, double newY) {


x = newX;
y = newY;
}
Appeler une fonction:
Définition
Appels
Prototype d’une fonction:

 Toute fonction utilisée dans le programme principal doit être déclarée


avant le main( ).
 La déclaration d’une fonction définit son prototype ou sa signature.

Syntaxe:
type nomFonction (type argument1 , type argument2, ….) ;

 Toute fonction déclarée peut être définie avant ou après le main ( )


Prototype d’une fonction:
Exemple:
Variables locales et Variables globales:

 Variables locales
 La portée des variables déclarées lors de la définition d’une fonction est
locale `a la fonction qui les contient.
 Les variables déclarées dans le main sont locales au main.

 Variables globales
 Les variables globales sont déclarées avant le main.
 Elles sont connues par toutes les fonctions qui sont compilées au sein
du même programme source.
Exercices:

1. Ecrire une fonction qui permet de calculer la surface d’un rectangle.


2. Ecrire une fonction qui permet de saisir le nom , le prénom, la date de
naissance ainsi que l’adresse d’un utilisateur.
3. Ecrire une fonction qui permet d’afficher le nom , le prénom, la date de
naissance ainsi que l’adresse d’un utilisateur.
4. Ecrire une fonction qui permet de saisir les notes de 10 modules , les
stocker dans 10 cases mémoires (réservées manuellement), ainsi calculer
et renvoyer la moyenne de ces notes.
5. Ecrire une fonction qui permet de calculer la factorielle d’un nombre donné.
Fonctions et Tableaux:
Une fonction peut recevoir en argument un tableau de n'importe quel type.
Exemple:
Passage d’arguments :

1. Passage par Valeur


2. Passage par Référence
3. Passage par Pointeur
Passage d’arguments :
1. Passage par valeur
Exemple 1:
Passage d’arguments :
1. Passage par valeur
Exemple 1:

a b

Les valeurs 5 et 3 servent a


5 3 initialiser les variables a et b.
=> Ne sont pas transmises elle-
même a la fonction.
=>Elles sont copiées dans des
nouvelles cases mémoire (x et y).
Passage d’arguments :
1. Passage par valeur
Exemple 2:
Passage d’arguments :
2. Passage par référence:
Une référence peut être vue comme un alias d'une variable.
On peut modifier le contenu de la variable en utilisant une
référence.
Exemple 1:
Passage d’arguments :
2. Passage par référence:
Une référence peut être vue comme un alias d'une variable.
On peut modifier le contenu de la variable en utilisant une
référence.
Exemple 1:

&a 1.2 &b 4.5

Les valeurs 1.2 et 4.5 ne sont pas


copiées dans des nouvelles cases
mémoire =>elles se sont passées elle
mêmes.
Passage d’arguments :
2. Passage par référence:
Exemple 2:
Passage d’arguments :
3. Passage par pointeur (ou par adresse):
Exemple:
Quelques fonctions mathématiques prédéfinies:
 Pour avoir accès aux fonctions mathématiques, il faut ajouter la bibliothèque
<cmath>.

Nom de la
Symbole Fonction Mini-exemple
fonction
Racine carrée sqrtx sqrt() resultat = sqrt(valeur);

Sinus sin(x) sin() resultat = sin(valeur);

Cosinus cos(x) cos() resultat = cos(valeur);

Tangente tan(x) tan() resultat = tan(valeur);

Exponentielle ex exp() resultat = exp(valeur);

Logarithme lnx log() resultat = log(valeur);


népérien
Logarithme en log10x log10() resultat = log10(valeur);
base 10
Valeur absolue |x| fabs() resultat = fabs(valeur);
La récursivité dans les fonctions :
 La récursivité est ce qui se passe quand une fonction s'appelle
elle-même.
 Elle est utile pour certaines tâches, telles que le tri des éléments,
ou le calcul de la factorielle des nombres.

Exemple: