Crie um método iterativo que recebe uma string contendo uma expressão
booleana e o valor de suas entradas e retorna um booleano indicando se a expressão é verdadeira
ou falsa. Cada string de entrada é composta por um número inteiro n indicando o número de
entradas da expressão booleana corrente. Em seguida, a string contém n valores binários (um
para cada entrada) e a expressão booleana.
Eu não tenho a mínima idéia de como começar, alguma luz?
Narclk
Agosto 14, 2016, 5:44pm
#2
Veja se o código abaixo pode te ajudar.
`import java.util.Scanner;
public class Principal {
static private boolean getExp(String expressao, String valor1, String valor2, String resultado) {
boolean r = false;
if (expressao.contains("+")) {
if (valor1.equals(valor2) && valor1.equals("0")) {
r = (resultado.equals("0") ? true : false);
} else if (valor1.equals(valor2) && valor1.equals("1")) {
r = (resultado.equals("1") ? true : false);
} else {
r = (resultado.equals("1") ? true : false);
}
} else if (expressao.contains(".")) {
if (valor1.equals(valor2) && valor1.equals("0")) {
r = (resultado.equals("0") ? true : false);
} else if (valor1.equals(valor2) && valor1.equals("1")) {
r = (resultado.equals("1") ? true : false);
} else {
r = (resultado.equals("0") ? true : false);
}
}
return r;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Digite uma Expressão:");
String exp = in.nextLine();
System.out.println("Digite um valor Booleano:");
String valor1 = in.nextLine();
System.out.println("Digite um valor Booleano:");
String valor2 = in.nextLine();
System.out.println("Digite o resultado:");
String resultado = in.nextLine();
if (getExp(exp, valor1, valor2, resultado)) {
System.out.println(exp + " é verdadeiro");
} else {
System.out.println(exp + " é falso");
}
in.close();
}
}
`