Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

Modula 2 Sprachbeschreibung


Home Inhaltsverzeichnis Records Anweisungen

8 Sets

Um gleiche Datentypen zu einem größeren Wertebereich zusammenzufassen, können Mengen gebildet werden. Es darf sich dabei nur um Aufzählungsdatentypen handeln. Jeder Wert ist kann nur einmal in der Menge vorkommen.

TYPE
   Farben = (Rot, Gelb, Gruen);
   Ampel = SET OF Farben;

Ampel ist eine Menge, die die Werte Rot, Gelb oder Gruen oder eine Kombination davon enthalten kann.

VAR DieAmpel : Ampel;
...
DieAmpel:=Ampel{Rot,Gelb};

DieAmpel enthält danach die Werte Rot und Gelb. In dem Mengenausdruck dürfen nur Konstanten erscheinen. Ein Programm

VAR i:Farben;
...
i:=Gelb;
DieAmpel:=Ampel{Rot,i}

ist also nicht möglich.

Folgende Operationen auf Mengen sind möglich:

EXCL(DieAmpel,i);
Entfernen eines Elements aus der Menge.
 
+ Vereinigung
Beide Mengen werden zusammengefügt. {Rot,Gelb} + {Gruen} = {Rot, Gelb, Gruen}
 
- Differenz
Aus der ersten Menge werden alle Elemente entfernt, die in der zweiten Menge enthalten sind. {Rot, Gelb} - {Rot} = {Gelb}
 
* Durchschnitt
Das Ergebnis enthält die Elemente, die in beiden Mengen vorhanden sind. {Rot, Gelb} * {Gelb, Gruen} = {Gelb}
 
/ symetrische Differenz
Das Ergebnis enthält die Elemente, die nicht in beiden Mengen sondern nur in einer der beiden Mengen stehen. {Rot, Gelb} / {Gelb, Gruen} = {Rot, Gruen}
 
IN
Der Operator IN testet, ob ein Element enthalten ist. IF Rot IN DieAmpel THEN
 

Eine vordefinierte Menge ist BITSET. Ein BITSET ist eine Menge von CARDINALS einer bestimmten Größe, die wiederum implementationsabhängig ist. BITSETs können selber definiert werden mit

TYPE BITSET = [0..31];

Die maximale Größe einer Menge ist implementationsabhängig.


Home Inhaltsverzeichnis Records Anweisungen


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum