j'écris un petit truc pour illustrer le produit d'une matrice ligne par une colonne :
- Code: Tout sélectionner
view(0, 7, -1, 6), // Grille(0, 1 + i),
L := [2, 0, 1], C := [3, 4, 2],
d := 6, dd := .5*(1 + i),
CALC := "$", calc := 0,
Ligne([dd, dd + 3, bar(dd) + 3, bar(dd)], 1),
Ligne([d + d*i - dd, d + d*i - dd - 3*i, d + (d - 3)*i + bar(dd), d + d*i + bar(dd)], 1),
for k from 1 to 3 do
l := k, c := d + (d - k)*i,
Label(l, L[k]),
Seg(l + dd, l + bar(dd)), Seg(c - dd, c + bar(dd)),
Label(c, C[k]),
calc := calc + L[k]*C[k],
CALC := [CALC, L[k], "\times", C[k]],
if k <> 3 then CALC := [CALC, "+"], fi,
Seg(l + .5*i, c - .5),
DotStyle := dotcircle, DotSize := 25,
Point((l + c - .5 + .5*i)/2),
Label((l + c - .5 + .5*i)/2, "$\times$"),
od,
CALC := [CALC, "=", calc, "$"],
Label(d, CALC),
Ce n'est pas très joli, du coup j'explique : dans CALC je construis petit à petit la chaîne de caractère représentant le calcul effectué, et dans calc je fais le calcul.
En fin d'exécution, CALC doit contenir la liste
- Code: Tout sélectionner
["$",2,"\times",3,"+",0,"\times",4,"+",1,"\times",2,"=",8,"$"]
(j'ai vérifié avec un Message, c'est le cas), et je m'attends à ce que le Label affiche le résultat de la concaténation de celle-ci : "$2\times 3+0\times 4 + 1 \times 2 = 8 $".
Or ce n'est pas le cas, ça m'affiche
- Code: Tout sélectionner
[$,2,\times,3,+,0,\times,4,+,1,\times,2,=,8,$]
avec les virgules et les crochets...
Pourtant, si j'écris :
- Code: Tout sélectionner
Label(d, ["$",2,"\times",3,"+",0,"\times",4,"+",1,"\times",2,"=",8,"$"]),
j'ai bien le résultat voulu. Que rateuh-je ?