Найти в Дзене
Работа, учёба и отдых

Построение в среде программирования PC WorX функциональных блоковых диаграмм для логических функций в виде нормальных форм

Для логических функций, заданных вектором значений, запишите СДНФ (СКНФ), определите сокращённую дизъюнктивную нормальную форму (сокр. ДНФ), а также полином Жегалкина (алгебраическая нормальная форма).

Изобразите в среде программирования PC WorX функциональные блоковые диаграммы, соответствующие СДНФ, СКНФ, сокр. ДНФ и полиномe Жегалкина (алгебраическая нормальная форма) формулы F (сразу 4 на одной рабочей области).

Составьте таблицы истинности и используйте их для проверки в режиме отладки составленные в среде программирования PC WorX функциональные блоковые диаграммы.

Пример выполнения лабораторной работы

Для примера рассмотрим вариант вектора значений F = (01100100).

Таблица истинности, соответствующая формулы F= (01100100), представляет собой таблицу следующего вида (табл. 1).

Таблица истинности
Таблица истинности

Для составления формулы в виде СДНФ для формулы, не соответствующей тождественно ложной (противоречию) булевой формулы, необходимо выбрать выражения, соответствующие строкам, где формулы истинны, и соединить их операцией "Логическая дизъюнкция", при этом если в какой-либо строке логическая переменная имеет ложное значение, то в соответствующем выражении она используется с инверсией (в табл. 2 показаны всевозможные «навешивания» инверсии над логическими переменными для построения СДНФ).

-2

Обозначим полученную СДНФ через F1.

Для составления формулы в виде СКНФ для формулы, не соответствующей тождественно истинной (тавтологии) булевой формулы, необходимо выбрать выражения, соответствующие строкам, где формулы ложны, и соединить их операцией "Логическая конъюнкция", при этом если в какой-либо строке логическая переменная имеет истинное значение, то в соответствующем выражении она используется с инверсией (в табл. 3 показаны всевозможные выражения для построения СКНФ).

-3

Обозначим полученную СКНФ через F2.

-4

Получим полином Жегалкина (алгебраическую нормальную форму для формулы F= (01100100)). Заполним таблицу (табл. 4) по следующим правилам:

1. Первые четыре столбца взяты из условия (заполняются стандартным образом).

2. В пятом столбце строится треугольник Паскаля: верхняя строка та­кого треугольника представляет собой строку значений исходной формулы ; в каж­дой строке, начиная со второй, любой элемент треугольника равен сумме по модулю 2 (XOR) двух элементов предыдущей строки, расположенной над ним, т.е. элементы второй и последующих строк определяются по следующим правилам: 0 + 1 = 1, 1 + 0 = 1, 0 + 1 = 1, 1 + 1 = 0, 1 + 0 = 1, 0 + 0 = 0, 0 + 1 = 1.

3. В шестом столбце указаны конъюнкции переменных, значения ко­торых в одном из первых трёх столбцов равны 1 (заметим, что набору (0, 0, 0) соот­ветствует слагаемое 1).

-5

Проверим правильность полученного полинома Жегалкина построением таблицы истинности (табл. 5).

-6

Результат таблицы 5 показывает, что полином Жегалкина для формулы F= (01100100) определён верно.

Изобразим в среде программирования PC WorX функциональные блоковые диаграммы для СДНФ F1, СКНФ F2, сокр. ДНФ F3 и полинома Жегалкина F4 для логической функции, заданной вектором значений, F= (01100100).

Проверим правильность построения функциональных блоковых диаграмм в режиме отладки:

Рис. 1. Функциональная блоковая диаграмма для набора (0, 0, 0)
Рис. 1. Функциональная блоковая диаграмма для набора (0, 0, 0)
Рис. 2. Функциональная блоковая диаграмма для набора (0, 0, 1)
Рис. 2. Функциональная блоковая диаграмма для набора (0, 0, 1)
Рис. 3. Функциональная блоковая диаграмма для набора (0, 1, 0)
Рис. 3. Функциональная блоковая диаграмма для набора (0, 1, 0)
Рис. 4. Функциональная блоковая диаграмма для набора (0, 1, 1)
Рис. 4. Функциональная блоковая диаграмма для набора (0, 1, 1)
Рис. 5. Функциональная блоковая диаграмма для набора (1, 0, 0)
Рис. 5. Функциональная блоковая диаграмма для набора (1, 0, 0)
Рис. 6. Функциональная блоковая диаграмма для набора (1, 0, 1)
Рис. 6. Функциональная блоковая диаграмма для набора (1, 0, 1)
Рис. 7. Функциональная блоковая диаграмма для набора (1, 1, 0)
Рис. 7. Функциональная блоковая диаграмма для набора (1, 1, 0)
Рис. 8. Функциональная блоковая диаграмма для набора (1, 1, 1)
Рис. 8. Функциональная блоковая диаграмма для набора (1, 1, 1)

Варианты для самостоятельного выполнения лабораторной работы:

-15

Варианты для самостоятельного выполнения лабораторной работы:

-16