Traduction

Licence Informatique 3ème année --- TD 10


Le but de l'exercice est d'écrire un interprète pour un mini tableur. Il gère une matrice N*M de valeurs, qui peuvent être des nombres réels ou des chaînes de caractères (ou rien). La table s'appelle T. L'accès à la cellule à la ième ligne et jième colonne se fait par T[i,j]. On peut mettre des formules dans les cellules, et faire référence à d'autres cellules. Il existe deux affectations: la première, notée :=, met une expression dans une cellule (sans l'évaluer), l'autre met la valeur de l'expression, après évaluation, dans la cellule. Des instructions permettent d'afficher la table entière, en mettant soit des valeurs soit des formules dans les cellules.

Exemple
> AfficherValeurs
        0         1         2
0
1
2
> T[1,2]=3
> AfficherValeurs
       0          1         2
0
1                           3
2
> T[0,1]="toto"
> T[0,2]=1+2*3
> T[2,2]=T[0,2]+T[1,2]
> AfficherValeurs
      0           1         2
0            "toto"         7
1                           3
2                          10
> AfficherFormules
      0           1         2
0            "toto"         7
1                           3
2                          10
> T[0,2]=1
> AfficherValeurs
      0           1         2
0            "toto"         1
1                           3
2                          10
> T[0,2]:=1+2*3
> T[2,2]:=T[0,2]+T[1,2]
> AfficherValeurs
      0           1         2
0            "toto"         7
1                           3
2                          10
> AfficherFormules
      0           1                2
0            "toto"            1+2*3
1                                  3
2                      T[0,2]+T[1,2]
> T[0,2]=3*4
> AfficherValeurs
      0           1         2
0            "toto"        12
1                           3
2                          15

Décrivez les défauts de votre tableur (typage, évaluation récursives, etc).