Vous êtes sur la page 1sur 29

Chapitre 6:

Les Procédures et
les Fonctions
Objectif :

 Appliquer la démarche de programmation


modulaire pour construire des algorithmes
structurés en procédures et fonctions.
6.1- INTRODUCTION :

 Les schémas de contrôle itératifs permettent de


répéter une suite d’actions ou d’instructions
plusieurs fois consécutives et évitent ainsi d’avoir
à écrire la portion d’algorithme ou de programme
correspondant à cette suite d’actions autant de
fois qu’il s’agit de les effectuer.
8.1- INTRODUCTION :

 Parfois, nous avons à faire à un algorithme qui


nécessite souvent de répéter, mais non d’une manière
consécutive, plusieurs actions.
 Pour y parvenir, on utilise la notion de sous
programmes.
 Un sous programme est un programme (a la forme
d’un programme), mais rédigé et formulé de façon à
pouvoir être commandé (appelé) par d’autres
programmes (algorithmes) lors de son exécution.
6.2- DEFINITION:

 Un sous programme est une partie ou portion


d’algorithme :
 écrite à part,
 désignée par un nom (identifiant)
 et que l’on fait exécuter à volonté en citant
simplement son nom.
6.2- SYNTAXE :

Partie en-tête Sous Programme NomSP (Liste des paramètres)

{Partie déclaration d’objets locaux}


Début
{Corps du sous programme}
Fin
6.3- INTERÊT DES SOUS PROGRAMMES
(APPORTS) :

 La plupart des langages de programmation mettent à la


disposition des programmeurs une syntaxe leurs
permettant de créer des sous programmes pour qu’ils
puissent écrire leurs programmes de façon :
1/ à ne pas avoir à recopier les mêmes lignes d’instructions
(ou séquences d’actions) dans les différentes parties non
successives de l’algorithme principal.
2/ à séparer diverses parties d’un algorithme afin de mieux le
structurer pour le rendre plus facile à lire et à comprendre
(lisibilité).
6.3- INTERÊT DES SOUS PROGRAMMES
(APPORTS) :

 Exemple : Soit le schéma de choix alternatif suivant :


Si Cond Alors
Trait1
Sinon
Trait2
FinSi
6.3- INTERÊT DES SOUS PROGRAMMES
(APPORTS) :

 Supposons que selon l’évaluation de la condition Cond,


nous ayons à effectuer soit le traitement Trait1, soit le
traitement Trait2 et que chacun de ces traitements
comporte plusieurs lignes d’instructions qui peuvent
parfois s’étaler sur plusieurs pages.
 Dans ce cas, l’algorithme peut devenir très pénible à lire.
 D’où l’appel de deux sous programmes selon le cas, Trait1
et Trait2.
6.3- INTERÊT DES SOUS PROGRAMMES
(APPORTS) :

 Exemple : résolution de l’équation ax2 + bx + c = 0


Si a = 0 Alors
Résolution_equ_1degre
Sinon
Résolution_equ_2degre
FinSi
6.3- INTERÊT DES SOUS PROGRAMMES
(APPORTS) :

3/ Mais surtout à réutiliser ces sous programmes ou parties de


programmes dans plusieurs autres programmes différents.
Ceci permettra aussi de constituer ce que l’on appelle des
bibliothèques de sous programmes où chaque bibliothèque va
regrouper un certain nombre de sous programmes liés entre
eux par un domaine spécifique ou par un thème ou une
fonction spécifique.
 Exemple : bibliothèque mathématique.
6.4- LES PARAMETRES DES SOUS
PROGRAMMES :
6.4.1- Qu’est ce qu’un paramètre ?
 Les paramètres permettent aux sous programmes et leur
programme appelant de communiquer entre eux aussi bien pour
passer des valeurs en données que pour recevoir des valeurs en
résultats.
 Un paramètre permet donc à deux programmes ou sous
programmes aussi bien de se transmettre des données en entrée
que de recevoir des résultats.
 Il existe deux types de paramètres :
 les paramètres formels et
 les paramètres effectifs.
6.4- LES PARAMETRES DES SOUS
PROGRAMMES :
6.4.2- Les paramètres formels :

 Les paramètres définis, comme nous l’avons vu, dans l’en-tête


d’un sous programme sont appelés paramètres formels.

 Ce sont des paramètres fictifs qui nous permettent de décrire ce


que doit faire un sous programme afin d’atteindre le résultat
espéré.
6.4- LES PARAMETRES DES SOUS
PROGRAMMES :
6.4.3- Les paramètres effectifs :

 Les paramètres définis au moment de l’évaluation d’un sous


programme sont appelés paramètres effectifs.

 Ce sont les paramètres réels, avec lesquels on appel l’exécution


du sous programme.
6.4- LES PARAMETRES DES SOUS PROGRAMMES :

 6.4.4- Modes de passage de paramètres :

 La substitution des paramètres effectifs aux


paramètres formels s’appelle passage de
paramètres.
 Elle correspond à un transfert d’informations
entre le programme ou le module appelant et la
module appelé.
6.4- LES PARAMETRES DES SOUS
PROGRAMMES :
6.4.5.- Les modes de transmission de paramètres :

 Il existe trois modes de transmission de paramètres :


 Le mode Donnée (transmission par valeur)
 Le mode Résultat (transmission par adresse)
 Le mode Donnée-Résultat
6.4.5.1- Mode Donnée :

 Dans ce mode de passage, les objets qui sont transmis ne seront pas
modifiés après l’exécution du sous programme.

 En effet, un paramètre donnée est une information nécessaire pour


réaliser une tâche. Il ne subit aucun changement au cours de l’exécution
du sous programme.
6.4.5.2- Mode Résultat :

 Dans ce mode de transmission, les paramètres concernés retournent


les résultats de l’exécution du sous programme.
 Lors de l’appel, dans la plupart du temps, ces paramètres résultats
n’ont pas de valeurs et leur valeur leur est affectée lors de
l’exécution du sous programme.
 En effet, un paramètre résultat est un aboutissement de l’action,
sa valeur n’est pas significative avant le début de l’exécution du
sous programme.
6.4.5.3- Mode Donnée Résultat :

 Dans ce mode de transmission, les paramètres concernés constituent


les données de la partie appelée et aussi les résultats retournés à
la partie appelante.
 En effet, un paramètre donnée-résultat est à la fois une donnée et
un résultat, c’est à dire une information dont la valeur sera modifiée
par le sous programme et retournée au programme appelant.
une tâche. Il ne subit aucun changement au cours de l’exécution de la
procédure.

· Un paramètre résultat est un aboutissement de l’action, sa valeur


6.4.5.4- Modes de transmission :
n’est pas significative avant le début de l’exécution de la procédure.

Résumé
· Un paramètre donnée-résultat est à la fois une donnée et un
résultat, c’est à dire une information dont la valeur sera modifiée par
la procédure.
 Le tableau suivant indique pour chaque type de paramètre le sens de
Le tableau
transfert suivant de
et le mode indique pourutilisé
passage chaque: type de paramètre le sens de
transfert et le mode de passage utilisé :

Type de paramètre Sens de transfert Mode de passage


Donnée Programme Þ Procédure Par valeur
Résultat Programme Ü Procédure Par variable
Donnée-Résultat Programme Û Procédure (par adresse)

En algorithmique, le mot Var inséré devant un paramètre formel signifie


que ce paramètre est passé par variable (paramètre de type résultat ou
 En algorithmique,
donnée-résultat).le mot Var inséré devant un paramètre formel signifie que
ce paramètre est passé par variable (paramètre de type résultat ou donnée-
résultat).
Exemple 1

Ecrire une procédure « puissance » qui calcule c = ab = a ´ a ´ …´a (b


fois) ; a et b étant des entiers positifs.
Solution
6.5- LES FONCTIONS ET LES PROCEDURES :

6.5.1- Introduction :

 La plupart des langages de programmation classent les


sous programmes en procédures et en fonctions pour
distinguer la nature de leurs effets.
6.5.2- Les fonctions :

 Les sous programmes fonctions sont analogues aux


fonctions mathématiques : ils calculent des valeurs de
type numérique ou autre et peuvent figurer dans des
expressions.

 Définition : On appelle fonction une suite d’énoncés à


laquelle est associée une désignation typée et qui
retourne un résultat.
6.5.2- Les fonctions : Syntaxe

Syntaxe:

Fonction NomF (liste des paramètres formels données)  Type


{ Partie déclaration des objets locaux à la fonction }
Début
{ Corps de la fonction }
Fin
Exemple de fonction :
Fonction Max (X,Y : Entier)  Entier Algorithme Max3
Variable Variable
M : Entier R, A, B, C : Entier
Début Début
Si X >= Y Alors ECRIRE (’’ Introduire la valeur de A : ’’)
MX LIRE (A)
Sinon ECRIRE (’’ Introduire la valeur de B : ’’)
MY LIRE (B)
FinSi ECRIRE (’’ Introduire la valeur de C : ’’)
Max  M LIRE (C)
Fin R  Max (A, B)
ECRIRE (’’ Le maximum entre A , B et C est : ’’, Max(R,C))
Fin
6.5.3- Les procédures :

 Les sous programmes procédures décrivent plus


généralement des actions et leurs résultats ne sont pas
des valeurs directement affectées à des variables.

 Définition : On appelle procédure une suite d’énoncés à


laquelle est associée une désignation. Elle associe des
valeurs aux paramètres de sorties (résultats) à partir des
paramètres d’entrées (Données).
6.5.3- Les procédures : Syntaxe

 Syntaxe:

Procédure NomP (liste des paramètres formels données,


résultats et données Résultats)
{Partie déclaration des objets locaux à la procédure}
Début
{Corps de la procédure}
Fin
Exemple de Procédure :
Procédure Echanger ( Var X, Var Y : Entier) Algorithme Permuter
Variable
Variable
R : Entier A,B : Entier
Début Début
ECRIRE (’’ Introduire la valeur de A : ’’)
RX LIRE (A)
XY ECRIRE (’’ Introduire la valeur de B : ’’)
LIRE (B)
YR Echanger (A,B)
Fin ECRIRE (’’ La nouvelle valeur de A est : ’’, A)
ECRIRE (’’ La nouvelle valeur de B est : ’’, B)
Fin
Exercice d’application

 Ecrire un sous-algorithme Palindrome qui teste si une phrase


(représentée sous forme d’un tableau de caractères) est un
palindrome.
 Note : un palindrome est un groupe de lettres qui peut être lu
de gauche à droite ou de droite à gauche.
 Ecrire un sous-algorithme tousPalindromes qui, étant donné
une phrase, teste si cette derniere est composée uniquement
de mots palindromes ou pas. On considère qu'un mot est un
ensemble de caractères quelconques bordés par un espace.
Exercice d’application
 L’algorithme principal permettra de:
 Saisir une phrase (tableau de n caractères)
 Tester si tous les mots de cette phrase sont des palindromes
 Afficher Vrai si tous les mots de la phrase sont des palindromes et
Faux sinon.
 Exemples.
 tousPalindromes de "SOS ELLE A 1 RADAR !!!" est vrai car "SOS",
"ELLE", "A", "1", "RADAR" et "!!!" sont tous des mots palindromes.
 tousPalindromes de "ESOPE RESTE ICI ET SE REPOSE" est faux
car, bien que la phrase soit globalement un palindrome, les
mots qui la composent ne sont pas des palindromes.

Vous aimerez peut-être aussi