В программе используется функция print.В первом случае она выводит на дисплей символы, и мы берем их в апострофы'x1','x2','f()'. Во втором случае выводит на дисплей значения аргументов и самой булевой функции. В программе используется также вложенный оператор for:по i внешний цикл, по j внутренний. Задаем начальное значение: x1:=false: x2:=false, (i=1,j=1), меняем x2на true (i=1,j=2); меняем x1на true, x2:=false, (i=2,j=1); затем опять меняем x2на true (i=2,j=2).
Рассмотрим еще пример. Пусть функция задана таблицей истинности:
СДНФ функции имеет вид:
Перейдем к полиному Жегалкина:
Получили полином третьей степени. СКНФ функции имеет вид:
Минимизируем СДНФ функции методом Квайна. Проведем операции неполного склеивания.
1..
2..
3..
4..
Полученные импликанты больше не склеиваются между собой, следовательно мы получили простые импликанты. Строим таблицу покрытия (импликантную матрицу).
+
+
-
-
-
-
+
-
+
-
-
-
+
-
+
-
-
-
+
+
В клетке импликантной матрицы стоит «+», если простая импликанта содержится в конституенте единицы. Простая импликанта равняется единице на тех же наборах, на которых равны единице, содержащие ее конституенты. Для того, чтобы получить минимальную дизъюнктивную нормальную форму заданной булевой функции, достаточно найти минимальное число импликант, которые совместно покрывают все единицы функции (покрывают крестиками все колонки импликантной матрицы).
МДНФ может быть несколько.
Минимизируем методом Карно-Вейча.
Получаем: .
Или так:
Имеем:
Задание:
Для заданной булевой функции:
1. построить таблицу истинности;
2. представить функцию в совершенной дизъюнктивной нормальной форме, построить таблицу истинности;
3. представить функцию в совершенной конъюнктивной нормальной форме, построить таблицу истинности;
4. представить функцию в виде полинома Жегалкина, построить таблицу истинности;
5. исследовать функцию на принадлежность пяти замкнутым классам;