Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Imp1_zso17_taak1 {
- public static void main (String[] args) {
- /* if (args.length != 4 ) {
- System.out.println("false");
- return;
- }
- String s = args[0];
- String waarde1 = args[1];
- String waarde2 = args[2];
- String waarde3 = args[3];
- */
- String[][] truthy = {
- {"p", "true", "false", "false"},
- {"q", "false", "true", "false"},
- {"r", "false", "false", "true"},
- {"true", "false", "false", "false"},
- {"(!false)", "false", "false", "false"},
- {"(!(p&(q&r)))", "false", "false", "false"},
- {"(p&p)", "true", "false", "false"},
- {"(p&q)", "true", "true", "false"},
- {"((!p)|q)", "false", "false", "true"},
- {"((!p)|q)", "false", "true", "true"},
- {"((!p)|q)", "true", "true", "true"},
- {"( (p&r) | q )", "true", "true", "false"},
- {"(p|(!p))", "false", "false", "false"}
- };
- for ( int i = 0; i < truthy.length; i++ ) {
- String s = truthy[i][0];
- String waarde1 = truthy[i][1];
- String waarde2 = truthy[i][2];
- String waarde3 = truthy[i][3];
- String noSpaces = "";
- noSpaces = removeSpaces(s);
- if ( !(noSpaces.equals("")) ) {
- if( checkInput(noSpaces, waarde1, waarde2, waarde3) ) {
- boolean b1 = waardeBepalenString(waarde1);
- boolean b2 = waardeBepalenString(waarde2);
- boolean b3 = waardeBepalenString(waarde3);
- if ( evaluateProp(noSpaces, b1, b2, b3) ) {
- System.out.println("true");
- }
- else {
- System.out.println("false");
- }
- }
- else {
- System.out.println("false");
- }
- }
- else {
- System.out.println("false");
- }
- }
- }
- static boolean evaluateProp(String s, boolean b1, boolean b2, boolean b3) {
- if ( s.equals("p")) {
- return b1;
- }
- if ( s.equals("q")) {
- return b2;
- }
- if ( s.equals("r")) {
- return b3;
- }
- if ( s.equals("true")) {
- return true;
- }
- if ( s.equals("false")) {
- return false;
- }
- else {
- if ( s.charAt(0) == '(' && s.charAt(s.length()-1) == ')' ) {
- int diepte = 0;
- for ( int i = 1; i < s.length()-1; i++ ) {
- if ( s.charAt(i) == '(' ) {
- diepte++;
- }
- if ( s.charAt(i) == ')' ) {
- diepte--;
- }
- char symbool;
- if ( diepte == 0 && (s.charAt(i) == '&' || s.charAt(i) == '!' || s.charAt(i) == '|' ) ) {
- symbool = s.charAt(i);
- if ( symbool == '&' ) {
- return(evaluateProp(s.substring(1,i), b1, b2, b3) && evaluateProp(s.substring(i+1,s.length()-1), b1, b2, b3));
- }
- else {
- if ( symbool == '|' ) {
- return(evaluateProp(s.substring(1,i), b1, b2, b3) || evaluateProp(s.substring(i+1,s.length()-1), b1, b2, b3));
- }
- else {
- if ( symbool == '!' ) {
- return(evaluateProp(s.substring(i+1,s.length()-1), b1, b2, b3));
- }
- }
- }
- }
- else {
- return false;
- }
- }
- }
- else {
- return false;
- }
- }
- return false;
- }
- static boolean waardeBepalenString(String s) {
- if ( s.equals("true") ) {
- return true;
- }
- else {
- return false;
- }
- }
- static boolean checkInput(String s, String b1, String b2, String b3) {
- if ( elementProp(s) && checkArguments(b1, b2, b3) ) {
- return true;
- }
- else {
- return false;
- }
- }
- static boolean checkArguments(String b1, String b2, String b3) {
- String correct = "true";
- String incorrect = "false";
- if ( (b1.equals(correct)|| b1.equals(incorrect)) && (b2.equals(correct)|| b2.equals(incorrect)) && (b3.equals(correct)|| b3.equals(incorrect)) ) {
- return true;
- }
- else {
- return false;
- }
- }
- static boolean elementProp(String s) {
- if ( s.equals("") || s.equals("true") || s.equals("false") || s.equals("p") || s.equals("q") || s.equals("r") ) {
- return true;
- }
- else {
- if ( s.charAt(0) == '(' && s.charAt(s.length()-1) == ')' ) {
- int diepte = 0;
- for ( int i = 1; i < s.length()-1; i++ ) {
- if ( s.charAt(i) == '(' ) {
- diepte++;
- }
- if ( s.charAt(i) == ')' ) {
- diepte--;
- }
- if ( diepte == 0 && (s.charAt(i) == '&' || s.charAt(i) == '!' || s.charAt(i) == '|' ) ) {
- return(elementProp(s.substring(1,i)) && elementProp(s.substring(i+1,s.length()-1)));
- }
- }
- }
- else {
- return false;
- }
- }
- return false;
- }
- static String removeSpaces(String s) {
- String newString = "";
- for ( int i = 0; i < s.length(); i++ ) {
- if ( s.charAt(i) != ' ' ) {
- newString += s.charAt(i);
- }
- }
- return newString;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement