Для формального описания работы цифровых аппаратов применяют алгебру логики (алгебра Буля), являющуюся одной из основных составляющих математической логики.
Основным элементом алгебры логики является высказывание.
Высказывание – некоторое предложение, о котором можно сказать, что ложно(0) или истинно(1).
Тема данной курсовой работы «Реализовать функции импликации…» подразумевает решение вышеуказанной задачи с использованием инструментария языка программирования высокого уровня - Турбо-Паскаля.
Функция импликации – функция от двух логических переменных (x=|1,0|) ложная тогда и только тогда, когда x1=1, а x2=0(см. Табл 1).
x1x2 |
||||||
00 |
01 |
10 |
11 |
|||
|
1 |
1 |
0 |
1 |
Таким образом, нам необходимо получать 0 при наличие на первом входе(х1) «1», а на втором(х2) «0», используя функцию Y=X1X3 v X1X2 v X2X3 и операцию логического отрицания (НЕ).
Составим таблицу истинности для функции Y(X1,X2,X3)
X1 |
X2 |
X3 |
Y |
0 1 0 0 1 1 0 1 |
0 0 1 0 1 0 1 1 |
0 0 0 1 0 1 0 1 |
0 0 0 0 1 1 1 1 |
В связи с тем, что для организации импликации нам нужно только две переменные третья может принимать любое значение.
Комбинируя значения на входе функции Y и используя функцию отрицания можно добиться, чтобы выполнялась функция импликации.
Таковых комбинаций можно найти множество.
Вот один из вариантов реализации импликации.
X1®X2: F = Y( Y(x2;x1;1);Y(x2;x1;0);Y(x2,1,1))
Выделенные жирным – переменные, взятые с отрицанием.
Посмотрим на таблицу истинности описанной функции, согласно таблицы для Y(x1,x2,x3).
Y(x2;x1;1) |
Y(x2;x1;0) |
Y(x2,1,1) |
F |
||
X1 |
X2 |
||||
0 0 1 1 |
0 1 0 1 |
1 1 0 1 |
1 0 0 0 |
1 1 1 1 |
1 1 0 1 |
Из таблицы видно, что функция импликации удачно реализована.
|
Полученная программа доказывает, что любая логическая функция(в нашем случае импликация) может быть реализована с помощью других логических функций.
Любая функция алгебры логики может быть реализована через:
v И, ИЛИ, НЕ
v И, НЕ
v ИЛИ, НЕ
v функция Шеффера
v функция Пирса и Вебба
1) Фаронов В.В. «Турбо Паскаль 7.0 Начальный курс» Издательство «Нолидж» 1998 год
2) Фаронов В.В. «Турбо Паскаль 7.0 Практика программирования» Издательство «Нолидж» 1998 год
3) Савельев А.Я. «Арифметические и логические основы цифровых автоматов» Москва 1980 год.
Приложение. Текст программы.
program kurs1;
uses crt;
{реализация данной функции}
function y(x1,x2,x3:integer):integer;
begin
if (x1=0)and(x2=0)and(x3=0) then y:=0;
if (x1=1)and(x2=0)and(x3=0) then y:=0;
if (x1=0)and(x2=1)and(x3=0) then y:=0;
if (x1=0)and(x2=0)and(x3=1) then y:=0;
if (x1=1)and(x2=1)and(x3=0) then y:=1;
if (x1=1)and(x2=0)and(x3=1) then y:=1;
if (x1=0)and(x2=1)and(x3=1) then y:=1;
if (x1=1)and(x2=1)and(x3=1) then y:=1;
end;
{логическое отрицание}
function invert(x:integer):integer;
begin
if x=1 then invert:=0;
if x=0 then invert:=1;
end;
var
x1, {входные данные}
x2, {входные данные}
y1, y2, y3, {промежуточные результаты}
y4:integer; {итоговый результат}
flag:boolean;
begin
clrscr;
writeln('+----------------------------------------------------------------+');
writeln('| ПРОГРАММА РЕАЛИЗАЦИИ ИМПЛКАЦИИ | ');
writeln('+----------------------------------------------------------------+');
repeat
write(' Введите первую логическую (0,1) переменную ');readln(x1);
write(' Введите вторую логическую (0,1) переменную ');readln(x2);
if ((x1=0)or(x1=1)) and ((x2=0)or(x2=1))
then flag:=true
else begin
flag:=false;
writeln('---------------------------------------------------------------------');
writeln(' Вы ввели неправильные исходные данные! ');
writeln(' Повторите ввод.');
writeln('--------------------------------------------------------------------');
writeln;
end;
until flag;
{получение промежуточных результатов}
y1:=y(x2,invert(x1),1);
y2:=y(invert(x2),invert(x1),0);
y3:=y(x2,1,1);
{итоговый результат}
y4:=y(y1,y2,y3);
writeln('--------------------------------------------------------------------');
writeln(' Итоговый результат........... ',y4 );
writeln('--------------------------------------------------------------------');
readln;
end.
+---------------------------------+
| ПРОГРАММА РЕАЛИЗАЦИИ ИМПЛКАЦИИ |
+---------------------------------+
Введите первую логическую (0,1) переменную 0
Введите вторую логическую (0,1) переменную 1
---------------------------------------
Итоговый результат........... 1
---------------------------------------
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.