C++ Ausdrücke umgangssprachlich darstellen



  • Hallo zusammen.

    Ich habe in C++ ein paar Ausdrücke die ich umgangssprachlich darstellen soll.
    Nun bin ich mir aber unsicher ob das so einfach ist oder ob ich etwas übersehe oder nicht verstanden habe.

    a&&b||!c

    Daraus kann man doch bestimmt nicht einfach "a und b oder nicht c" machen, oder ?

    Oder sowas: !(a||b)||c
    Kann mir das jemand vielleicht erklären? Ich raff es nicht



  • DerGerd schrieb:

    Daraus kann man doch bestimmt nicht einfach "a und b oder nicht c" machen, oder ?

    Warum nicht?

    DerGerd schrieb:

    Oder sowas: !(a||b)||c
    Kann mir das jemand vielleicht erklären? Ich raff es nicht

    Du kennst aus dem Matheunterricht "Punktrechnung geht vor Strichrechnung" und was man macht, wenn man es anders haben will. Das hier ist analog.



  • Naja, mir kam das ganze so einfach vor das ich der Meinung war das es bestimmt falsch ist.

    Dann muss ich also bei dem "umformen" nur auf die Wertigkeit der Operatoren achten und auf Klammern, richtig?



  • ja das sollte reichen. Könnte mir aber vorstellen, dass du vorangestellt "Wenn" schreiben solltest. Also: "wenn weder a und b, oder c"



  • inflames2k schrieb:

    ja das sollte reichen. Könnte mir aber vorstellen, dass du vorangestellt "Wenn" schreiben solltest. Also: "wenn weder a und b, oder c"

    Das bezieht sich dann aber schon auf den zweiten Ausdruck von mir richtig?



  • inflames2k schrieb:

    ja das sollte reichen. Könnte mir aber vorstellen, dass du vorangestellt "Wenn" schreiben solltest. Also: "wenn weder a und b, oder c"

    Siehst du da irgendwo ein if?



  • Ich sehe dort kein if

    Aus a&&b||!c würde ich jetzt machen:
    Wahr wenn a und b wahr sind, aber nicht c



  • OK, danke. Der Groschen ist gerade gefallen!

    Sorry



  • manni66 schrieb:

    inflames2k schrieb:

    ja das sollte reichen. Könnte mir aber vorstellen, dass du vorangestellt "Wenn" schreiben solltest. Also: "wenn weder a und b, oder c"

    Siehst du da irgendwo ein if?

    Nein ich sehe da kein if, ich impliziere es aber, da der Ausdruck sonst keinen Sinn macht.



  • inflames2k schrieb:

    Nein ich sehe da kein if, ich impliziere es aber, da der Ausdruck sonst keinen Sinn macht.

    Ist auch korrekt so. Anders würde es wirklich keinen Sinn ergeben.
    Für meine erste Aussage habe ich nun:
    Wahr wenn a und b wahr sind, oder c nicht wahr ist.

    Für die zweite Aussage:
    Wahr wenn a oder b nicht wahr sind, oder c wahr ist.

    Denke mal das die Lösungen so korrekt sind.



  • inflames2k schrieb:

    Nein ich sehe da kein if, ich impliziere es aber, da der Ausdruck sonst keinen Sinn macht.

    Tatsächlich?

    bool x = a&&b||!c ;
    


  • Tatsächlich?

    Ja. Wenn man sich einfach vor Augen führt, was ein bool darstellt.. (bei ?: steht explizit auch kein if 😉 ) Darum ist DerGerd-s letzte Ausdrüchsweise meiner Meinung nach 100%ig korrekt.



  • DerGerd schrieb:

    a&&b||!c
    Kann mir das jemand vielleicht erklären? Ich raff es nicht

    in der Aussagenlogik ist !x || y = x -> y

    Also angewandt auf das obige Beispiel:
    c -> a&&b
    "aus c folgen a und b"



  • klassenmethode schrieb:

    DerGerd schrieb:

    a&&b||!c
    Kann mir das jemand vielleicht erklären? Ich raff es nicht

    in der Aussagenlogik ist !x || y = x -> y

    Also angewandt auf das obige Beispiel:
    c -> a&&b
    "aus c folgen a und b"

    Bitte was? Dort steht ganz klar dass a und b wahr sein müssen oder c nicht wahr sein darf. Da folgt nichts aus irgendetwas.



  • inflames2k schrieb:

    Da folgt nichts aus irgendetwas.

    doch, das stimmt schon so.

    "c -> a" ist äquivalent zu "!c || a" bzw. "a || !c"

    wenn wir jetzt "a" durch einen Ausdruck ersetzen, erhalten wir

    "c -> (a && b)" ist äquivalent zu "!c || (a && b)" bzw. "(a && b) || !c"



  • "aus x folgt y" ist wahr für alle 4 Kombinationen von x und y mit Ausnahme der Kombination x=1, y=0.
    Also x -> y = !(x && !y) = !x || y



  • Na gut meinetwegen, ist aber keine Variante wie ich das wörtlich ausdrücken würde.



  • DerGerd schrieb:

    a&&b||!c
    Daraus kann man doch bestimmt nicht einfach "a und b oder nicht c" machen, oder ?

    Jo.

    a&&b||!c
    

    wird zu

    a and b or not c
    

    und fertig ist der Lack.

    Im Falle von standardverweigernden Compilern kann

    #include <iso646.h>
    

    helfen.


Anmelden zum Antworten