Académique Documents
Professionnel Documents
Culture Documents
Algorithmique et Langage C
www.polytech.unice.fr/žvg/index-xidian.html
Routines
69/215
Algorithmique et Langage C
Routines
Introduction
70/215
Algorithmique et Langage C
Routines
Intérêt
71/215
Algorithmique et Langage C
Routines
En-tête
le nom de la routine
le noms des paramètres formels et leurs types
le type du résultat (pour une fonction)
Corps
Déclaration
{antécédent : a, b, c ∈ Z}
{Rôle : renvoie minimum(minimum(a,b),c)}
f o n c t i o n min3(données a, b, c: entier): entier
v a r i a b l e min : entier
s i a<b a l o r s
min ← a
sinon
min ← b
finsi
{ min = minumum(a,b) }
s i c<min a l o r s min ← c f i n s i
{ min = minimum(min,c) = minimum(minimum(a,b),c) }
r e n d r e min
finfonc
73/215
Algorithmique et Langage C
Routines
Appel
x ← min3(y, 4, z)
{x = minimum(minimum(y,4),z)}
écrire(min3(2 x, 0, a b))
{le minimum(minimum(2 x,0), a b) est écrit sur SS}
74/215
Algorithmique et Langage C
Routines
Procédure
75/215
Algorithmique et Langage C
Routines
Exemple de procédure
Déclaration
{antécédent : a>0, b>0}
{conséquent : a = b q+r, 06r<b}
pr o c é d u r e divEnt(données a, b : naturels
r é s u l t a t s q, r : naturels)
q ← a div b
r ← a mod b
{a = b q+r, 06r<b}
finproc
Appel
v a r i a b l e x, y : naturel
divEnt(7,3, x, y)
{7 = x 3+y = 2 3+1}
76/215
Algorithmique et Langage C
Routines
Règles
77/215
Algorithmique et Langage C
Routines
Données
Transmission par valeur. elle a pour effet d’affecter au paramètre
formel la valeur du résultat de l’évaluation du paramètre effectif. Le
paramètre effectif sert à fournir une valeur initiale au paramètre
formel
Résultats
Transmission par résultat. elle a pour effet, à la fin de l’exécution de
la routine, d’affecter au paramètre effectif résultat la valeur du
paramètre formel. Les paramètres effectifs résultats sont
nécessairement des noms de variables.
Données/Résultats
Transmission par résultat.
78/215
Algorithmique et Langage C
Routines
a = abs(y);
/ a == |y| /
b = abs(3 y);
/ b == |3 y| /
79/215
Algorithmique et Langage C
Routines
i n t x=3, y=5;
echanger(x,y);
/ x=5 et y=3 ? non ! /