5. Sprachelemente / Operatoren | ||||||
|
||||||
5.5 Relationsoperatoren und Zugehörigkeitstest
Mit Relationsoperatoren können Operanden gelichen Typs verglichen werden. Das Ergebnis dieses Vergleichs kann entweder in einer Bedingung verwendet oder in einer Booleschen Variable gespeichert werden. Relationsoperatoren (= und /=) Relationsoperatoren sind nicht für limitierte Typen und für anonyme Zugriffstypen definiert. Reihungstypen können nur gleich sein, wenn sie die gleiche Anzahl Komponenten enthalten und die Komponenten beider Reihungen an denselben Indexpositionen den gleichen Wert haben. Verbundtypen können nur gleich sein, wenn sie vom selben Typ sind. Wenn ein Verbundtyp eine Diskriminante enthält, so müssen auch die Diskriminanten der beiden Verbunde den gleichen Wert haben, damit die Verbunde gleich sein können. Relationsoperatoren (<, <=, >, >=) Relationsoperatoren sind nur definiert für - skalare Typen und - eindimensionale Reihungstypen mit diskreten Komponententypen. Skalare Typen können miteinander verglichen werden, wenn sie einen gemeinsamen übergeordneten Typ haben, so z. B. Integer und Positive, eine Teilmenge von Integer. Um verschiedenartige skalare Typen miteinander zu vergleichen, z. B. Float mit Integer, muß einer der beiden Typen in den anderen konvertiert werden, in diesem Beispiel Integer nach Float. Beispiel (skalare Typen):
Beim Vergleich von Reihungstypen werden die Elemente der Reihungen einzeln in aufsteigender Reihenfolge verglichen, bis eines der Elemente für den Vergleich ein eindeutiges Ergebnis liefert. Auch hier gilt, daß verschiedene Reihungstypen verglichen werden können, sofern sie einen gemeinsamen übergeordneten Typ haben. Wenn eine dieser Reihungen weniger Elemente enthält als die andere und die Elemente der Reihung mit weniger Elementen den gleichpositionierten Elementen der Reihung mit mehr Elementen entsprechen, so ist die Reihung mit mehr Elementen automatisch größer als die andere. Eine Reihung mit einem Element ist also auf jeden Fall größer als eine Reihung ohne Elemente. Beispiel (Reihungstypen):
Für mehrdimensionale Reihungen ist kein Vergleich auf kleiner oder
größer möglich. Hier kann nur verglichen werden, ob die
Reihungen identisch sind. Hierbei werden jeweils die Positionen mit gleichem
Index verglichen. Mit X in Untertyp kann z. B. eine Integer-Zahl daraufhin geprüft
werden, ob sie sich im Bereich des Untertyps befindet, bevor sie einer
Variablen dieses Untertyps zugewiesen wird.
|
||||||
|