Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Probleme mit vergleichsoperatoren bei Settypen


biochip2 - Di 27.04.04 23:40
Titel: Probleme mit vergleichsoperatoren bei Settypen
Wer kann mir ein simples Bsp. zu folgenden Code geben.

Operatoren <= (Teilmenge) und >=( Obermenge) ist ok

aber Operatoren < (echte Teilmenge) und >( echte Obermenge) klapt bei mir nicht.

z.Bsp. if not( A < A ) then showmessage( ' A < A { False } ' ;

Laut Objectpascal mit Delphi von Richsard Kaiser ? :(


MSCH - Mi 28.04.04 12:54

hier ein Auszug aus der D6 Hilfe:
Zitat:
Die folgenden Operatoren haben eine Menge als Operanden.

Operator Operation Operandtyp Ergebnistyp Beispiel
+ Vereinigung Set Set Set1 + Set2
- Differenz Set Set S - T
* Schnittmenge Set Set S * T
<= Teilmenge Set Boolean Q <= MySet
>= Obermenge Set Boolean S1 >= S2
= Gleich Set Boolean S2 = MySet
<> Ungleich Set Boolean MySet <> S1
in Element Ordinal, Set Boolean A in Set1
Für +, – und * gelten die folgenden Regeln:

Der Ordinalwert O ist nur in X + Y enthalten, wenn O in X oder Y (oder beiden) enthalten ist. O ist nur in X – Y enthalten, wenn O in X und nicht in Y enthalten ist. O ist nur in X * Y enthalten, wenn O sowohl in X als auch in Y enthalten ist.
Das Ergebnis einer Operation mit +, – oder * ist vom Typ set of A..B, wobei A der kleinste und B der größte Ordinalwert in der Ergebnismenge ist.

Für <=, >=, =, <> und in gelten die folgenden Regeln:

X <= Y ist nur dann True, wenn jedes Element von X ein Element von Y ist; Z >= W ist gleichbedeutend mit W <= Z. U = V ist nur dann True, wenn U und V genau dieselben Elemente enthalten.
Für einen Ordinalwert O und eine Menge S ist O in S nur dann True, wenn O ein Element von S ist.

grez
msch


biochip2 - Do 29.04.04 21:24

Hi,grez

Ich habe Delphi 6 Personal. Inder Delphihilfe gibt es keine echten Teilmengen(<) bzw. echte Obermengen(>) und in
älteren Versionen kann es sie gegeben haben . Im Buch siehe Frage ist noch von Delphi 2 und dort muss es ihn noch gegeben haben da der Autor diese Vergleichsoperaturen angibt mit mit Bsp. .

Denn <= (Teilmenge die Kleiner or gleich sein kann) während <(nur kleiner sein kann und nicht gleichalso echte Teilmenge )
Da ich kein Delphi 2 habe kann ich es nicht klären.

Entweder Fehler vom Autor oder (< , > vergleichsbefehle wurden einfach weggelassen oder sie fehlen in der delphihilfe.

Vieleicht hat einer Delph 2 genuzt nur der kann es genau wissen.


frank