Основные операции со структурами данных
Создание пустых структур
NULL, :=, [].
| Seq1:=NULL; |
| List1:=NULL; List2:=NULL; List3:=[]; |
| Set1:={}; Set2:=NULL; |
| Tab1:=table(); |
| Array1:=Array(-10..10); |
| Vec1:=Vector(10); |
| Matrix1:=Matrix(10,10); |
Связанные структуры
||, op, [ ], cat.
| k:=1; Seq1:=seq(i,i=1..9); |
| List1:=[Seq1]; |
| a||Seq1; |
| "Seq1"||(1..9); |
| k||(1..9); |
| cat(a,Seq1); |
| op([List1,List1]); |
| cat(Seq1,Seq1); |
Извлечение i-го элемента из структуры
[ ], op, select, has.
| Seq1:=seq(i^2,i=1..9); List1:=[Seq1]; |
| Set1:={Seq1}; |
| Array1:=Array(1..9,1..9,[List1,0,List1,0,List1,List1]); |
| i:=5; j:=2; List1[i]; op(i,List1); |
| Array1[i,j]; op(i,Set1); |
| element:=9; select(has,Set1,element); |
Определение числа элементов в структуре
nops.
| List1:=[x,y,z]; Set1:={op(List1)}; nops(List1); |
| nops(Set1); |
Создание подструктур
op, [ ].
| Seq1:=x||(1..9); List1:=[Seq1]; |
| Set1:={Seq1}; |
| n:=nops(List1); |
| List2:=[Seq1,Seq1]; |
| n1:=2; n2:=5; List3:=[op(n1..n2,List1)]; |
| List4:=List1[n1..n2]; Seq2:=op([(n1..n2)],List2); |
| Set2:={op(n1..n2,Set1)}; Set3:=Set1[n1..n2]; |
| Seq3:=op([(n1..n2)], Set1); |
Здесь n1 ≤ n2 ≤ n и n – число элементов List1.
Замена i-го элемента структуры
:=, [ ], subsop, subs, evalm.
| Seq1:=x[i] $ i=1..9; List1:=[Seq1]; |
| i:=5; j:=2; val:=20; List1[i]:=val; |
| evaln(List1)=List1; |
| List2:=subsop(i=val+1,List1); |
| A:=Matrix(1..i,1..i,symbol=s); |
| A1:=subs(s[i,j]=cos(a+b),A); |
Вставка элемента или нескольких элементов в структуру
[ ], op.
| n1:=2; n2:=5; Seq1:=x[i] $ i=1..9; |
| List1:=[Seq1]; |
| List2:=[op(List1),A1]; |
| List3:=[A1,op(List1)]; |
| List4:=[op(n1..n2,List1),A1,A2,A3,A4,op(List2)]; |
Создание структуры согласно формуле или обладающей особыми свойствами
Например, нуль, равенство, разреженность, симметричность, диагональность и т. п.
| f:=x->cos(x); n:=0; m:=3; |
| List1:=[seq(f(i*t),i=n..m)]; |
| Set1:=map(x->x"2,{x,y,z}); |
| List2:=[op(Set1)]; |
| Matrix1:=Matrix(m,m,(i,j)->i+j); |
| Vector1:=Vector(m,i->i"2); |
| with(LinearAlgebra): |
| ZeroMatrix(m,m); |
| IdentityMatrix(m,m); |
