Реализация суммы по модулю 2 на элементах Шеффера

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

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

Министерство образования Российской Федерации.

Рязанская Государственная Радиотехническая Академия.

Кафедра САПР ВС.

Пояснительная  записка

                                   к курсовой работе                  

                                          по курсу информатики

на тему:  « Реализация суммы по модулю 2

      на элементах Шеффера».

                                  Выполнила студентка группы 146

                                                                    Макаркина Е.А.

                                   Проверил      Орехов В.В.

Рязань 2002 год.


Задание

Реализовать сложение по модулю два на элементах Шиффера.

Содержание

Введение.                                                                                          3

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

Алгоритм программы (Блок-схема).                                              5

Приложение 1. ( Текст  программы).                                             6

Приложение 2. (Результат машинного решения).                          8

Литература.                                                                                      9


Введение.

   Тема данной курсовой работы – «реализация суммы по модулю 2 на элементах Шеффера» на языке программирования Турбо - Паскаль. То есть, коротко говоря, перед нами поставлена следующая задача: необходимо выразить логическую функцию  «сложение по модулю 2» через функцию  Шеффера, используя тождественные преобразования алгебры – логики, после чего полученный математический алгоритм надо преобразовать в алгоритм программы и, собственно говоря, реализовать эту программу на компьютере.

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

Чтобы выразить одну логическую функцию  через другую, необходимо иметь хотя бы некоторое представление о том, что эти функции из себя представляют. Поэтому рассмотрим таблицы истинности функций «сложение по модулю 2» и Шеффера, а также способы их выражения в базисе «AND-OR-NOT».

функция сложения по модулю 2

X1

X2

X1X2

0

0

0

0

1

1

1

0

1

1

1

0

функция Шеффера

X1

X2

X1/X2

0

1

1

0

1

1

1

0

1

1

1

0

Используя математические преобразования, получаем следуещее тождественное выражение:

  X1x2=(((x1/x1)/(x2/x2))/(x1/x2))/(((x1/x1)/(x2/x2))/(x1/x2))

То есть схематически  это можно изобразить следующим образом:

                  <= Элемент Шеффера


Алгоритм программы (Блок-схема)

Приложение 1.

( Текст  программы.)

Program kyrsovaya;

 uses crt;      {подключение библиотеки crt }

 var              {раздел описания переменных }

 x1,              {исходные данные}

 x2,              {исходные данные}

 y1,              {-------------------------------------------------- }

 y2,              {                                                                   }

 y3,              { промежуточные результаты (см.схему)}

 y4,              {                                                                   }

 y5,              {---------------------------------------------------}

 y6:integer;                {конечный результат}

 flag:boolean;            {логическая переменная}

 function fsh(x1,x2:integer):integer;        {Функция Шеффера}

  begin

    if (x1=0)and(x2=0) then fsh:=1;

    if (x1=1)and(x2=0) then fsh:=1;

    if (x1=0)and(x2=1) then fsh:=1;

    if (x1=1)and(x2=1) then fsh:=0;

   end;

 begin                                  {начало основной части программы}

  clrscr;                                {очистка экрана}

  writeln('ПРОГРАММА РЕАЛИЗАЦИИ СУММЫ ПО

                           МОДУЛЮ 2 НА ЭЛЕМЕНТАХ ШЕФФЕРА ');

  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;

           end;

   until flag;

  y1:=fsh(x1,x1);                     {------------------------------------------}

  y2:=fsh(x2,x2);                     {                                                        }

  y3:=fsh(y1,y2);                     {вычесление суммы по модулю 2 }  

  y4:=fsh(x1,x2);                     {                с помощью элементов  }

  y5:=fsh(y3,y4);                     {       Шеффера                                }                     

  y6:=fsh(y5,y5);                     {------------------------------------------}

  writeln('---------------------------------------------');

  writeln('ИТОГОВЫЙ РЕЗУЛЬТАТ- ',y6);

  readln;  {приостановка работы программы до нажатия

                                                  клавиши  [ENTER]}

end.

Приложение 2. (Результат машинного решения)

Программа, реализующая сложение по модулю 2 на элементах Шеффера.

Литература.

1) Фаронов В.В. «Турбо Паскаль 7.0 Начальный курс» Издательство «Нолидж» 1998 год

2) Фаронов В.В. «Турбо Паскаль 7.0 Практика    программирования» Издательство «Нолидж» 1998 год

3) Савельев А.Я. «Арифметические и логические основы цифровых автоматов» Москва 1980 год.

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

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