Создание таблиц истинности целых чисел с помощью логических операций

Я пытаюсь создать таблицу истинности «целых чисел». Прежде всего, мне нужно иметь 2 списка целых чисел, как в этой таблице:

1 1   
1 2
2 1
2 2

Затем мне нужно использовать логические операторы для создания такой таблицы:

1 1 2 1 2 2
1 2 1 2 2 1
2 1 1 2 1 2
2 2 2 1 1 1

Я проверил несколько связанных вопросов, например: Создание таблиц истинности на Java или булевые операции с целыми числами, но я до сих пор не знаю, как написать это в VB.net. Так что я ценю вашу помощь и время. :) Спасибо!


person Behnood    schedule 04.03.2014    source источник
comment
Я не понимаю логики вашей таблицы истинности.   -  person Tim Schmelter    schedule 04.03.2014
comment
С какой частью этой задачи у вас возникают проблемы? Например, возникают ли у вас трудности с генерацией целых чисел, выполнением логических операций или выводом таблицы чисел или результатов?   -  person Steven Doggart    schedule 04.03.2014
comment
логика моей таблицы такова: если x = 1, то истинно, а если x = 2, то ложно. Я не знаю, как составлять списки и формировать таблицу. Логические операции - это xor, xnor и not.   -  person Behnood    schedule 04.03.2014
comment
Обычно 0 - это ложь, а 1 (или ненулевое значение) - истина. Вы определенно выбрали для этого какие-то странные числа.   -  person Douglas Barbin    schedule 04.03.2014
comment
Итак, что вы пробовали и с чем конкретно у вас проблемы? Что насчет того, что вы пробовали, не сработало? По-прежнему очень неясно, о чем вы спрашиваете, если только вы не просите кого-то написать весь код для вас, то есть это не одобряется.   -  person Steven Doggart    schedule 04.03.2014
comment
Я просто знал алгоритм, и я новичок в vb.net.   -  person Behnood    schedule 04.03.2014


Ответы (1)


Я предполагаю, что вы хотите Xor использовать логические значения, а не двоичные представления самих целых чисел. Итак, мой ответ основан на этом предположении.

Если вы используете 1 для True и 2 для False, я бы посоветовал вам написать несколько функций преобразования.

Private Function IntegerToBoolean(number As Integer) As Boolean
    Return If(number = 1, True, False)
End Function

Private Function BooleanToInteger(bool As Boolean) As Integer
    Return If(bool, 1, 2)
End Function

затем, используя их, довольно просто написать другие свои функции:

Private Function IntegerXor(int1 As Integer, int2 As Integer) As Integer
    Dim bool1 As Boolean = IntegerToBoolean(int1)
    Dim bool2 As Boolean = IntegerToBoolean(int2)
    Dim boolResult as Boolean = (bool1 Xor bool2)
    Return BooleanToInteger(boolResult)
End Function

и Т. Д.

Очевидно, вы должны сделать это для каждого из ваших чисел в таблице и создать дополнительные функции для And и Or.

person Douglas Barbin    schedule 04.03.2014
comment
Я только что понял, что название этой последней функции IntegerXor немного вводит в заблуждение ... - person Douglas Barbin; 04.03.2014