Таблица правды для бинарной операции - PullRequest
0 голосов
/ 15 сентября 2018

Я новичок в кодировании.Пройду онлайн-курс и по какой-то причине не могу понять лабораторию на этой неделе.Нам нужно создать таблицу правды.Один для AND и один для OR.Некоторая часть кода дана нам, и идея состоит в том, чтобы использовать логическое значение.

, это то, что я имею до сих пор. Не так много, но любое руководство будет с благодарностью.Также, пожалуйста, будьте осторожны ... Я разобрался с лабораториями каждую неделю, но по какой-то причине я просто не понимаю эту.

public class TruthTables {

    public static void printTruthTableValue(boolean p, boolean q, String 
    logicalOperation)}

        printTruthTableValue(true,true, logicalOperation);
        printTruthTableValue(true,false, logcialOperation);
        printTruthTableValue(false,true, logcialOperation);
        printTruthTableValue(false,false, logicalOperation);
    }   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        printTruthTable("and");
        System.out.println();
        printTruthTable("or");
    }

Выход должен быть

p  q  p AND q
-------------
T  T  T
T  F  F
F  T  F
F  F  F

, а для ИЛИ -

p  q  p OR q
-------------
T  T  T
T  F  T
F  T  T
F  F  F

1 Ответ

0 голосов
/ 15 сентября 2018

Как сказал Тимин, у вас, похоже, отсутствует определение для printTruthTable, а ваше определение для printTruthTableValue кажется рекурсивным и немного запутанным. Было бы также полезно, если у вас есть дополнительная информация о проблеме. Тем не менее, я ожидаю, что вы хотите что-то с эффектом:

public class TruthTables {

    public static void printTruthTable(String logicalOperation) {
        boolean rows[][] = {{true, true, false},
                            {true, false, false},
                            {false, true, false},
                            {false, false, false}};

        if (logicalOperation.equals("and")) {

            System.out.println("p  q  p AND q");
            System.out.println("-------------");

            for (boolean[] row : rows) {
                row[2] = row[0] && row[1];
            }

        } else if (logicalOperation.equals("or")) {
            // A similar sort of thing...

        } else {
            throw new IllegalArgumentException("Not a valid boolean operator");
        }

        // Print table

        for (boolean[] row : rows) {
            StringBuilder sb = new StringBuilder();

            for (boolean value : row) {
                sb.append(value ? "T " : "F ");
            }

            System.out.println(sb);
        }
    }


    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        printTruthTable("and");
        System.out.println();
        printTruthTable("or");
    }
}
...