You are on page 1of 5

Dclaration, accs aux objets

et modes de transmission

CHAP. 05
Leon N
2
Leon N3

Les Procdures

I) Activit
On dsire maintenant rsoudre le problme de l'application prcdente en utilisant un autre module
appel Remplir_TAB qui permet de remplir les trois tableaux T, V et L
Est-ce que le module Remplir_TAB peut tre dclar comme fonction ?
Rponse
Une fonction est un sous-programme qui retour .. par contre
le module Remplir_TAB, chaque appel, il va retourne
Conclusion
Tout sous-programme ne retournant pas une seule valeur chaque appel doit tre dclar comme

II) Les Procdures


1) Dfinition
. est un sous programme qui peut tre appel une ou plusieurs fois pour
tre excut partir de programme principale
Une fonction retourne une seule valeur. Une procdure peut retourne une ou plusieurs valeurs En
cela elle est diffrente de la fonction.

a) Analyse
Rsultat :[..]
Corps de procdure

Fin nom de la procdure

Exemple : Analyse de la procdure remplir-TAB


Rsultat :[..]

b) Algorithme
0) DEF Proc nom de la procdure (paramtres formels et leurs types)
1) {Corps de la procdure}
2) Fin nom de la procdure

Exemple : algorithme de la procdure remplir_TAB


.
.
.
.
.
.

c) traduction en pascal Pascal


Procedure Nom_Procedure (listes des paramtres formels et leurs types);
Var {listes des objets locaux}
Begin
.
.
End ;
Exemple : traduction en pascal de la procdure remplir_tab
.
.
.
.
.
.
.
.
.
.

d) Appel dune procdure


On appelle une procdure en utilisant son nom suivi de la liste des paramtres effectifs
Syntaxe : ..

2) Application :
Faire lanalyser et lalgorithme pour chacune des procdures suivantes :
1. Une procdure qui permet de saisir le nombre des lves d'une classe. On suppose que ce
nombre est compris entre 10 et 40.
2. Une procdure qui permet de saisir les notes des lves d'une classe dans un tableau sachant
qu'une note est comprise entre 0 et 20.
3. Une procdure qui permet d'afficher une chane de caractres.
4. une procdure qui permet d'afficher les valeurs d'un tableau contenant les moyennes des
lves.
5. Une procdure qui permet d'inverser les lments d'un tableau contenant les noms des
lves.

III) Passage de paramtres


Lors de l'appel d'un sous-programme, un change de donnes est tabli entre le programme
principal et les sous programmes. Cet change s'appel aussi passage des paramtres. On distingue
deux modes de passage de paramtres : le mode de passage par valeur et le mode de passage par
variable. Il s'agit de passage de paramtre par variable si le paramtre formel est prcd du mot
VAR et d'un passage de paramtre par valeur dans le cas contraire.

Exemple : Passage de paramtre par valeur et par variable


Program Passage_valeur_variable ;

Readln( x ) ;

Uses wincrt ;

Writeln(donner la deuxime valeur : ) ;

VAR x, y : integer ;

Readln( y ) ;

Procedure Essai (Paramtres formels) ;

writeln('avant appel de la procdure les

Begin

valeurs sont :') ;


i : = 3*i ;

Writeln( x ) ;

J := 4*j ;

Writeln( y ) ;

Writeln(Dans la procdure les valeurs

Essai( x , y) ;

sont :) ;

Writeln(Aprs appel de la procdure les

Writeln( i ) ;

valeurs sont :) ;

Writeln( j ) ;

Writeln( x ) ;

End ;

Writeln( y ) ;

BEGIN

end.

Writeln(donner la premire valeur : ) ;

P.P

P.P

P.P

Avant lappel
de la
Procdure

Avant lappel
de la
Procdure

Avant lappel
de la
Procdure

Procdure

Procdure

Procdure

P.P

P.P

P.P

A prs appel de
la
Procdure

A prs appel de
la
Procdure

A prs appel de
la
Procdure

ESSAI( I , J : INTEGER ) ;

ESSAI(var I,J: INTEGER ) ;

ESSAI(var I : integer ; J : INTEGER ) ;

L.Souassi

Anne : 2014/2015

1) Passage de Paramtre par valeur :


Le passage de paramtre par valeur permet au programme principal de transmettre une
valeur la procdure (ou fonction) appele.
Toute modification du paramtre formel est sans effet sur la valeur du paramtre effectif.

2) Passage de Paramtre par variable (utilis par les procdures) :


Le passage de paramtre par variable permet au programme principal de transmettre une
valeur la procdure appele et vice-versa
Toute modification du paramtre formel entrane automatiquement la modification de la
valeur du paramtre effectif.
Pascal :
Program nom_p_p ;
Uses wincrt ;
Const

{Dclaration des constantes globales}

Type

{Dclaration des nouveaux types globaux}

Var

{Dclaration des variables globales}

{Dclaration de la procdure}
Procedure nom_procdure (pf1 :type_pf1 ;pf2,pf3 :type_pf_2_3 ;) ;
Const
{Dclaration des constantes locales}
Type
{Dclaration des nouveaux types locaux}
Var
{Dclaration des variables locales}
Begin

{Instructions de la procdure}

end ;
{Fin de la procdure}
{programme principal}
begin

{Instructions du programme principal}


{appel de la procdure ;}

end.
Les sous-programmes

Prof : Hadj Hani

L.Souassi

Les sous-programmes

Anne : 2014/2015

Prof : Hadj Hani

You might also like