Salut,

J'ai une question toute bête mais qui me tracasse un peu.

Lorsqu'on dois contrôler les paramètres en entrée d'une fonction, comment devrais t-on formuler les conditions ?

Pour donner un exemple simple, est-ce que le pseudocode suivant est acceptable ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
FONCTION UneFonction
 
PARAMETRES
Tab : TABLEAU[1..4] DE ENTIERS; [I/O] // On suppose ici qu'il n'y a pas de fonction qui donne automatiquement la taille de la chaîne
TailleTab : Entier // Donne le nombre de cases dans le tableau
 
VARIABLES
Compteur,  Variable2 : Entier
 
RETOUR Booléen
 
DEBUT
 
// On sais d'avance que le tableau ne dois pas contenir plus de 4 cases
SI( UnNombre < 0 ET UnNombre > 4 )
 RETOURNER FAUX;
 
// Traitements portant sur un paramètre
TANT QUE ( Compteur < UnNombre )
 Tab[ Compteur ] += UnNombre; 
 Compteur++;
FIN TANT QUE
 
RETOURNER Vrai;
 
FIN
Ou vaudrais t-il mieux contrôler le paramètre ainsi ? Certains me dirons que c'est chou vert et vert choix...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
FONCTION UneFonction
 
PARAMETRES
Tab : TABLEAU[1..4] DE ENTIERS; [I/O] // On suppose ici qu'il n'y a pas de fonction qui donne automatiquement la taille de la chaîne
TailleTab : Entier // Donne le nombre de cases dans le tableau
 
VARIABLES
Compteur,  Variable2 : Entier
 
RETOUR Booléen
 
DEBUT
 
// L'indice est bon
SI( UnNombre >= 0 ET UnNombre <= 4 )
 
 TANT QUE ( Compteur < UnNombre )
  Tab[ Compteur ] += UnNombre; 
  Compteur++;
 FIN TANT QUE
 
 RETOURNER Vrai;
FIN SI
 
RETOURNER Faux;
 
FIN
Ou est-ce que cela dépends du contexte finalement ?

Je posterais un algorithme complet où la question a été soulevée. C'était dans le contexte d'un examen et la première approche m'a évité de tout réécrire.