Procé dure nom_proc(E param1:type,ES param2:type,S param3:type)
Les paramètres d’une procédure sont de trois catégories : 
q Ceux  en  entrée,  qui  correspondent  aux  valeurs  que  vous  souhaitez  transmettre  à  la  procédure.  Entre  les 
parenthèses, ils sont précédés d’un "E", comme Entrée, car ce sont les valeurs en entrée de la procédure. 
q Ceux  en  sortie,  qui  correspondent  aux  valeurs  retournées  par  la  procédure  au  programme  ou  au  sousprogramme l’ayant appelé. Ils sont précédés d’un "S", comme Sortie, car ce sont les valeurs en sortie de la 
procédure.  Ces  paramètres  sont  des  variables  qui  doivent  être  déclarées  dans  le  programme  ou  sousprogramme appelant. 
q Ceux en entrée et en sortie, précédés de "ES". 
Quand vous avez plusieurs paramètres en entrée, il suffit de tous les mettre après le E, et même de les regrouper 
selon leur type. Cette procédure prend cinq paramètres : trois entiers et deux chaînes. 
Procédure proc(E p1,p2,p3:entiers,p4,p5:chaînes)
La procédure RepeteCar() se prête bien à un paramètre. Comment en effet utiliser une variable globale pour spécifier 
le  nombre  de  caractères  à  répéter  ?  Autant  passer  ce  nombre  en  paramètre.  Voici  le  programme  modifié  en 
conséquence : 
Procédure RepeteCar(E nbcar:entier, E c:caractère) 
VAR 
i:entier 
DEBUT 
Pour i de 1 à nbcar Faire 
Afficher c 
FinPour 
FinProc 
 
PROGRAMME LIGNES 
VAR 
i:entier 
DEBUT 
Pour i de 1 à 10 Faire 
RepeteCar(i,"*") 
FinPour 
FIN
Vous récupérez une éventuelle valeur en sortie via la ou les variables E ou ES. Voici une procédure qui convertit un 
nombre de secondes en heures, minutes et secondes. Elle prend quatre paramètres dont un en entrée (le nombre de 
secondes) et trois en sortie (heures minutes et secondes). 
Procédure sec_to_hms(E nbsec:entier, S h,m,s:entiers) 
Début 
h←nbsec DIV 3600 
nbsec←nbsec%3600 
m←nbsec DIV 60 
s←nbsec MOD 60 
FinProcédure 
 
PROGRAMME convert_sec 
Var 
nb_secondes :entier 
heures,minutes,secondes:entiers 
Début 
nb_secondes←3950 
sec_to_hms(nb_secondes,heures,minutes,secondes)  
Afficher heures,minutes,secondes 
Fin
La procédure précédente fonctionne certes à merveille, mais avec un peu plus de réflexion, pourquoi ne pas utiliser 
Passer un enregistrement comme paramètre
- 8 -
© ENI Editions - All rigths reserved - Jonifar lina
131
Précédent

- 131/220

Suivant