Aussagenlogik in if-Bedingungen vereinfachen



  • Werte Forumsmitglieder,

    ich mache mir gerade Gedanken, wie man if-Bedingungen mit komplexerer Aussagenlogik vereinfachen kann. Ich bin mir hier nicht sicher, ob allein die Boolsche Algebra hilft. Folgende if-Bedingungen sind mir unklar oder bereiten mir Unsicherheit.

    1. if(b>a && c>b && a>=c)... else ...

    2. if(a==5 || (b>=10 && a==5)) ...

    3. if(b>3 || (a<6 && !(b>3))) ...

    Hier wäre mein Ansatz: if(b>3 || a<6) ...

    4. if (a>4 && ((b>5 && a<=4) || (c<6 && b>5)))

    Hier wäre mein Ansatz: if(a>4 && (b>5 && (a<=4 || c<6)))

    5. if(x&& ((y && z) || (z && !x) || x))

    Hier wäre mein Ansatz: if(x && ((y && z) || (z || x)))

    Hierbei ist zu erwähnen, dass a,b,c Integervariablen und x,y,z boolsche Variablen sind.

    Grüße
    Eric



  • 1. if(b>a && c>b && a>=c)... else ...

    1 ist immer 'false'.
    🙂



  • kakashi83 schrieb:

    2. if(a==5 || (b>=10 && a==5)) ...

    Mein Ansatz dazu:
    if(a == 5) ...


  • Mod

    Andromeda schrieb:

    1. if(b>a && c>b && a>=c)... else ...

    1 ist immer 'false'.
    🙂

    Sagte die Schere zum Stein, nachdem sie Papier abgefertigt hatte.



  • Belli schrieb:

    kakashi83 schrieb:

    2. if(a==5 || (b>=10 && a==5)) ...

    Mein Ansatz dazu:
    if(a == 5) ...

    Das entspricht der boolschen Kürzungsregel: X1 * (X2 + X1) = X1, oder?



  • kakashi83 schrieb:

    5. if(x&& ((y && z) || (z && !x) || x))

    Das ist das selbe wie if(x), wenn ich's richtig überblicke.



  • kv-diagramme sind dir ein begriff?



  • HansKlaus schrieb:

    kv-diagramme sind dir ein begriff?

    Ja.



  • wenn du die ausdrücke mit den integers durch einen booleschen ausdruck ersetzt, ob nun gedanklich oder wirklich im code, kannst du die aussagen damit doch prima vereinfachen. x>3 kann ja auch nur wahr oder falsch sein.


Log in to reply