2fonctions Et Procedures
2fonctions Et Procedures
2fonctions Et Procedures
Un algorithme écrit de cette façon devient difficile à comprendre et à gérer dès qu'il
dépasse deux pages . La solution consiste alors à découper l'algorithme en plusieurs
parties plus petites. Ces parties sont appelées des sous-algorithmes.
Il existe deux sortes de sous-algorithmes (programmes) qui sont: les procédures et les
fonctions.
2. Les procédures
Une procédure est un sous-programme identifié par un nom
il peut être appelé dans un autre programme ou dans des différents lieux du même
programme ou même dans un autre sous-programme.
il permet d'effectuer des actions par un simple appel comme une instruction en utilisant
des données différentes.
Début
Instruction(s) ;
FIN
Ces paramètres sont appelés paramètres formels. Leur valeur n'est pas connue lors de
la création de la procédure.
Remarque :
Les paramètres utilisées lors de l'appel d'une procédure sont appelés paramètres effectifs.
Ces paramètres donneront leurs valeurs aux paramètres formels.
Pour exécuter un algorithme qui contient des procédures et des fonctions, il faut commencer
l'exécution à partir de la partie principale (algorithme principal).
Il existe deux principaux types de passages de paramètres qui permettent des usages
différents.
Passage de paramètres
Dans ce type de passage, le paramètre formel reçoit uniquement une copie de la valeur du
paramètre effectif.
La valeur du paramètre effectif ne sera jamais modifiée.
Exemple : Soit l'algorithme suivant :
AlGORITHME Passage_par_valeur ;
Variables N : entier
Procédure P1(A : entier) //*Déclaration de la procédure P1
Début
A A * 2 ;
écrire(A) ;
FinProc
Questions : faire le tracé d’exécution de cet algorithme ?qu’est-ce que vous remarquez. ?
Explication : Cet algorithme définit une procédure P1 pour laquelle on utilise le passage de paramètres
par valeur.
Dans ce cas 10. Après l'appel de la procédure, l'algorithme affiche la valeur de la variable N.
Dans ce cas 5. La procédure ne modifie pas le paramètre qui est passé par valeur.
Question : faire le tracé d’exécution de cet algorithme ?qu’es que vous remarquez ?
Justification :
EXEMPLE :
S x + y ;
Fin
Somme (2.5 ,7) faux (le type des paramètres effectifs doit être entier).
Somme (2, 5, 9) faux (le nombre des paramètres effectifs doit être 2 et non pas 3).
Somme (2, 5) juste (le type et le nombre des paramètres sont adéquats).
3. LES FONCTIONS
Les Fonctions sont des sous algorithmes admettant des paramètres et retournant un seul résultat
(une seule valeur) de type simple qui peut apparaître dans une expression, dans une comparaison, à la
droite d'une affectation, etc.
3.1 Les types de fonction :
Une fonction intégrée dans une bibliothèque pouvant être appelé depuis n’importe quel
programme principal pour calculer une valeur.
Le type de cette fonction peut être prédéfinis qui est entier, réel, booléenne, caractère,
chaine de caractère.
Exemple : Définir une fonction qui renvoie le plus grand de deux nombres différents.
Algorithme Appel_fonction_Max
Variables A, B, M : réel
// * Déclaration de la fonction Max
Fonction Max(X: réel, Y: réel) : réel
DEBUT
Si X > Y Alors
max(x,y) X
Sinon
max(x,y) Y
FinSi
FIN
//*Algorithme principal
DEBUT
Ecrire ("Donnez la valeur de A :")
lire(A)
Ecrire ("Donnez la valeur de B :")
lire(B)
FIN
Une variable déclarée à l'intérieur d'une procédure (ou une fonction) est dite locale.
Elle n'est accessible qu'à la procédure au sein de laquelle elle définie, les autres
procédures n'y ont pas accès.
La durée de vie d'une variable locale est limitée à la durée d'exécution de sa procédure
ou sa fonction.
Il est possible de déclarer dans la procédure un identificateur (variable) utilisé dans un
niveau englobant. Dans ce cas, la localité masque la globalité.
Les procédures ou fonctions permettant de ne pas répéter plusieurs fois une même séquence
d'instructions au sein du programme (algorithme).
Structurent un algorithme en modules et augmentent sa lisibilité et sa compréhensibilité.
facilitent la mise au point du programme ( càd que la compilation et la détection des erreurs
sera plus rapide en utilisant les procédures et/ou les fonctions).
peuvent être même réalisées en dehors du contexte du programme, autrement dit, elles peuvent
être rangées dans une bibliothèque d'outils et utilisées par n'importe quel autre programmes.