Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - bedingung verneinen


nepleurepas - So 21.09.08 12:53
Titel: bedingung verneinen
Hallo,

gibt es eine möglichkeit, eine bedingung zu invertieren ohne 'else' zu verwenden?
Bsp:

Delphi-Quelltext
1:
2:
if (a=250and (b=250then .....// tritt ein, wenn sowohl a als auch b den wert 250 haben[1]
                       else .... // tritt ein, wenn obiges nicht erfüllt ist              [2]


wie kann ich nun [2] als folge von 'then' erhalten, wenn (a=250) and (b=250) immernoch in der bedingung stehen sollen? Ich muss also das (a=250) and (b=250) irgendwie invertieren. Mathematisch 1-((a=250) and (b=250)).
Und jetzt sagt mir bitte nicht if (a<>250) or (b<>250), das is mir schon klar. Ich wills halt mit der Delphi syntax invertieren...

Hoffe ihr versteht mich
Danke


BenBE - So 21.09.08 12:57

De Morgan'sche Gesetze [http://de.wikipedia.org/wiki/De_Morgansche_Gesetze] ;-)


Delphi-Quelltext
1:
not (a=250and (b=250) ==> (not (a=250)) or (not (b = 250)) ==> (a <> 250or (b <> 250)                    


nepleurepas - So 21.09.08 13:07

(a=250and (b=250) ==> (not (a=250)) or (not (b = 250)) ==> (a <> 250or (b <> 250)[/quote]
ja gut, dass war jetz mathematisch verneint. Meine frage war ja, ob es n operator gibt. "Else" sagt ja im prinzip nichts anderes als 'alle Fälle, die nicht unter 'if' fallen.
Meine frage jetzt, kann ich auch direkt sowas wie 'else' in die bedingung schreiben?


BenBE - So 21.09.08 13:10


Delphi-Quelltext
1:
if not (Bedingung) Then                    


Macht auch nix andres, als ich jetzt grad Mathematisch gezeigt hab. Sollte man aber immer schauen, ob es nicht sinnvoller ist, die Bedingung mal eben mathematisch negiert.


nepleurepas - So 21.09.08 13:11

user profile iconBenBE hat folgendes geschrieben:

Delphi-Quelltext
1:
if not (Bedingung) Then                    


Macht auch nix andres, als ich jetzt grad Mathematisch gezeigt hab. Sollte man aber immer schauen, ob es nicht sinnvoller ist, die Bedingung mal eben mathematisch negiert.


okay, danke