3. Отметить те строки таблицы истинности, на которых функция приняла значение 0;
4. Выписать для каждой отмеченной строки дизъюнкцию всех переменных следующим образом: если значение некоторой переменной в данной строке =0, то в дизъюнкцию включают саму переменную, если =1, то ее отрицание;
5. Все полученные дизъюнкции связать в конъюнкцию;
Листингпрограммы
#include <iostream.h>
#include <conio.h>
int OutputABC (int a, int b, int c, int x, int y)
{
cout << «(»;
if (a == 1) cout << «~Av»; else cout << «Av»;
if (b == 1) cout << «~Bv»; else cout << «Bv»;
if (c == 1) cout << «~C»; else cout << «C»;
cout <<»)»;
if (y<x-1) cout << «*»,
y++;
return(y);
};
void main ()
{const int K=8; const int N=3;
int i, j, b[N] [K], x(0), y(0);
i=0;
for (j=0; j<K; j++)
{
cout << «Vvedite znachenie funkcii na dannom nabore» << endl;
cin >> b[0] [j];
while (! (b[0] [j] == 1 || b[0] [j] == 0))
cout << endl << «Fatal error!!! Please input only 0 or 1» << endl, cin >> b[0] [j];
}
cout << endl;
i=1;
for (j=0; j<K; j+=2)
b[i] [j]=0;
for (j=1; j<K; j+=2)
b[i] [j]=1;
i=2;
for (j=0; j<K; j+=4)
b[i] [j]=0;
for (j=1; j<K; j+=4)
b[i] [j]=0;
for (j=2; j<K; j+=4)
b[i] [j]=1;
for (j=3; j<K; j+=4)
b[i] [j]=1;
i=3;
for (j=0; j<4; j++)
b[i] [j]=0;
for (j=4; j<K; j++)
b[i] [j]=1;
for (j=0; j<K; j++)
if (b[0] [j] == 0) x++;
cout<< «A B C f\n\n»;
cout<<«0 0 0 «<<b[0] [0]<<»\n0 0 1 «<<b[0] [1]<<»\n0 1 0 «<<b[0] [2]
<<»\n0 1 1 «<<b[0] [3]<<»\n1 0 0 «<<b[0] [4]<<»\n1 0 1 «<<b[0] [5]
<<»\n1 1 0 «<<b[0] [6]<<»\n1 1 1 «<<b[0] [7]<<»\n\n»;
cout<< «F=»;
for (j=0; j<K; j++)
if (b[0] [j] == 0)
y=OutputABC (b[3] [j], b[2] [j], b[1] [j], x, y);
getch();
}
Тестирование программы
входные данные:
результат:
входные данные:
результат:
Заключение
булева функция программа переменная
В курсовой работе был реализован алгоритм представления булевых функций в СКНФ.
По данному алгоритму на языке С++ была написана программа, результат которой был продемонстрирован.
Список использованной литературы
1. Яблонский С.В. Введение в дискретную математику. – М.: Наука. – 1986
2. Н.А. Ахметова, З.М. Усманова Дискретная Математика Функции алгебры логики учебное электронное издание – Уфа – 2004