dh-Materialien
Maple   
Übungen

Mengen, Listen und Folgen

> restart;

Eine endliche Menge von Zahlen:

> M:= {1, 5, 7, 7, 7, 3, 2, 12};

mengen1 

Die Elemente dieser Menge sind zwar in einer gewissen Reihenfolge gespeichert und hier auch hingeschrieben; dennoch sind die Elemente einer Menge nicht geordnet:

> M[6];
M[6]:= 9; # Es gibt kein 6.Element von M!
M;

12
Error, cannot reassign the entries in a set
mengen2

Eine Liste von Zahlen:

> l:= [1, 5, 7, 7, 7, 3, 2, 12];

mengen3 

Die Elemente einer Liste sind geordnet und indiziert.
Durch diese Indizierung kann man auf jedes einzelne Listenelement zugreifen und auch ändern:

> l[6];
l[6]:= 9: # Das 6. Element von l wird geändert.
l;

mengen4 

Eine Folge von Zahlen:

> f:= 1, 5, 7, 7, 7, 3, 2, 12;
f[6];
f[6]:= 9: # Unzulässiger Zugriff auf f.
f;

mengen5 

Error, invalid assignment (1, 5, 7, 7, 7, 3, 2, 12)[6] := 9;
cannot assign to an expression sequence

1, 5, 7, 7, 7, 3, 2, 12

Elementare Mengenoperationen:

> M;
M:= M minus {7, 10, 11, 12};
M union {4, 5};
M intersect {2, 3, 4};
is (4 in M);
{} subset M;
nops(M); # Anzahl aller Elemente in M

mengen6 

Verändern von Listen:

> l;
nops(l); # Anzahl aller Listenelemente
l:= subsop(3=NULL, 4=NULL, l);
sort(l, `>`);
l:= [op(l), 13, 14, 14, 14, 5, 9];

mengen7 

Entfernen mehrfach vorkommender Listenelemente:

> with(ListTools):
MakeUnique(l);

[1, 5, 7, 9, 2, 12, 13, 14]

Weitergehende Informationen über die Manipulation von Listen:

> ?ListTools;

Einige Befehle des ListTools Package:

BinaryPlace BinarySearch Categorize DotProduct Enumerate
FindRepetitions Flatten FlattenOnce Group Interleave
Join JoinSequence MakeUnique Occurrences Pad
PartialSums Reverse Rotate Search SearchAll
SelectFirst SelectLast Sorted Split Transpose

Operationen auf Folgen:

> f;
nops([f]); # Anzahl aller Folgenglieder
liste:= MakeUnique(sort([f]));
folge:= op(liste);
3, 5, f[2..4], 7;

mengen8 

Datentypen