Ce TP a pour but de modéliser la structure de données sous-jacente à un tableur comme LibreOffice Calc ou Microsoft Excel.
Pour simplifier le problème nous allons supposer que:
-
Toutes les cases non-vides ont des valeurs de même type.
-
Toutes les cases non-vides contiennent une fonction, qui ne prend pas d'argument et renvoie un résultat. L'évaluation de cette fonction est la valeur de la case: si, par exemple, une case doit avoir pour valeur 2, elle contient en fait la fonction () -> 2.
-
Une case est identifiée par une chaîne de caractères comme "A1", "Z350" ou "B5000" par exemple. La lettre indique la valeur de la colonne, le nombre indique la valeur de la ligne.
-
Pour éviter les limitations sur le nombre de lignes et de colonnes, les cases sont stockées dans une table de hachage qui associe au nom de la case la fonction qu'elle contient.
Par exemple, le tableau suivant
| A | B | C | D |
1 | 5 | | | |
2 | | 3 | 4 | |
3 | 8 | | | |
sera représenté par les couples A1:() -> 5, B2:() -> 3, C2:() -> 4 et A3:() -> 8 dans la table de hachage.