Une application, surtout si elle est longue, à toutes les chances de devoir procéder aux mêmes traitements, ou à des traitements similaires, à plusieurs endroits de son déroulement. Comment réutiliser un algorithme existant sans à avoir à le réécrire ?
|
|
Utiliser des fonctions et des procédures !
f=factorielle(5);
f=factorielle(3);
Les fonctions et les procédures permettent de décomposer un programme complexe en une série de sous-programmes plus simples, lesquels peuvent à leur tour être décomposés eux-mêmes en fragments plus petits, et ainsi de suite.
La vérification des différentes partie sera plus simple du fait de leur moindre complexité
Les fonctions et procédures peuvent être déduits des différentes passes de raffinage de la conception de l'algorithme
Une fonction est une suite ordonnée d'instructions qui retourne une valeur (bloc d'instructions nommé et paramétré).
Une fonction joue le rôle d'une expression.
Elle enrichit le jeu des expressions possibles.
y=sin(x)
renvoie la valeur du sinus de x
nom sinus
paramètres x : réel <-sin(x) : réel
Une procédure est une suite ordonnée d'instructions qui ne retourne pas de valeur (bloc d'instructions nommé et paramétré).
Une procédure joue le rôle d'une instruction.
Elle enrichit le jeu des instructions existantes.
print(x,y,z) affiche les valeurs de x, y et z
nom print
paramètres Ø <- plot(x,y,z)
Les modules sont des collections de fonctions et procédures qu'il est possible d'inclure dans un algorithme
Cela permet de réutiliser l'algorithme.
L'écriture de programmes complexes s'en trouve facilité.
Nom : un identificateur suffisamment explicite.
Paramètres : la liste des paramètres d'entrée-sortie de l'algorithme.
Préconditions : une liste d'expressions booléennes qui précisent les conditions d'application de l'algorithme.
Appel : des exemples d'utilisation de l'algorithme avec les résultats attendus.
Description : une phrase qui dit ce que fait l'algorithme.
Code : la séquence d'instructions nécessaires à la résolution du problème.
nom (déclaration)
fonction factorielle()
...
retourne ...
paramètres d'entrée-sortie
fonction factorielle(n)
...
/* calcul de f */
retourne f
nom (utilisation)
>>>factorielle()
paramètres d'entrée-sortie
>>>factorielle(5)
120
>>>factorielle(-5)
0
>>>factorielle('cinq')
0
préconditions (déclaration)
fonction factorielle()
verifier entier : n
verifier n >= 0
...
/* calcul de f */
retourne f
préconditions (utilisation)
>>> factorielle(5)
120
>>> factorielle(-5)
erreur de vérification : n >= 0
>>> factorielle('cinq')
erreur de verification : entier : n
jeu de tests (déclaration)
fonction factorielle()
/* factorielle(1)=1 */
/* factorielle(2)=2 */
/* factorielle(3)=6 */
/* factorielle(6)=720*/
verifier entier : n
verifier n >= 0...
/* calcul de f */
retourne f
jeu de tests (utilisation)
>>> factorielle(1)
1
>>> factorielle(2)
2
>>> factorielle(3)
6
>>> factorielle(6)
720
description (déclaration)
fonction factorielle()
/* fonction qui calcule n! */
/* factorielle(1)=1 */
/* factorielle(2)=2 */
/* factorielle(3)=6 */
/* factorielle(6)=720 */
verifier entier : n
verifier n >= 0
...
/* calcul de f */
retourne f
description (utilisation)
>>> aide('factorielle()')
fonction qui calcule n!
factorielle(1)=1
factorielle(2)=2
factorielle(3)=6
factorielle(6)=720