2016-04-02 7 views
1

Ich habe eine Frage für eine Aufgabe. Die Fragen sind im Wesentlichen folgende: Es gibt 2 ganzzahlige Variablen sagen A und B. Beide Integer enthalten Daten. eine Wahrheitstabelle verwenden, die, wenn überhaupt, der Anweisung prüft folgende IF entspricht:Wahrheitstabelle - Hilfe

if (!(A == 60 && B == 40)) 

- if (A != 60 || B != 40) 
- if (A == 60 && (!(B == 40))) 

Wie würde ich das angehen bitte. Alles Rat würde geschätzt werden. Ich denke, dass ich eine Tabelle mit drei Spalten erstellen muss - eine, die A genannt wird, eine andere B, und die dritte Spalte, die ERGEBNIS (JA ODER NEIN) genannt wird.

Die Aussage: if (!(A == 60 && B == 40)) - Ich bin nicht sicher, wie man den Teil if (! liest. Mit anderen Worten, der Teil A == 60 && B == 40 sagt mir im Wesentlichen, dass A gleich 60 sein muss UND GLEICHZEITIG B gleich 40 sein muss. Danach bin ich verwirrt. Jede Hilfe/Beratung bitte würde geschätzt werden.

Dank Chris

+2

[De Morgan Gesetze] (https://en.wikipedia.org/wiki/De_Morgan's_laws) – ThisClark

+0

if (NOT (Jane kann schwimmen und bernd ist 15 Jahre alt)) - können Sie das ableiten? –

+0

Vielen Dank - ThisClark. Und danke für den Link. Hoffe, du hast ein tolles Wochenende gegeben. – Chris

Antwort

0

Das ist wirklich nichts mit Java per se zu tun. Ja, Sie können das lösen, indem Sie die Wahrheitstabellen schreiben. Die bedeutet logische Negation oder nicht oder Sie können es sogar als gegenüber denken. Persönlich finde ich es hilfreich, alle Teile einer bestimmten Wahrheitstabelle zu erstellen.

a | b | !b  |  a & b  |  a & !b  |  !(a & b) 
---------------------------------------------------------------------------------------- 
A = 60 | B = 40 | !(B = 40) | (A = 60 & B = 40) | A = 60 & !(B = 40) | !(A = 60 & B = 40) 
    T | T |  F  |   T   |  F   |   F 
    T | F |  T  |   F   |  T   |   T 
    F | T |  F  |   F   |  F   |   T 
    F | F |  T  |   F   |  F   |   T 

sollten Sie beachten Sie Ihr spezielles Beispiel einem der De Morgan's Laws unterliegt.

enter image description here

P is A = 60 
Q is B = 40 
¬ is ! 
∧ is && 
∨ is || 

so ...

!(A && B) ist wirklich das gleiche wie !A || !B

Die Wahrheitstabelle Sie den Rest Sie, dieses Problem zu lösen wissen müssen, erzählt.

+0

Danke ThisClark. Zu guter Freund. Du hast es brillant erklärt. Ich danke dir sehr. Chris – Chris

+0

Gern geschehen. Wenn Sie dies als akzeptierte Antwort markieren (klicken Sie auf das Häkchen), erhalten Sie Ihre ersten Rep-Punkte und speichern diese in Ihrem Profil zur späteren Referenz, falls Sie diese jemals benötigen. – ThisClark

0

ich diesen Code hoffe, dass ich Hilfe erstellen Ihnen eine Vorstellung zu bekommen, ist dies eine einfache Code, um die Wahrheitstabelle unter Verwendung von binären (0 und 1) Zahlen anstelle von Boolean (TRUE, FALSE)

/** 
* Truth table for the logical operators. Using 
* zeros and ones. 
* 
* @ Samuel Mayol 
*/ 

public class LogicalOpTable { 
    public static void main(String[] args) { 

     boolean p, q; 
     byte p1, q1, pAndQ, pOrQ, pXORq, notP, pq; 

     System.out.println("Using 0s and 1s for the Truth Table:"); 
     System.out.println("P\tQ\tAND\tOR\tXOR\tNOT"); // using tabs \t 

     pq =1; 

     switch (pq) { // without break it will execute the whole swich case statements 
      case 1 : 
       p = true; q = true; 
       p1=(byte) (p?1:0); // The ? : operator in Java 
       q1=(byte) (q?1:0); // Short form for Java If statement 
       pAndQ=(byte) ((p&q)?1:0); 
       pOrQ=(byte) ((p|q)?1:0); 
       pXORq=(byte) ((p^q)?1:0); 
       notP= (byte) ((!p)?1:0); 

       System.out.print(p1 + "\t" + q1 + "\t"); 
       System.out.print(pAndQ + "\t" + pOrQ + "\t"); 
       System.out.println(pXORq + "\t" + notP); 
      case 2: 
       p = true; q = false; 
       p1=(byte) (p?1:0); // The ? : operator in Java 
       q1=(byte) (q?1:0); // Short form for Java If statement 
       pAndQ=(byte) ((p&q)?1:0); 
       pOrQ=(byte) ((p|q)?1:0); 
       pXORq=(byte) ((p^q)?1:0); 
       notP= (byte) ((!p)?1:0); 

       System.out.print(p1 + "\t" + q1 + "\t"); 
       System.out.print(pAndQ + "\t" + pOrQ + "\t"); 
       System.out.println(pXORq + "\t" + notP); 
      case 3: 
       p = false; q = true; 
       p1=(byte) (p?1:0); // The ? : operator in Java 
       q1=(byte) (q?1:0); // Short form for Java If statement 
       pAndQ=(byte) ((p&q)?1:0); 
       pOrQ=(byte) ((p|q)?1:0); 
       pXORq=(byte) ((p^q)?1:0); 
       notP= (byte) ((!p)?1:0); 

       System.out.print(p1 + "\t" + q1 + "\t"); 
       System.out.print(pAndQ + "\t" + pOrQ + "\t"); 
       System.out.println(pXORq + "\t" + notP); 
      case 4: 
       p = false; q = false; 
       p1=(byte) (p?1:0); // The ? : operator in Java 
       q1=(byte) (q?1:0); // Short form for Java If statement 
       pAndQ=(byte) ((p&q)?1:0); 
       pOrQ=(byte) ((p|q)?1:0); 
       pXORq=(byte) ((p^q)?1:0); 
       notP= (byte) ((!p)?1:0); 

       System.out.print(p1 + "\t" + q1 + "\t"); 
       System.out.print(pAndQ + "\t" + pOrQ + "\t"); 
       System.out.println(pXORq + "\t" + notP); 
     } 
    } 
} 
anzuzeigen

Das Ergebnis nach dem Ausführen dieses Codes ist:

Using 0s and 1s for the Truth Table: 
P Q AND OR XOR NOT 
1 1 1 1 0 0 
1 0 0 1 1 0 
0 1 0 1 1 1 
0 0 0 0 0 1