346
Chapitre 17 • Expression abstraite d’un modèle
La plupart des tableurs offrent (au moins) deux valeurs standard qui permettent de
représenter chacune de ces situations. La première, que nous dénoterons par absent,
représente le fait que la grandeur n’a pas de valeur parce que sa règle de définition
n’a pu être évaluée faute de disposer des grandeurs nécessaires. La seconde, que
nous appellerons erreur, représente le fait que la grandeur n’a pas reçu de valeur car
l’évaluation de sa règle de définition a provoqué une erreur.
Ces valeurs, dites valeurs d’exception, vont se propager dans le modèle lors de
son exécution selon les principes suivants 5 :
• une grandeur B dont la règle de définition utilise une donnée A sans valeur
prend la valeur absent,
• une grandeur B dont la règle de définition utilise une grandeur A à laquelle la
valeur absent a été assignée prend également la valeur absent,
• une grandeur B dont la règle de définition utilise une grandeur A à laquelle la
valeur erreur a été assignée prend également la valeur erreur,
• en cas d’ambiguïté, la valeur erreur a priorité sur la valeur absent.
Lorsque le modèle ne comporte pas de règles absorbantes (voir ci-dessous), la
propagation de ces valeurs ainsi que des données manquantes est entièrement déterminée par le graphe de dépendance, ainsi que l’illustre l’exemple de la figure 17.8.
Figure 17.8 - Un modèle et son graphe de dépendance
On en déduit par exemple que
• si la donnée D est manquante, alors H, K et L prendront la valeur absent,
• si E a la valeur erreur, alors G, I, J et K prennent également la valeur erreur,
• si F a la valeur erreur et si la donnée D est manquante, H prend la valeur
erreur,
5. On rapprochera ces règles de celles de la propagation de la valeur null en SQL (section
6.10).
Données
A,B,C,D
Résultats
I,J,K,L
Grandeurs internes
E,F,G,H
Règles
E = e(A)
F = f(B,C)
G = g(E,F)
H = h(F,D)
I = i(E)
J = j(G)
K = k(G,H)
L = l(H)
A
B
C
D
E
F
G
H
I
J
K
L
Précédent

- 346/436

Suivant