19.3 Séquentialisation d’un modèle
407
© Dunod – La photocopie non autorisée est un délit.
• regrouper ces cellules de manière à centraliser visuellement la validation des
données,
• réserver une cellule qui affiche un indicateur global signalant s’il existe ou non
au moins une erreur; son contenu pourrait être :
et(V 1 ,V 2 ,...,V n )
Les branches vrai et faux seront généralement remplacées par des messages plus
explicites, ou par l’exécution d’actions d’alerte.
19.3 SÉQUENTIALISATION D’UN MODÈLE
Lors des discussions concernant la construction d’un modèle, il n’a jamais été fait
mention d’un quelconque ordre de présentation des règles. En effet, tant sur le plan
du raisonnement chez le concepteur, que sur celui du mode d’évaluation d’un
modèle par un tableur, l’ordre des règles est parfaitement indifférent. Nous avons
par exemple raisonné en partant des résultats pour remonter vers les données, alors
qu’on pourrait objecter que l’ordre de calcul des grandeurs sera probablement
inverse. En outre, un tableur effectuera le calcul de manière à n’évaluer une formule
que lorsque toutes les grandeurs qui y interviennent en partie droite auront déjà été
évaluées. Pour ce faire, le tableur construit un graphe de dépendance qui lui indique
quelles cellules (et donc quelles formules) doivent être évaluées et dans quel ordre.
Cependant, un tableur peut aussi effectuer l’évaluation d’une manière différente :
ligne par ligne ou colonne par colonne. Dans certains cas, le mode de calcul peut
être choisi par l’utilisateur. Si en revanche on ne dispose pas d’un tableur, ou si le
problème réclame des moyens plus puissants, il faudra rédiger un programme de
calcul dans un langage de programmation algorithmique tel que Pascal, C,
FORTRAN ou BASIC, c’est-à-dire qu’il faudra imposer a priori un ordre séquentiel
des calculs. Tel sera aussi le cas des procédures et des fonctions (macros) qu’on
intègre dans une feuille de calcul (ou feuille macro). Leur corps n’est en effet plus
déclaratif, comme le serait un modèle traditionnel, mais bien procédural comme
dans n’importe quel langage algorithmique (section 15.11).
En résumé, on peut retenir quatre circonstances dans lesquelles on ne peut
malheureusement pas ignorer l’ordre de calcul des formules :
• le tableur est primitif et incapable de trouver l’ordre logique de calcul (tel était
le cas de VisiCalc, l’ancêtre des tableurs actuels);
• le tableur est plus récent, mais l’ordre d’évaluation standard n’est pas l’ordre
désiré;
• le modèle se présente sous la forme d’une procédure ou d’une fonction;
• le modèle doit être réalisé à l’aide d’un langage algorithmique.
Il est donc indispensable dans ces circonstances de séquentialiser les formules de
manière à imposer l’ordre d’évaluation logique. Nous examinerons une procédure
qui produit simplement une liste des grandeurs internes et des résultats dont l’ordre
Précédent

- 407/436

Suivant