Vous êtes sur la page 1sur 11

Chapitre 5

Les procédures et
les fonctions
5.1 Introduction

Motivation
„ Il arrive fréquemment d'avoir à utiliser des calculs ou des
traitements plusieurs fois dans un algorithme à des endroits
différents. A chaque fois on est alors obligé de répéter la
séquence d‘actions qui se rapportent à ces calculs ou
traitements.
„ Dans le cas d’un problème simple, il est aisé d’écrire une
suite d’actions constituant un seul algorithme pour le
résoudre totalement. Par contre si le problème est
complexe, son algorithme serait très long, difficile à
concevoir, à comprendre, et à corriger.

© Nabil Guellati 2007/2008


5.1 Introduction

Solution
„ Pour remédier à ce type de problèmes, on doit adopter un
mode de programmation appelé programmation modulaire,
en décomposant le problème en tâches indépendantes.
„ Le fait de décomposer le problème complexe en plusieurs
tâches permet de faciliter la conception de l’algorithme, car
dans ce cas on fait la conception de plusieurs modules
(petits algorithmes, ou sous-programmes) au lieu d’un seul
algorithme complexe.
„ Aussi, si un programme vient à être développé par une
équipe de programmeurs, chacun peut travailler sur la partie
qui lui a été assignée. Le programme final sera la réunion de
chaque module dont le développement aura été indépendant.
© Nabil Guellati 2007/2008
5.1 Introduction

Exemple illustratif
„ Considérons le problème des délibérations pour les étudiants
de première année LMD sciences de la matière. Ce problème
étant complexe, il est difficile de le résoudre par un seul
algorithme. Il est plus approprié de luis trouver une solution
en le décomposant en taches et en associant à chacune
d’elle un module.
„ Ces taches peuvent être :
… Saisie des notes par module.
… Calcul de la moyenne générale.
… Affichage de la liste des étudiant admis.
… Affichage de la liste de rattrapage par module,…
© Nabil Guellati 2007/2008
5.2 Nature d’un module

„ Un module peut être une procédure ou une fonction.

„ Définitions :
… Une procédure est un module regroupant une suite d’actions.
… Une fonction est un module qui réalise un calcul et produit un résultat
unique.

„ Comme un algorithme, un module est composé d’une en-


tête, d’une partie déclaration et d’une partie regroupant les
actions.

© Nabil Guellati 2007/2008


5.3 Format d’un module

„ L’en-tête:
… Elle commence par le mot clé Procédure ou Fonction, suivi du nom
du module puis par une liste de paramètres comme suit:
Procédure <nom procédure> (liste de paramètres)
Fonction <nom fonction> (liste de paramètres) : <type-fonction>
… Un paramètre est une variable qui permet à deux modules de
communiquer entre eux.
… <type-fonction> est le type du résultat unique produit par la fonction

„ Exemples:
Procédure affichage (Msg : Chaîne)
Fonction somme (A, B : entier) : entier

© Nabil Guellati 2007/2008


5.3 Format d’un module
„ La partie déclaration définit les objets locaux (variables,
constantes, …) utilisés dans le module. Il est à noter que
cette partie peux être vide.
„ Exemples : voici la description complète des deux modules
affichage et somme.
„ Procédure affichage (Msg : Chaîne) Fonction somme (A, B : entier) : entier
Début Variable S : entier
écrire (Msg) Début
Fin SÅA+B
somme Å S
Fin

„ Remarque: puisque une fonction renvoit un résultat, elle doit


se terminer par l’action: <nom-de-fonction> Å <expression>
© Nabil Guellati 2007/2008
5.4 Format d’un algorithme

„ Un algorithme qui utilise des modules possède la forme


suivante:

Algorithme <nom-de-l’algorithme>
<Déclarations globales>
<Description complète des différents modules>
Début
<Actions> Procédure principale ou
… programme principal
Fin

© Nabil Guellati 2007/2008


5.4 Format d’un algorithme

„ Remarque 1: la partie regroupant les actions de l’algorithme


est appelée procédure principale ou programme principal.

„ Remarque 2 : les objets utilisés dans le programme principal


doivent être déclarés dans la partie déclarations globales.
Ces objets peuvent être utilisés dans tous les modules de
l’algorithme.

„ Remarque 3 : les objets déclarés dans un module ne


peuvent être utilisés que dans ce module.

© Nabil Guellati 2007/2008


5.5 Appel d’un module
„ Pour exécuter un module nous devons faire appel à ce
module à partir du programme principal.
„ La syntaxe de l’appel d’une procédure est comme suit:
<Nom de procédure> (liste de paramètres)
„ Exemple :
Variable M: chaîne
début
M Å ‘Hello world’
affichage (M)
„ Pour appeler une fonction il faut l’utiliser dans une expression.
„ Exemple :
V Å 1 + Somme (50, 24)

© Nabil Guellati 2007/2008


5.5 Appel d’un module
„ Lorsque un module est appelé, l’ordinateur va suspendre
l’exécution du programme principal, copier le contenu des
paramètres de l’appel vers les paramètres du module, puis
exécuter les actions du module.
„ Lorsque l’exécution des actions du module est terminée,
l’ordinateur reprend l’exécution du programme principal.
„ Exemple:
{Programme principale}
… Procédure affichage (Msg : Chaîne)
M Å ‘Hello world’ Début
écrire (Msg)
affichage (M) Fin
V Å 50

© Nabil Guellati 2007/2008