Vous êtes sur la page 1sur 6

Procédures et Fonctions

1. Introduction :
La programmation modulaire permet d’éviter les instructions répétitives, elle permet de
décomposer les programmes en plusieurs parties et de regrouper dans le programme principal
pour ne pas recopier une même suite d’instructions.

2. Procédure :
Est un sous programme défini dans la partie déclaratif. Une procédure est constituée d’un entête
et d’un corps.

2.1. Syntaxe :

Procedure nom de la procédure (listes de paramètres)


Le corps de la procédure contient Les instructions simples ou composées
Fin ;

Exemple :

Algorithme exemple ;
Var i : entier ;
Procedure Climat ;
Debut
Ecrire(‘il ne fait pas beau’) ;
Fin ;
Debut
Pour i 1 à 5 faire
Climat ;
Fin.

3. Variables locales et globales :

Les variables globales sont déclarées dans le programme principal et la procédure.


Les variables locales  sont déclarées à l’intérieur de la procédure.

4. Paramètres réels et formels :

Paramètres formels sont des variables déclarées dans l’entête de la fonction ou la procédure.
Paramètres réels (effectifs) sont des variables utilisés dans la procédure (programme principal)
lors de l’appel

5. Passage des paramètres :

5.1. Passage des paramètres  par valeur : Le passage par valeur consiste à recopier la valeur à
transférer au sein de la procédure elle-même, cette dernière travaille alors avec cette copie sans
toucher à la valeur d’origine.

1
Procédures et Fonctions
Exemple
Algorithme valeur ;
Var x,y :réel ;
Procedure echange (a,b :réel) ;
Var c :reel ;
Debut
A x;
B y;
C a;
Fin;
Debut
Ecrire('donnez x et y: ') ;
Lire(x,y) ;
echange (x,y) ;
ecrire(x,y) ;
Fin.

5.2. Passage des paramètres  par adresse: Il faut rappeler qu’une variable possède un nom
(identificateur) et une adresse en mémoire.
Lors de l’appel de la procédure il y’a non plus une recopie des valeurs mais la transmission des
adresses des variables.

Exemple

Algorithme valeur ;
Var x,y :réel ;
Procedure echange (var a,b :réel) ;
Var c: reel;
Debut
A x;
B y;
C a;
Fin;
Debut
Ecrire()donnez x et y) ;
Lire(x,y) ;
echange (x,y) ;
ecrire(x,y) ;
Fin.

6. Fonction :
2
Procédures et Fonctions

6.1. Définition :

Une fonction est une procédure particulière, qui ne génère qu’un et un seul résultat de type
simple : Entier, réel, booléen, caractère.

Remarque : Il existe dans tous les langages de programmation des fonctions standard prédéfinies.

6.2. Syntaxe :
fonction NomDeFonction (Liste Paramètres ) :Type Résultat;
Déclarations des variables locales autres que les paramètres
Début
Partie instructions
Fin
finFonction;

Remarque : La liste des paramètres (en général passés par valeur) est de la même forme que pour
une procédure.

Exemple:
Fonction Moyenne (Note1 : Réel, Note2 : Réel) : Réel ;
Variable Som : Réel
Début
Som Note1 + Note2
Moyenne Som/ 2

Fin

6.3. Appel d’une fonction :


Variable NomFonction (NomEntrée1, NomEntrée2…)
exemple: MG  Moyenne(10.75, 14.00);

T.D N°05 (Procédures et Fonctions)

3
Procédures et Fonctions
Module : Algorithme Responsable : Mr BENSAHA
Exercice N°01: Ecrire un algorithme qui calcule les deux formules suivantes et ceci en
utilisant la notion de procédure: C = A * B ; D = (A-1) * (B+1) ;

Exercice N°02: Ecrire un algorithme qui calcule le factoriel de N à l’aide de :


a) procédure ;
b) fonction.

Exercice N°03: Ecrire un algorithme qui calcule l’expression suivante à l’aide de :


a) procédure ;
b) fonction.
E = 3 ! + 5 ! + 7 ! + 9 ! + 11 ! + 13 ! + 15 !

Exercice N°04: Donner le résultat final de l’algorithme suivant:


Algorithme Calcul 1;
Var S1 : Réel ; S2,S3 : Entier ;
Procédure R (X: entier);
Début
XX - 3
Fin ;
Procédure P (Y,Z: entier);
Var i : entier ;
Début
Pour i 1 à 3 faire
ZY – (2 * i) ;
R(Z)
FinPour ;
Fin ;
Fonction Q (N: réel) : entier;
Var U : entier ;
Début
UMod (N/2) ;
Q U-5
Fin ;
(************* Corps de l’Algorithme *******************)
DEBUT
S14 ; S32 ; S2Q(S1) ;
P(S2, S3) ;
R(S3) ;
Ecrire(S2, S3);
FIN.

4
Procédures et Fonctions
Exercice N°05: Ecrire un algorithme qui calcule la fonction suivante et cela en utilisant deux
(02) fonctions,  la 1ère calcule la fraction et la 2ème calcule la somme:
b

F= ∑ ( i + k) / ( cos ( i-k ))
i=a

Exercice N°06: Ecrire un algorithme qui calcule la moyenne générale d’un étudiant en
informatique en utilisant:
a) Procédure lecture ;
b) Procédure Affichage ;
c) Fonction Addition ;
d) Fonction Multiplier ;
e) Fonction Division ;
f) Procédure Calcul.
Utiliser quatre (4) modules.

Exercice N°07: deux nombres naturels P et Q sont dits « Amis » si l’un est la somme des diviseurs
de l’autre et vice versa. C-a-d :
P = Somme des diviseurs de Q ; Q = Somme des diviseurs de P ;
Ecrire un algorithme qui vérifie si deux (02) nombres P et Q sont dits « Amis » ou non.
N.B: Utilisez trois (03) fonctions :
 la 1ère détermine les diviseurs de P et de Q ;
 la 2ème calcule la somme des diviseurs de P et de Q ;
 la 3ème teste si P et Q sont amis ou non.
Par exemple 220 et 284 sont amis car :
 220 est divisible par 1,2,4,5,10,11,20,22,44,55 et 110 :
Alors que 1+2+4+5+10+11+20+22+44+55+110 =284 ;
 284 est divisible par 1,2,4,71,142 :
Alors que 1+2+4+71+142 =220 ;

5
Procédures et Fonctions

Exercice N°8 :
Le P.G.C.D (Plus Grand Commun Diviseur) de deux nombres M et N, peut être calculé à
l’aide de l’algorithme d’Euclide :
1. Diviser M par N, R est le reste ;
2. Si R vaut 0, alors N est le PGCD (fin)
Sinon M  N ; N R aller au point 1.
Sur la base de cette méthode, écrire un algorithme utilisant une fonction permettant de
déterminer le PGCD de deux nombres N et M.

Exercice N°9 :
En utilisant les procédures ou fonctions ; Ecrire un Algorithme qui évalue l’expression
suivante :
F= (A * B)P !
Exercice N°10 :
Ecrire un algorithme qui calcule l’expression suivante et cela en utilisant la boucle
Tant que ou Répéter :
N
Z = ∑ k * ( Xi /i ! )
i=1

Vous aimerez peut-être aussi