Ik ben nog een beginner met Java, dus sorry als dit een stomme vraag is.
Ik ben bezig met een programmatje schrijven dat voor een logische rij in disjunctieve normaalvorm de boolese waarde er van uitrekent.
in mijn programma zet ik de rij eerst om naar een string met de juiste logische operatoren, en wil deze daarna door java een waarheidswaarde laten toekennen.
dit laatste wil die echter niet doen.
als ik dit bijvoorbeeld invul:
String valuatie2 = "(true && true) || (!true && !true) || (!true && true)";
System.out.println(valuatie2);
resulteert dit in: (true && true) || (!true && !true) || (!true && true)
terwijl als ik het zo invul
System.out.println((true && true) || (!true && !true) || (!true && true));
dit resulteert in: true
enig idee hoe ik dit kan oplossen?
hieronder mijn programma:
public class Sat {
public static void main(String [] args) {
System.out.println();
// hier voeren we de rij in en de valuatie in
int rij[][] = {{1,2},{-1,-2},{-1,2}};
boolean valuatie [] = {true, true};
String valuatie2 = "";
for(int i=0; i < rij.length; i++) {
valuatie2 = (valuatie2 + "(" );
for(int j=0; j < rij[i].length; j++) {
if(rij[i][j] < 0) {
valuatie2 = valuatie2 + "!" + valuatie[j];
}
else {
valuatie2 = valuatie2 + valuatie[j];
}
if(j < (rij[i].length - 1)) valuatie2 = valuatie2 + " && ";
}
valuatie2 = valuatie2 + ")";
if(i < (rij.length - 1)) valuatie2 = valuatie2 + " || ";
}
System.out.println(valuatie2);
}
}
Ik ben bezig met een programmatje schrijven dat voor een logische rij in disjunctieve normaalvorm de boolese waarde er van uitrekent.
in mijn programma zet ik de rij eerst om naar een string met de juiste logische operatoren, en wil deze daarna door java een waarheidswaarde laten toekennen.
dit laatste wil die echter niet doen.
als ik dit bijvoorbeeld invul:
String valuatie2 = "(true && true) || (!true && !true) || (!true && true)";
System.out.println(valuatie2);
resulteert dit in: (true && true) || (!true && !true) || (!true && true)
terwijl als ik het zo invul
System.out.println((true && true) || (!true && !true) || (!true && true));
dit resulteert in: true
enig idee hoe ik dit kan oplossen?
hieronder mijn programma:
public class Sat {
public static void main(String [] args) {
System.out.println();
// hier voeren we de rij in en de valuatie in
int rij[][] = {{1,2},{-1,-2},{-1,2}};
boolean valuatie [] = {true, true};
String valuatie2 = "";
for(int i=0; i < rij.length; i++) {
valuatie2 = (valuatie2 + "(" );
for(int j=0; j < rij[i].length; j++) {
if(rij[i][j] < 0) {
valuatie2 = valuatie2 + "!" + valuatie[j];
}
else {
valuatie2 = valuatie2 + valuatie[j];
}
if(j < (rij[i].length - 1)) valuatie2 = valuatie2 + " && ";
}
valuatie2 = valuatie2 + ")";
if(i < (rij.length - 1)) valuatie2 = valuatie2 + " || ";
}
System.out.println(valuatie2);
}
}