http://www.pronix.de -> Forum -> Knobelecke

Forum: Knobelecke

Moderatoren: broesel, juergen

Thema: Logische Operatoren vs. Konditionale

Logische Operatoren vs. Konditionale

broesel (webmaster) am 09.07.2010 um 15:45

Hallo zusammen,

hier also mal wieder ein eher leichtes Rätsel:

Jeder kennt die typischen logischen Operatoren aus C:

|| (OR)
&& (AND)
! (NOT)
^ (XOR)

und wir erfinden uns noch einen:

=> (Implikation)


Wir wollen eine Programmiersprache entwerfen, die ohne diesen synaktischen Schnickschnack auskommt. Unsere Sprache kennt nur das Konditional IF..THEN..ELSE und die logischen Konstanten "true" und "false" (und natürlich Variablen und den ganzen anderen Kram, aber das ist ja klar...).

Wie würden wir in unserer Sprache die oben genannten logischen Operatoren ausdrücken?

Hier mal ein Beispiel für !x (NOT x):

IF x THEN false ELSE true


Gruss,
Philip

--
The C Programming Quiz (externer link) - bitte Fragen einreichen :)

 

Re: Logische Operatoren vs. Konditionale

Martin Conrad (webmaster) am 09.07.2010 um 20:39

Du wirst lachen, sowas gibts öfters mal. [ ist kein Buildin, sondern ein eigenständiges Programm.

Bis denne

Martin

--
0xC0FFEE

 
ich versuchs mal:

x||y:
IF x THEN true ELSE IF y THEN true ELSE false
x&&y:
IF x THEN IF y THEN true ELSE false ELSE false
!x:
IF x THEN false ELSE true
x^y:
IF x THEN IF y THEN false ELSE true ELSE IF y THEN true ELSE false
x=>y:
IF x THEN IF y THEN true ELSE false ELSE true
 

Re: Logische Operatoren vs. Konditionale

broesel (webmaster) am 11.07.2010 um 03:10

Hallo Richard,

das sieht alles ziemlich gut aus!

Man kann es noch verkürzen indem man sich die Tatsache zunutze macht, dass "IF x THEN true ELSE false" äquivalent ist zu "x":

x||y:
IF x THEN true ELSE y

x&&y:
IF x THEN y ELSE false

!x:
IF x THEN false ELSE true

x=>y: (wir nutzen aus, dass x=>y das gleiche ist wie !x||y)
IF x THEN y ELSE true

x^y: (wir nutzen aus, dass wir "NOT x" schon definiert haben)
IF x THEN NOT y ELSE y


Also doch wieder etwas Schweres... :>

Gruss,
Philip

--
The C Programming Quiz (externer link) - bitte Fragen einreichen :)