1. С помощью таблиц соответствия. Таблица для заданной функции составляется на эвм.
2. Использованием законов Моргана и перехода от ДНФ к СДНФ
Вариант 1 c) A A d) |
Вариант 2
|
Вариант 3
d) ) |
Вариант 4
|
Вариант 5
d) |
Вариант 6
d) |
Вариант 7
d) |
Вариант 8
d) |
Вариант 9
d) |
Вариант 10
__ _____ d) x2x1x3(x1x2) |
Вариант 11
d)(x3x1) |
Вариант 12
d)x3 |
Вариант 13
d)(x2x1) |
Вариант 14
d) |
Вариант 15
d)) |
|
4. Методические указания
Для получения отрицания, импликации, эквивалентности, дизъюнкции, конъюнкции производятся соответствующие операции Вывод булевых функций осуществляется следующим образом:
writeln(' ТАБЛИЦЫ ИСТИННОСТИ ');
writeln(' для следующего выражения 1 ');
writeln(' (A AND B) OR (A AND B) EQV A');
writeln;
for a:=1 downto 0 do
for b:=1 downto 0 do
begin
write(' (',a,' ',kon(a,b),' ',b,')',' ',diz(kon(a,b),kon(a,otr(b))));
write(' (',a,' ',kon(a,otr(b)),' ',otr(b),') ', ekv(diz(kon(a,b),kon(a,otr(b))),a),' ',a);
writeln;
end;
Программа должна содержать процедуры формирования функций, процедур вывода на экран, процедур конъюнкции, дизъюнкции, импликации, эквивалентности. В основной программе должен содержатся вызов этих процедур в необходимом порядке.
Пример программы на языке PASCAL иллюстрирующий вывод таблицы истинности для следующей операции:
(Q S) (Q S)
program log1;
uses crt;
var
q,s,k:boolean;
function imp(a,b:boolean):boolean;{Функция, реализующая операцию импликация}
begin
if (a = true) and (b = false) then imp:=false else imp:=true;
end;
begin
clrscr;
writeln(' _ _ );
writeln('Q S (Q and S) (Q or S));
for q:=false to true do {Получение значения арг. Q}
for s:=false to true do {Получение значения арг. P}
begin
k:=imp(((not(q))and(s)),((q)or(not(s)));{Получение текущего результата}
writeln(q,' ',s,' ',k);{{Вывод текущего результата}
end;
end.
Примеры процедур отрицания, конъюнкции, дизъюнкции, эквивалентности, импликации на языке Паскаль:
Отрицание:
function otr(a:byte):byte;
begin
if a=0 then otr:=1 else otr:=0;
end;
Конъюнкция:
function kon(a,b:byte):byte;
begin
if (a=1) and (b=1) then kon:=1 else kon:=0;
end;
Дизъюнкция:
function diz(a,b:byte):byte;
begin
if (a=0) and (b=0) then diz:=0 else diz:=1;
end;
Эквивалентность:
function ekv(a,b:byte):byte;
begin
if (a=1) and (b=1) or (a=0) and (b=0) then ekv:=1 else ekv:=0;
end;