Vous êtes sur la page 1sur 15

1

LSI 1

• Définition
• Intérêt
• Paramètres formels/paramètres effectifs
• Variables globales/variables locales
• Les fonctions
• Les procédures
2

LSI 1

Définition
• Si on remarque qu’il y a un même traitement qui se répète plusieurs fois dans
des endroits différents de l’algorithme, on peut faire recours à la notion de
sous-algorithmes
• Un sous-algorithme est une structure algorithmique
▫ qui permet de considérer un groupe d’instructions (correspondant à un traitement/sous-
traitement) comme une entité relativement indépendante, qui peut être appelée à partir
du corps de l’algorithme principal ou à partir d’un autre sous-algorithme

▫ et qui peut être appelé plusieurs fois par des sous-algorithmes différents ou peut s’appeler
lui même
3

LSI 1

Intérêt
• Eviter la duplication des instructions effectuant un traitement donné lorsque
ce traitement est nécessaire en plusieurs endroits d’un même algorithme
▫ il s’agit de faire recours aux actions nommées
 Procédures ou Fonctions

• Améliorer la clarté des algorithmes


▫ il s’agit de décomposer chaque traitement en petites unités (sous-traitements) qui
pourraient être modifiées indépendamment (chaque sous-algorithme doit traiter un sous-
problème donné)

• Réutiliser les sous-algorithmes déjà testés dans d’autres algorithmes


4

LSI 1

Définition
• E est dit sous-algorithme appelant
• H, I et J sont dits des sous-algorithmes appelés par E
• Un sous-algorithme peut être à la fois appelé et appelant
▫ H est appelé par rapport à E, et il est appelant par rapport à K et L

• Lors de l’appel d’un sous-algorithme appelé


▫ Le sous-algorithme appelant s’arrête pour donner le contrôle au sous-algorithme appelé
▫ Il continuera son déroulement (à partir de l’instruction qui suit immédiatement l’appel) lorsque le
travail du second (le sous-programme appelé) sera terminé
5

LSI 1

Paramètres formels / Paramètres effectifs


• Paramètres formels
▫ Ce sont des objets utilisés pour la communication entre le sous-algorithme appelant et le
sous-algorithme appelé
▫ Ces objets sont créés au moment de l’appel d’un sous-algorithme appelé et disparaissent
lorsque le contrôle retourne au sous-algorithme appelant
▫ Ils sont aussi appelés paramètres fictifs, car ils ne sont pas des variables réelles, mais
sont des variables de travail uniquement
 Lors de la définition du sous-algorithme, ils n’ont pas une valeur réelle

• Paramètres effectifs ou réels


▫ Ce sont les paramètres que doit transférer, lors d’un appel, un sous-algorithme appelant à
un sous-algorithme appelé
▫ Ces paramètres peuvent différer de valeurs d’un appel à un autre
6

LSI 1

Paramètres formels / Paramètres effectifs


• Les paramètres effectifs ou réels et les paramètres formels d’un sous-
algorithme doivent être
▫ de mêmes types respectivement
▫ listés dans le même ordre
▫ et de même nombre

• Principe
▫ Au moment de l’exécution du sous-programme appelé, le sous-algorithme appelant copie
le contenu des paramètres effectifs dans les paramètres formels correspondants
▫ A la fin de l’exécution du sous-algorithme appelé, le résultat est retourné au sous-
algorithme appelant (par le sous programme appelé) et les paramètres formels
disparaissent de la mémoire (par le sous programme appelant)
7

LSI 1

Variables globales / variables locales


• La portée d’une variable est l’ensemble des sous-algorithmes où cette variable est connue
 Variables globales

 Variables locales

• Une variable définie au niveau de l’algorithme principal est appelée variable globale
 Sa portée est totale
 Tout sous-algorithme peut utiliser cette variable
• Une variable définie au sein d’un sous-algorithme est appelée variable locale
 Sa portée est uniquement le sous-programme qui la déclare
 Lorsque le nom d’une variable locale est identique à une variable globale, la variable globale est
localement masquée
 Dans ce sous-programme la variable globale devient inaccessible
8

LSI 1

Paramètres formels / Paramètres effectifs


paramètre formel

SOUS-ALGORITHME Code_Ascii ( CC : Car ) ALGORITHME Caractère


VAR VAR
CA : entier Variable locale CC1, CC2 : Car Variables globales
DEBUT DEBUT
CA  ORD (CC) Lire (CC1, CC2)
Ecrire (le code ASCII de ,CC, est, CA) Code_Ascii ( CC1 )
FIN Code_Ascii Code_Ascii ( CC2 )
FIN

Paramètres effectifs ou réels


9

LSI 1

Les fonctions
• Une fonction est un sous-algorithme qui fournit un seul résultat affectable à une
variable
• Une fonction se rapproche de la notion des fonctions mathématiques

• Définition d’une fonction


FONCTION Nom_fct ( {Liste de paramètres formels} ) : type_de_résultat
VAR
{déclaration des variables locales}
DEBUT
{ensemble d’instructions}
retourner résultat
FIN Nom_fct
10

LSI 1

Les fonctions
• Appel d’une fonction
▫ L’appel à une fonction n’est pas une instruction en soi

▫ Il se fait en faisant référence à son nom tout en indiquant les paramètres effectifs à utiliser
selon l’une des trois façons d’appel suivantes :

 Dans une affectation


VBLE  Nom_fct ( {paramètres réels} )
 Dans un affichage
Ecrire (le resultat est : , Nom_fct ( {paramètres réels} ))
 Dans une expression
Expression Opérateur Nom_fct ( {paramètres réels} )
11

LSI 1

Les fonctions
• Exemple
▫ calculer la combinaison P parmi N donnée par la formule

FONCTION Fact ( X : entier ) : entier ALGORITHME Combinaison


VAR VAR
i , F : entier N,P,C: entier
DEBUT DEBUT
F1 Lire (N,P)
POUR i de 2 à X FAIRE
FF*i C  Fact(N)/(Fact(P)*Fact (N-P))
FIN FAIRE
Retourner F Ecrire (le résultat est : , C )
FIN Fact FIN
12

LSI 1

Les procédures
• Une procédure est un sous-algorithme qui fournit 0, 1 ou plusieurs résultats

• Définition d’une procédure

PROCEDURE Nom_proc ( ENTREE {Liste de paramètres formels en entrée} ;


SORTIE {Liste de paramètres formels en sortie} ;
E/S {Liste de paramètres formels en entrée et en sortie} )
VAR
{déclaration des variables locales}
DEBUT
{ensemble d’instructions}
FIN Nom_proc
13

LSI 1

Les procédures

▫ Le mot clé ENTREE permet de déclarer la liste des paramètres formels qui seront utilisés par la
procédure et dont les valeurs sont fournies par l’algorithme appelant
 La procédure peut modifier ces paramètres, mais lorsqu’elle retourne à l’algorithme appelant, elle retourne avec la valeur
initiale.
▫ Le mot clé SORTIE permet de déclarer la liste des paramètres formels qui seront utilisés par la procédure
pour y retourner ses résultats
 Ceci impose à la procédure de négliger les valeurs des paramètres effectifs correspondants
▫ Le mot clé E/S est utilisé pour l’ensemble des paramètres formels qui seront utilisés en Entrée et en
Sortie à la fois
14

LSI 1

Les procédures
• Appel d’une procédure

▫ L’appel à une procédure est une instruction en soi

▫ Il se fait en faisant référence à son nom tout en indiquant les paramètres effectifs à utiliser
15

LSI 1

Les procédures
• Exemple : Donnez la trace de l’algorithme X

ALGORITHME X PROCEDURE Calculer ( ENTREE A : entier ;


VAR SORTIE B : entier ;
N, P, Q : entier E/S C : entier )
DEBUT DEBUT
N2 A  A-1
P2 B A+5
Q2 CC*3
Calculer (N, P, Q) Ecrire (A, B, C)
Ecrire (N, P, Q)
FIN FIN Calculer

Vous aimerez peut-être aussi