Реализация функции импликации с помощью других логических функций алгебры логики

Страницы работы

Содержание работы

Введение

Для формального описания работы цифровых аппаратов применяют алгебру логики (алгебра Буля), являющуюся одной из основных составляющих математической логики.

Основным элементом алгебры логики является высказывание.

Высказывание – некоторое предложение, о котором можно сказать, что ложно(0) или истинно(1).

Тема данной курсовой работы «Реализовать функции импликации…» подразумевает решение вышеуказанной задачи с использованием инструментария языка программирования высокого уровня - Турбо-Паскаля.

Математическая постановка задачи.

Функция импликации – функция от двух логических переменных (x=|1,0|) ложная тогда и только тогда, когда x1=1, а x2=0(см. Табл 1).

x1x2

00

01

10

11

Таблица 1.

 
F(x1,x2)

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

Из таблицы видно, что функция импликации удачно реализована.

Схема алгоритма.


 


Схема алгоритма функции y

 
 



Заключение

Полученная программа доказывает, что любая логическая функция(в нашем случае импликация) может быть реализована с помощью других логических функций.

Любая функция алгебры логики может быть реализована через:

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

---------------------------------------

Похожие материалы

Информация о работе