Réutilisabilité

Problème

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 ?

n <- 3 ;

f <- 1 ;

pour i de 1 à n faire

début

f<-f*i ;

fin

n <- 5 ;

f <- 1 ;

pour i de 1 à n faire

début

f<-f*i ;

fin

Utiliser des fonctions et des procédures !

f=factorielle(5);

f=factorielle(3);

Diviser pour mieux régner

  • 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

Fonction

Une fonction est une suite ordonnée d'instructions qui retourne une valeur (bloc d'instructions nommé et paramétré).

Fonction

Une fonction joue le rôle d'une expression.

Elle enrichit le jeu des expressions possibles.

Fonction

y=sin(x) renvoie la valeur du sinus de x

nom sinus

paramètres x : réel <-sin(x) : réel

Procédure

Une procédure est une suite ordonnée d'instructions qui ne retourne pas de valeur (bloc d'instructions nommé et paramétré).

Procédure

Une procédure joue le rôle d'une instruction.

Elle enrichit le jeu des instructions existantes.

Procédure

print(x,y,z) affiche les valeurs de x, y et z

nom print

paramètres Ø <- plot(x,y,z)

Modules

Les modules sont des collections de fonctions et procédures qu'il est possible d'inclure dans un algorithme

Modules

Cela permet de réutiliser l'algorithme.

L'écriture de programmes complexes s'en trouve facilité.

Définition d'une fonction : Les 6 étapes de définition

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 et paramètres d'entrée-sortie

nom (déclaration)

fonction factorielle()

...

retourne ...

paramètres d'entrée-sortie

fonction factorielle(n)

...

/* calcul de f */

retourne f

Nom et paramètres d'entrée-sortie

nom (utilisation)

>>>factorielle()

paramètres d'entrée-sortie

>>>factorielle(5)

120

>>>factorielle(-5)

0

>>>factorielle('cinq')

0

Préconditions

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 test

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

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

AccueilAlgorithmique > Réutilisabilité< PrécédentSuivant >