Программа: таблица истинности для выражения с тремя операциями
Условие
Логическая функция F от четырёх переменных x, y, z, w задаётся выражением
(x ◇1 y) ◇2 (z ◇3 w),
где каждая из трёх операций ◇1, ◇2, ◇3 — одна из пяти логических операций:
and — конъюнкция (a ∧ b);
or — дизъюнкция (a ∨ b);
imp — импликация (a → b);
eqv — эквивалентность (a ≡ b);
xor — исключающее ИЛИ (a ⊕ b; истинно, когда значения a и b различны).
Напишите программу, которая строит таблицу истинности функции F и выводит все наборы значений переменных, на которых F = 0.
Входные данные: одна строка — три слова ◇1 ◇2 ◇3 через пробел (каждое — одно из and, or, imp, eqv, xor).
Выходные данные: для каждого набора, на котором F = 0, — отдельная строка из четырёх чисел x y z w (0 или 1) через пробел. Наборы выводятся в порядке возрастания двоичного числа xyzw (от 0000 к 1111). Последней строкой выведите количество таких наборов.
Пример.
Входные данные:
imp and xorВыходные данные:
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 1 1
10