Mengentypen
Ein Mengentyp umfaßt die Potenzmenge der Wertemenge
zu einem gegebenen Basistyp,
also die Menge aller seiner Teilmengen:
TYPE <T> = SET OF <BT>;
dabei ist der Basistyp <BT>
ein skalarer Typ,
also meist eine Aufzählung
oder ein Ausschnittyp.
Sein zulässiger Umfang ist bei den meisten Implementierungen
unangenehm stark eingeschränkt.
Konstante Werte eines Mengentyps <T> haben die Form
<T>{ c1, ... , cn },
dabei sind c1 bis cn Konstanten des Basistyps <BT>.
Zu jedem Mengentyp <T> gehört mit <T>{}
auch ein Exemplar der leeren Menge Ø.
Variable Elemente vom Basistyp kann man in eine Menge
aufnehmen oder ausschließen durch die Anweisungen:
- INCL(S, x) mit der Bedeutung: S := S {x}
- EXCL(S, x) mit der Bedeutung: S := S \ {x}
Die Grundoperationen der Mengenlehre sind für Mengentypen vorhanden,
werden aber anders geschrieben:
- S1 + S2 : die Vereinigung S1S2
- S1 * S2 : der Durchschnitt S1S2
- S1 - S2 : die Differenz S1\S2
= { x S1 | xS2 }
- S1 / S2 : die symmetrische Differenz S1S2
= S1\S2 S2\S1
Hier sind die Ergebnisse wieder Mengen desselben Typs;
daneben gibt es noch die Abfragen mit Ergebnis BOOLEAN:
- S1 <= S2 bedeutet: S1S2
- S1 >= S2 bedeutet: S2S1
- x IN S bedeutet: xS
Vordefiniert ist der Mengentyp BITSET als SET OF [0 .. N-1],
dabei ist N typisch die Wortlänge des Rechners.
Er ist vor allem zur Manipulation von Bitmustern gedacht.
Bei Konstanten dieses Typs braucht die
Typangabe nicht geschrieben zu werden;
alle anderen Mengentypen werden intern auf diesen Typ abgebildet,
daher auch die Größeneinschränkungen.
In manchen Implementierungen gibt es auch noch SET OF CHAR,
mit eigener Realisierung.
zurück |
Inhalt | Index |
vor |
Vorlesung
Klaus Lagally, 22. Februar 2000, 19:36