Xcas distingue plusieurs sortes de collections d'objets, séparés par des virgules :
liste:=[1,2,4,2] sequence:=(1,2,4,2) ensemble:=%{1,2,4,2%}
Les listes peuvent contenir des listes (c'est le cas des matrices), alors que les séquences sont plates (un élément d'une séquence ne peut pas être une séquence). Dans un ensemble, l'ordre n'a pas d'importance et chaque objet est unique. Il existe une autre structure, appelée table, dont nous reparlerons plus loin.
Il suffit de mettre une séquence entre crochets pour en faire une liste
ou entre accolades précédées de %
pour en faire un ensemble.
On passe d'une liste à sa séquence associée par op
,
d'une séquence à sa liste associée par nop
.
Le nombre d'éléments d'une liste est donné par size
.
se:=(1,2,4,2) li:=[se] op(li) nop(se) %{se%} size([se]) size(%{se%})
Pour fabriquer une liste ou une séquence, on utilise des commandes
d'itération comme $
ou seq
(qui itèrent une
expression) ou makelist
(qui définit une liste à l'aide d'une
fonction).
1$5 k^2 $ (k=-2..2) seq(k^2,k=-2..2) seq(k^2,k,-2..2) [k^2$(k=-2..2)] seq(k^2,k,-2,2) seq(k^2,k,-2,2,2) makelist(x->x^2,-2,2) seq(k^2,k,-2,2,2) makelist(x->x^2,-2,2,2)
La séquence vide est notée NULL
, la liste vide
[]
. Il suffit d'écrire à la suite une séquence, puis une
virgule, puis une autre séquence pour les concaténer.
Pour ajouter un
élément à une liste on utilise append
.
On accède à un élément d'une liste ou d'une séquence grâce
à son indice mis entre
crochets, le premier élément étant d'indice 0.
se:=NULL; se:=se,k^2$(k=-2..2); se:=se,1 li:=[1,2]; (li:=append(li,k^2))$(k=-2..2) li[0],li[1],li[2]
Les polynômes sont souvent définis par une expression, mais
ils peuvent aussi être représentés
par la liste de leurs coefficients par ordre
de degré décroissant, avec comme délimiteurs %[
et %]
.
Il existe aussi une représentation
pour les polynômes à plusieurs variables. Les fonctions
symb2poly
et poly2symb
permettent
de passer de la représentation expression à la représentation
par liste et inversement,
le deuxième argument détermine s'il s'agit de polynômes
en une variable (on met le nom de la variable) ou de
polynômes à plusieurs variables (on met la liste des variables).
Séquences et listes | |
E$(k=n..m) |
créer une séquence |
seq(E,k=n..m) |
créer une séquence |
[E$(k=n..m)] |
créer une liste |
makelist(f,k,n,m,p) |
créer une liste |
op(li) |
passer de liste à séquence |
nop(se) |
passer de séquence à liste |
size(li) |
nombre d'éléments |
sum |
somme des éléments |
product |
produit des éléments |
cumSum |
sommes cumulées des éléments |
apply(f,li) |
appliquer une fonction à une liste |
map(li,f) |
appliquer une fonction à une liste |
poly2symb |
polynôme associé à une liste |
symb2poly |
coefficients d'un polynôme |