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) ...
-
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.