hallo,
ich muss eine wahrheitstabelle als java-programm schreiben.
das hier ist der ausdruck:
(¬(A \/ B) \/ (C /\ D)) ⇒ ((A /\ ¬B) /\ A)
die teilterme sollen im programme ebenfalls ausgedruckt werden.
ich habe mein programm geschrieben, aber bekomme ständig falsche wahrheitswerte heraus.
könnte mir jmd bei der korrektur helfen?!
ich muss eine wahrheitstabelle als java-programm schreiben.
das hier ist der ausdruck:
(¬(A \/ B) \/ (C /\ D)) ⇒ ((A /\ ¬B) /\ A)
die teilterme sollen im programme ebenfalls ausgedruckt werden.
ich habe mein programm geschrieben, aber bekomme ständig falsche wahrheitswerte heraus.
könnte mir jmd bei der korrektur helfen?!
Java:
import java.util.Scanner;
public class wahrheitstabelle {
public static void main (String[] argv) {
Scanner eingabe = new Scanner(System.in);
boolean [] a = {true, false};
boolean [] b = {true, false};
boolean [] c = {true, false};
boolean [] d = {true, false};
boolean e,f,g,h,m;
System.out.println("a \t b \t c \t d \t !(a v b) (c & d) !(a v b) v (c & d) (a & !b) (a & !b) & a implikation");
for (int i = 0; i<2; i++) {
for (int j = 0; j<2; j++) {
for (int k = 0; k<2; k++) {
for (int l = 0; l<2; l++) {
if (a[0]||b[0]) { //!(a v b)
e = false;
}
else {
e = true;
}
if (c[0] && d[0]) { //(c & d)
f = true;
}
else {
f=false;
}
if (e==true || f==true) { //!(a v b) v (c & d)
g = true;
}
else {
g=false;
}
if (a[0]&&b[1]) { //(a & !b)
h = true;
}
else {
h = false;
}
if (h=true&&a[0]) { //(a & !b) & a
m = true;
}
else {
m = false;
}
System.out.println(a[i]+"\t "+b[j]+"\t "+c[k]+"\t "+d[l]+"\t"+ e +"\t"+ f +"\t"+ g +"\t"+ h +"\t"+ m );
}
}
}
}
} // main
} // class wahrheitstabelle