Vous êtes sur la page 1sur 24

Chapitre VIIII:

Les procédures Et Les fonctions


1. introduction :
Une procédure ou une fonction est une portion de programme
composée d’une plusieurs instructions et devant accomplir une certaine
tache. On distingue deux cas:

 Les procédures ou les fonctions prédéfinies des bibliothèque (telles que


writeln ou readln) ,livrées avec le compilateur, qui sont intégrées au
programme.

 Les procédures ou fonctions personnelles que le programmeur écrit lui-


même.

Les procédures et les fonctions peuvent être disposées dans un ordre


quelconque à condition qu’elles soient déclarées préalablement, sinon , il
faut respecter un ordre de définition: l’appelant succède de l’appelé.
Définition des procédures:

Une procédure est un sous-programme. Ecrire des procédures


permet de découper un programme en plusieurs morceaux.

Chaque procédure définit une nouvelle instruction, que l'on peut


appeler en tout endroit du programme. On peut ainsi réutiliser le code
d'un sous-programme.

Il existe deux types :


 Procédure sans paramètre.
 Procédure avec paramètre.
2. Procédure avec plusieurs paramètre :
2.1 Principe:

Il s'agit simplement de donner un nom a un groupe


d'instructions.

Ensuite, l'appel de ce nom à divers endroits du


programme provoque a chaque fois l‘exécution de ce groupe
d'instructions.
2.2 Définition de procédure:
Le nom de la procédure.
Les paramètres formels ( arguments) qui sont passées à la procédure
pour y être traités ( la séparation entre les paramètres de même type par
des virgules ‘’ ,’’ et de type défirent par de point virgule’’ ;’’).
Les variables utilisées par le procédure sont des variable locales.
D’autre procédures ou fonctions invoquées par la procédure.
Les instructions que doit exécuter la procédure.
Paramètre formel
2.3 La syntaxe est:
2.4 Exemple :
3. Procédure sans paramètre :
3.1 syntaxe :
3.4 Exemple :
4. Appels :
On peut très bien appeler une procédure
P1 depuis une procédure P2, mais il faut que
la procédure P1 aie été déclarée avant la
procédure P2.
4.1 Exemple :
4.2 Variables globales :
Les variables déclarées dans le VAR du programme
principal sont appelées variables globales. Elles existent
pendant toute la durée du programme et sont accessible de
partout.

Remarque :
Une variable locale a une procédure, portant le même
nom x qu'une variable globale, masque la variable globale
pendant l'exécution de Procédure.

4.3 Variables locales :


Les objets du programme qui ne sont utiles que dans la
procédure peuvent être définis dans les déclarations locales
de la procédure.
5. Le passage des paramètres:
Les paramètres effectifs d’une procédure ou d’une fonction sont
des expressions qui doivent correspondre en nombre et en type aux
paramètres formels dans la définition de la procédure ou de la fonction .

Il existe deux méthodes pour transmettre des paramètres


effectifs à une procédure ou une fonction.

 Si la procédure ou la fonction reçoit, la valeur d’une donnée. Alors on


parle de transmission par valeur.

 Si la procédure ou la fonction reçoit, non pas la valeur d’une donnée


comme paramètre. mais son adresse. Alors on parle de transmission par
adresse.
5.1 Passage par valeur.
Program Exemple ;
var G : Integer ;

Procedure Ajouter ( L : Integer ) ;


Begin
L := L + l ;
Writeln ( 'Résultat dans procédure : ' , L )
End ;
Begin
G := 27 ;
Ajouter ( G ) ;
Writeln ( 'Résultat dans programme : ' , G )
End.

Ce programme produit à l'exécution les résultats suivants :


Résultat dans procédure : 28
Résultat dans programme : 27
5.2 Passage par adresse (référence).
Program Exemple ;
Var G : Integer ;

Procedure Ajouter ( Var L : Integer ) ;


Begin
L := L + l ;
Writeln ( 'Résultat dans procédure : ' , L )
End;

Begin
G := 27;
Ajouter ( G ) ;
Writeln ( 'Résultat dans programme : ' , G )
End.

Ce programme produit à l'exécution les résultats suivants :


Résultat dans procédure : 28
Résultat dans programme : 28
EXEMPLE DE PROCEDURE SANS PARAMÈTRE :

Program Exemple1;
var i : integer ;
procedure metio ;
begin
writeln ('il fait beau');
end ;
Begin
for i := 1 to 5 do
metio ;

writeln (‘ très bien!');

Readln;
End.
Exemple 2:
Supposons que nous souhaitions réaliser une procédure calculant
la somme des valeurs d'un tableau.
Les arguments en seraient donc:
- le tableau,
- la somme de ses valeurs.

program Exemple_2;
const n_max = 10 ;
type ligne = array [1..n_max] of integer ;
var a, b : ligne ;
i : integer ;
sa, Sb : real ;
procedure somme (t : ligne; var som : integer ) ;
var i : integer
begin
som := 0;
for i := 1 to n_max do
som := som + t[i] ;
End;

begin
for i := 1 to n_max do
begin
a[i] := i ; b[i] := sqr(i) ;
end ;
somme ( a, sa ) ;
somme ( b, Sb ) ;
writeln (' somme des ', n_max, ' premiers entiers : ', sa ) ;
writeln (' somme des ', n_max, ' carres des premiers entiers : ', Sb)
end.
6. Définition des fonctions:

Une fonction est une procédure qui renvoie un résultat de manière à


ce qu’on puisse l’appeler dans une expression.

La fonction a la même forme que l'en-tête d'une procédure mais


elle est introduite par le mot-clé function, et se termine par la
mention du type de la fonction.

Il existe deux types :


 fonction sans paramètre.
 fonction avec paramètre.
6.1. Fonction sans paramètre :
syntaxe :
6.2. Appel :
6.3. Fonction avec paramètres :
syntaxe :
6.3. Procédure Vs Fonction :
7. RECURSIVITE
C'est ainsi que l'on appelle le fait qu'une routine puisse s'appeler
elle-même.

exemple:
function factorielle(n:integer):integer;

begin
if n<=1 then
factorielle:=1
else
factorielle:=n*factorielle(n-1)
end;

Vous aimerez peut-être aussi