You are on page 1of 12

Programmation

avancée en C
Prof : Yo unes ET TAZARINI
younes.ettazari ni@gmail.com
Les fonctions en C
Pourquoi écrire des fonctions
 Lorsqu'on a un ensemble de lignes de code qui doivent être exécutées à
différents endroits dans un programme, au lieu de réécrire les mêmes lignes
de code, il est intéressant de créer des fonctions.
 Au lieu d'écrire une fonction main() de 500 lignes, il est préférable de créer 25
fonctions de 20 lignes
− On structure le programme.
− Il est plus facile de tester chaque fonction.
 Ecrire des fonctions est absolument obligatoire.

Année Universitaire 2022 - 2023 3 Pr. Younes ETTAZARINI


Qu’est ce qu’une fonction ?
 Une fonction est un bloc d’instructions éventuellement paramétré par un ou
plusieurs arguments et pouvant fournir un résultat nommé souvent « valeur de
retour ». Une fonction :
− Encapsule un traitement particulier formant un tout.
− Augmente la lisibilité d’un programme.
− Réalise un objectif précis.
− Améliore le débogage et la maintenance d’un programme.
 Son utilisation se décompose en trois phases :
− Définition de la fonction
− Déclaration de la fonction
− Appel de la fonction

Année Universitaire 2022 - 2023 4 Pr. Younes ETTAZARINI


Ecrire une fonction
 Syntaxe :
type identificateur(paramètres) {
Corps de la fonction
}
 A chaque appel de la fonction on exécute le corps de la fonction.
 L'identificateur est le nom de la fonction.
 La fonction peut avoir des paramètres.
 La fonction peut renvoyer une valeur de type type.

Année Universitaire 2022 - 2023 5 Pr. Younes ETTAZARINI


L’instruction return
 L’instruction return sert à la fois à fournir une valeur de retour et à mettre fin à
l’exécution de la fonction. Elle peut mentionner une expression ; elle peut apparaître
à plusieurs reprises dans une même fonction ; si aucune instruction return n’est
mentionnée, le retour est mis en place à la fin de la fonction.
 Lorsqu’une fonction ne fournit aucun résultat, son en-tête et sa déclaration
comportent le mot void à la place du type de la valeur de retour, comme dans :
void fonctionSansValDeRetour (...)
 Lorsqu’une fonction ne reçoit aucun argument, l’en-tête et la déclaration comportent
une liste vide, comme dans :
int fonctionSansArguments ()

Année Universitaire 2022 - 2023 6 Pr. Younes ETTAZARINI


Exemple : Calculer le carré d’un nombre

Année Universitaire 2022 - 2023 7 Pr. Younes ETTAZARINI


Remarques
 La définition d’une fonction tient lieu de déclaration. Mais elle doit être
"connue" avant son utilisation (un appel). Sinon, le compilateur génère un
message d’avertissement (warning) qui indiquera qu’il a lui-même fait une
déclaration implicite de cette fonction :

 En aucun cas l’imbrication de fonctions n’est possible.

Année Universitaire 2022 - 2023 8 Pr. Younes ETTAZARINI


Exemple : Calculer le carré d’un nombre

Année Universitaire 2022 - 2023 9 Pr. Younes ETTAZARINI


Conclusion
 La déclaration d’une fonction qui est une instruction fournissant au compilateur un
certain nombre d’informations concernant une fonction. Il existe une forme
recommandée dite prototype :
− int carre(int) ;
 La définition qui revient à écrire le corps de la fonction (qui définit donc les
traitements effectués dans le bloc {} de la fonction)
− int carre(int n) { return n*2 ; }
 L’appel qui est son utilisation. Elle doit correspondre à la déclaration faite au
compilateur qui vérifie.
− int res = carre(2) ;

Année Universitaire 2022 - 2023 10 Pr. Younes ETTAZARINI


Exercice 1
 Ecrire un programme qui définit et utilise :
− une fonction somme (int x, int y); qui renvoie la somme de 2 éléments.
− une fonction estDivisible( a, b) qui renvoie 1 si a est divisible par b et renvois 0 sinon.
− une fonction estPremier(n) qui renvoie 1 si n est premier et -1 sinon.

 Le programme principal permet la saisie d’un entier n et d’un entier p


inferieur à n. Ensuite il permet de calculer la somme de n et p, puis il affiche si
ce nombre est premier ou non.
 Rappels :
− Un nombre entier n est dit ”premier” s’il n’existe aucun entier d dans l’intervalle [2,n -1] tel
que n soit divisible par d.

Année Universitaire 2022 - 2023 11 Pr. Younes ETTAZARINI


Exercice 2
 Ecrire un programme en langage C qui lit la dimension N d'un tableau T du
type int (dimension maximale: 50 composantes), remplit le tableau par des
valeurs entrées au clavier avec une fonction remplir_tab et affiche le tableau
avec une fonction affiche_tab.
 Effacer ensuite toutes les occurrences de la valeur 0 dans le tableau T et tasser
les éléments restants avec une fonction efface_zéro.
 Afficher le tableau résultant.

Année Universitaire 2022 - 2023 12 Pr. Younes ETTAZARINI

You might also like