Vous êtes sur la page 1sur 6

Fonctions & Procédures Algorithmique & Langage C

Fonctions & procédures


Sommaire :
I. Analyse descendante .......................................................................................... 2
II. Déclaration des fonctions: ................................................................................... 2
1) Prototype d’une fonction : .............................................................................. 2
2) Corps d’une fonction:..................................................................................... 3
3) Comment obtenir une fonction....................................................................... 3
4) Appel d’une fonction : .................................................................................... 4
a) Principe : .................................................................................................... 4
b) Syntaxe de l’appel : .................................................................................... 4
c) Passage des paramètres en C ................................................................... 4
III. Les procédures : ............................................................................................... 5
1) Prototype d’une procédure: ........................................................................... 5
2) Corps d’une procédure: ................................................................................. 5
3) Appel d’une procédure: ................................................................................. 5
4) Exemples ....................................................................................................... 6

IFMOTICA Page 1 sur 6


Fonctions & Procédures Algorithmique & Langage C

I. Analyse descendante
La résolution des problèmes complexes et de grandes tailles, necessite l’utilisation
d’une méthodologie pour construire la solution correspondante.
L’analyse descendante est l’une des méthodes les plus utilisée pour le
développement d’une solution informatique pour les problèmes complexes. L’analyse
descendante est basée sur la technique ‘Diviser pour Régner’ qui consiste à :
 Décomposer le problème en sous problèmes indépendants, à décomposer
eux-mêmes en sous problèmes et ainsi de suite jusqu’ à ce qu’on arrive à des
problèmes triviaux.
 Résoudre les sous problèmes triviaux séparément, pour chaque sous
problème on conçoit un sous programme qu’on appelle fonction.
 Combiner les sous programmes (fonctions) obtenus pour construire la
solution globale du problème.
Une fonction, est un ensemble d’instructions réalisant une tâche bien précise, elle
peut être considérée comme une boîte noire qui reçoit en entrée des données et
fournit des résultats en sortie.

Schéma d’une fonction


II. Déclaration des fonctions:
La déclaration d’une fonction en C est constituée par deux parties :
 La partie interface, appelée aussi prototype, spécifie l’apparence de la
fonction : le nom, les données et les résultats fournies par la fonction.
 La partie corps spécifie le comportement de la fonction i.e., les instructions à
exécuter sur les données pour obtenir les résultats.
1) Prototype d’une fonction :
L’interface est constituée par trois éléments chacun joue un rôle particulier.
Syntaxes :

En Algorithmique En Langage C

Fonction type_retour nom_fonction( paramètres) type_retournom_fonction( paramètres)

 type_retour indique le type de la valeur que la fonction doit retourner.Ce type


peut être l’un des types simples (entier, réel, booléenne, caractère,...).
 nom_fonction indique le nom de la fonction, celui-ci doit suivre lesmêmes
règles que les noms des variables simples. Il est préférable dechoisir, pour les
fonctions, des noms qui indiquent ce qu’elles font.

IFMOTICA Page 2 sur 6


Fonctions & Procédures Algorithmique & Langage C

 paramètres, appelée aussi paramètres formels, ce sont lesobjets (données


et résultats) sur lesquelles s’exécute la fonction. Pourchacun des paramètres
on doit préciser le type, l’identificateur et la nature : fixe ou variable.
2) Corps d’une fonction:
En Algorithmique En Langage C
Fonction type_retour nom_fonction( paramètres) type_retour nom_fonction( paramètres) {
Déclarations des variables locales Déclarations des variables locales
Instructions Instructions
Retourner expression return expression ;
FinFonction }

 Variables locales : ce sont des variables déclarées dans la fonction etqui ne


sont pas visibles à l’extérieure.
 Instructions : représentent les opérations qui permettent d’effectuer la tâche
de la fonction. Quand la fonction est appelée, l’exécution commence à la
première instruction qui suit l’en-tête et se termine à la rencontre de la
première instruction return ( Retourner).
 return (Retourner ): permet de renvoyer la valeur d’une expression à la
fonction appelante. Lorsque cette instruction est rencontrée l’expression est
évaluée et la valeur trouvée est transmise à la fonction appelante.
Exemple : Maximum de deux entiers a et b

En algorithmique En langage C
Fonction entier maximum ( entier a , entier b) int maximum ( int a , int b) {
Variable : max : entier int max;
si ( a < b ) alors if ( a < b )
max  b max = b ;
sinon else
max a max = a ;
retourner max return max ;
FinFonction }

3) Comment obtenir une fonction


Pour l’écriture d’une fonction on doit répondre aux questions suivantes :
 Quel la valeur que la fonction doit retourner ? Cette valeur définie le type de
retour de la fonction.
 Quels sont les données dont la fonction a besoin pour effectuer sa tâche ?
Les données constitueront les paramètres fixes de la fonction.
 Quels sont les résultats que la fonction doit fournir ?. Les résultats
constitueront les paramètres variables de la fonction.
 Quelles sont les instructions qui permettent d’obtenir les résultats à partir des
données ? Les instructions constitueront le corps de la fonction.

IFMOTICA Page 3 sur 6


Fonctions & Procédures Algorithmique & Langage C

4) Appel d’une fonction :


a) Principe :
Une fois déclarée, une fonction peut être utilisée dans plusieurs parties du
programme, on parle ainsi de l’appel de fonction. Au moment de l’appel, la fonction
appelante transmet à la fonction appelée les paramètres effectifs (valeurs des
paramètres formels); ensuite le corps de la fonction appelée est exécutée, après, la
fonction appelante reprend l’exécution à la ligne qui suit la ligne d’appel et récupère
éventuellement un résultat.

Processus de l’appel d’une fonction


b) Syntaxe de l’appel :
L’appel d’une fonction constitue un paramètre dans une instruction :
 Affectation à une variable :
variable  nom_fonction (paramètres effectifs)
variable = nom_fonction (paramètres effectifs) ;
 Paramètre effectif d’une autre fonction :
nom_fonction2(nom_fonction1 (paramètres effectifs)) ;
 Un facteur dans une expression :
nom_fonction (paramètres effectifs)*var2 ;
Remarques :
Lors de l’appel d’une fonction on doit respecter les contraintes suivantes :
 Le nombre de paramètres effectifs doit être le même que celui des paramètres
formels.
 L’ordre des paramètres effectifs doit être le même que celui des paramètres
formels.
 Les paramètres effectifs et les paramètres formels doivent être demême type.
c) Passage des paramètres en C
Lors de l’appel d’une fonction, la fonction appelante transmet les paramètres à
la fonction appelée, deux modes de transmission sont possibles :

IFMOTICA Page 4 sur 6


Fonctions & Procédures Algorithmique & Langage C

 Passage par valeur : la fonction appelante ne transmet qu’une copie du


paramètre effectif, par suite la fonction n’a aucun effet sur le paramètre en
question. Ce sont les paramètres fixes qui sont concernés par ce mode de
transmission. y = fonction(x) ; /* Passage par valeur */
 Passage par adresse: la fonction appelante transmet l’emplacementmémoire
du paramètre effectif, par suite la fonction peut avoir un effet sur le paramètre
en question. Ce sont les paramètres variables qui sont concernés par ce mode
de transmission. z = fonction (&x) ; /* Passage par adresse */
Exemple de l’appel de la fonction maximum:

En algorithmique En langage C
Algorithme maximum void main() {
Variables : x, y, max : entier int x, y, max ;
Debut printf(" Entrer x et y : ") ;
Ecrire(" Entrer x et y : ") scanf(" %d%d", &x , & y) ;
Lire (x , y ) /* appel de la fonction max */
Maxmaximum( x , y ) max=maximum ( x , y ) ;
Ecrire(" %d", max) printf (" %d", max) ;
Fin }

III. Les procédures :


1) Prototype d’une procédure:
Une procédure est une fonction qui n’a pas de valeur de retour. En générale,
L’utilisation des procédures se limite à l’affichage des résultats.
Syntaxe :

En Algorithmique En Langage C

Procedure nom_Procedure ( paramètres) void nom_Procedure ( paramètres)

2) Corps d’une procédure:


En Algorithmique En Langage C
Procedure nom_ Procedure ( paramètres ) void nom_ Procedure (paramètres) {
Déclarations des variables locales Déclarations des variables locales
Instructions Instructions
FinProcedure }

3) Appel d’une procédure:


L’appel des procedures suit le même principe que les fonctions. La seule différence
est que la procedure ne retourne rien à la fonction ( ou procédure) appelante.
la syntaxe de d’une procédure est comme suite :
nom_ procedures (paramètres effectifs)

IFMOTICA Page 5 sur 6


Fonctions & Procédures Algorithmique & Langage C

4) Exemples

Exemple1 : Affichage des nombres entre deux entiers a et b

En algorithmique En langage C
Procedure affichage ( entier a , entier b) void affichage ( int a , int b) {
Variables : i : entier int i;
Pour i allant de a à b Faire for ( i=a ; i<= b ; i++ )
Ecrire ( i ) printf(“%d\n”,i);
FinPour }
FinFonction

Exemple2 : Appel de la procedure affichage

En algorithmique En langage C
Algorithme nombre_a_b void main() {
Variables : x, y: entier int x, y;
Debut printf(" Entrer la valeur de x : ") ;
Ecrire(" Entrer la valeur de x : ") scanf(" %d", &x) ;
Lire (x) printf(" Entrer la valeur de y : ")
Ecrire(" Entrer la valeur de y : ") scanf(" %d", &y) ;
Lire (y) /* appel de la procedure affichage */
affichage ( x , y ) affichage ( x , y ) ;
Fin }

IFMOTICA Page 6 sur 6

Vous aimerez peut-être aussi