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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа Логическое отрицание и умножение

Информация:

Тип работы: курсовая работа. Добавлен: 03.09.2012. Сдан: 2011. Страниц: 7. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Реферат 
 

       Пояснительная записка содержит 24 страницы, 1 блок-схему,  
1 программу на языке Паскаль, 1 приложение (дискета с программой).
 

    ДВОИЧНАЯ  СИСТЕМА СЧИСЛЕНИЯ, алгебра логики, Логическая (булева) переменная, логическое отрицание, Конъюнкция (логическое умножение), БЛОК-СХЕМА. 

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

 

Содержание

Введение………………………………………………………………………...5

1 Спецификация  задачи ……………………………………………….………6
2 Математическая  постановка задачи ………………………………………..7
3 Описание методов  вычислительной математики,
  используемых  при решении….……………………………………………..8
4 Алгоритм решения  задачи (блок-схема).…....……………………………..14
5.Текст программы  на алгоритмическом языке. Описание программы……………………………………………….….………………….19
6.Результаты  тестирования программы…………………………………...…22
Заключение …………………………………………………………………....23
Список использованной литературы…………………………………………24
 

Введение 
 

       Целью данной курсовой работы является закрепление приобретенных на лабораторных занятиях навыков алгоритмизации задач, разработки программных продуктов для ЭВМ, выполнение инженерных расчетов, проведение комплексного эксперимента с применением современных информационных технологий и оформление отчетных документов с использованием текстового и графического редакторов.
       В курсовой работе разработана программа логического отрицания и логического умножения двоичных чисел. Для этого были даны определения и понятия основы алгебры логики. Рассмотрены свойства элементарных функций алгебры логики. Затем был составлен алгоритм решения задачи (блок-схема).
       В процессе работы была разработана программа  на языке Паскаль, выполняющая поставленные задачи. Также был предусмотрен контроль вводимых чисел.
       Задачей является составление программы  логического отрицания и логического умножения двоичных чисел на языке Паскаль.
       Объектом  исследования являются два двоичных числа. 
 
 
 

 

    1 Спецификация задачи

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

    Входными  переменными программы являются два двоичных числа с числом разрядов 50. Числа а и b вводятся как строка символов, а затем преобразовываются в массивы а1, b1 типа Boolean для выполнения логических операций над ними. Нулю соответствует логическое false, а единице логическое true.

    Выходными переменными программы являются aOtr,bOtr типа массив Boolean– результат логического отрицания, ab типа массив Boolean – результат логического умножения. 

 

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

   В данной курсовой работе постановка задачи сводится к следующему: необходимо составить программу логического отрицания и логического умножения двоичных чисел. Результат выполнения программы – два инвертированных числа (логическое отрицание чисел) и результат логического умножения чисел.
 

    3 Описание методов вычислительной математики, используемых при решении

 
     Основные  понятия алгебры логики 
     

    Для формального описания цифрового  автомата широко применяют аппарат  алгебры логики.
      Основное  понятие алгебры логики – высказывание. Высказывание некоторое предложение, о котором можно утверждать, что оно истинно или ложно.
      Любое высказывание можно обозначить символом x и считать, что  
x = 1, если высказывание истинно, а x = 0 – если высказывание ложно.

      Логическая (булева) переменная – такая величина x, которая может принимать только два значения: x = {0,1}.
      Высказывание  абсолютно истинно, если соответствующая ей логическая величина принимает значение x = 1 при любых условиях.
      Высказывание  абсолютно ложно, если соответствующая ей логическая величина принимает значение x = 0 при любых условиях.
      Логическая  функция (функция  алгебры логики) – функция f(x1,x2,…,xn), принимающая значение, равное нулю или единице на наборе логических переменных x1,x2,…,xn.
      Логические  функции от одной переменной запишем  в таблицу 1: 

                                                            Таблица 1
x f1(x) f2(x) f3(x) f4(x)
0 1 0 0 1
1 1 0 1 0
 
      В соответствии с введенными определениями  функция f1(x) является абсолютно истинной (константа единицы), а функция f2(x) – абсолютно ложной функцией (константа нуля).
      Функция f3(x), повторяющая значения логической переменной, - тождественная функция [f3(x) ?  x], а функция f4(x), принимающая значения, обратные значениям x, - логическое отрицание, или функция НЕ [f4(x) = u x =`x].
      Логические  функции от двух переменных запишем  в таблицу 2.
Функция x1, x2 Примечание
00 01 10 11
f0 0 0 0 0 f0 абсолютная ложь
f1 0 0 0 1  x1 U x2 – (конъюнкция)
f2 0 0 1 0  x1 U`x2  – (запрет x2)
f3 0 0 1 1  x1`x2U x1 x2 = x1 (переменная x1)
f4 0 1 0 0 `x1 x (запрет x1)
f5 0 1 0 1 `x1 x2 U x1x2 = x2 (переменная x2)
f6 0 1 1 0  x1 A x2 (сложение по модулю 2)
f7 0 1 1 1  x1U x2 (дизъюнкция)
f8 1 0 0 0  x1 ? x2 (функция Пирса)
f9 1 0 0 1  x1 ? x2 (равнозначность)
f10 1 0 1 0 `x1`x2 U x1`x2 =`x2 (переменная`x2
f11 1 0 1 1   x2 ® x1 (импликация)
f12 1 1 0 0 `x1`x2 U`x1x2 =`x (переменная`x1)
f13 1 1 0 1   x1 ® x2 (импликация)
f14 1 1 1 0   x1 / x2 (функция Шеффера)
f15 1 1 1 1  f1 – абсолютная истина
 
      Дизъюнкция (логическое сложение) – функция f7(x1,x2), которая истинна тогда, когда истинны или x1, или x2, или обе переменные.
      Дизъюнкцию  часто называют также функцией ИЛИ  и условно обозначают так: f7(x1,x2) = x1 x2 = x1 U  x2.
      От  дизъюнкции следует отличать функцию  f6(x1,x2), которая называется функцией сложения по модулю 2 (функцией исключительное ИЛИ) и является истинной, когда истинны или x1, или x2, в отдельности. Условное обозначение этой функции f6(x1,x2) = x1 A x2.
      Конъюнкция (логическое умножение) – функция f1(x1,x2), которая истинна только тогда, когда и x1, и x2 истинны. Конъюнкцию часто называют также функцией И; условно обозначают так: f1(x1,x2)= x1 & x2 = x1U x2.
      Штрих Шеффера – функция  f14(x1,x2), которая ложна только тогда, когда x1 и x2 истинны. Условное обозначение функции Шеффера: f14(x1,x2)= x1 / x2.
      Функция Пирса (Вебба) – функция f8(x1,x2), которая истинна только тогда, когда  x1 и x2 ложны. Условное обозначение этой функции: f8(x1,x2) = x1 ? x2 = x1 ? x2.
      Импликация – функция f13(x1,x2), которая ложна тогда и только тогда, когда x1 истинно и x2 ложно. Условное обозначение: f13(x1,x2)= x1 ® x2. 

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






      Дизъюнкция  и конъюнкция обладают рядом свойств, аналогичных свойствам обычных арифметических операций сложения и умножения:
        свойство ассоциативности (сочетательный закон):
      x1 + (x2 + x3) = (x1 + x2)+ x3,     x1(x2 x3)=(x1 x2)x3;
        свойство коммутативности (переместительный закон):
      x1 +  x2 = x2 + x1,      x1 x2 =  x2 x1;
        свойство дистрибутивности (распределительный закон):
            для конъюнкции относительно дизъюнкции
      x1 &(x2 + x3)=(x1 & x2)+(x1 & x3);
            для дизъюнкции относительно конъюнкции
      x1 +  x2x3 =(x1 +  x2) & (x1 + x3).
      Несложно  установить правильность соотношений, известных как законы де Моргана:

      Из  законов де Моргана вытекают следствия:


с помощью  которых появляется возможность  выражать конъюнкцию через дизъюнкцию и отрицание или дизъюнкцию через конъюнкцию и отрицание. 

    Логические  выражения и логические элементы
      Логическое  выражение состоит из логических операндов, соединенных с помощью  логических операций. В качестве логических операндов могут выступать логические константы, переменные, а также отношения (сравнения) между двумя величинами. Логические выражения могут принимать одно из двух значений: ИСТИНА (TRUE или 1), ЛОЖЬ (FALSE или 0).
      Существует  несколько логических операций, все  возможные значения которых описывают обычно с помощью таблиц истинности.         
x1 x2 x1 U x2 (И)
x1 U x2 (ИЛИ)
(И-НЕ)
(ИЛИ-НЕ)
0 0 0 0 1 1
0 1 0 1 1 0
1 0 0 1 1 0
1 1 1 1 0 0
 
      Приоритет операций при вычислении значения логического  выражения следующий (в порядке понижения):
        отрицание (NOT, НЕ);
        конъюнкция (AND, И);
        дизъюнкция и исключающее ИЛИ (OR, ИЛИ; XOR, ИСКЛЮЧАЮЩЕЕ ИЛИ);
        операции отношения (равно, не равно, больше, меньше, больше или равно, меньше или равно).
      При всей сложности устройства электронных блоков современных ЭВМ выполняемые ими действия осуществляются с помощью комбинаций относительно небольшого числа типовых логических узлов. Основные из них таковы:
        регистры;
        комбинационные преобразователи кодов (шифратор, дешифратор, мультиплексор и др.);
        счетчики (кольцевой, синхронный, асинхронный и др.);
        арифметико-логические узлы (сумматор, узел сравнения и др.).
      Из  этих узлов строятся интегральные микросхемы очень высокого уровня интеграции: микропроцессоры, модули ОЗУ, контроллеры  внешних устройств и т.д.
      Сами  указанные узлы собираются из основных базовых логических элементов – как простейших, реализующих логические функции И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ и им подобных (элементы комбинационной логики, для которых значение функции на выходе однозначно определяется комбинацией входных переменных в данный момент времени), так и более сложных, таких как триггеры (элементы последовательной логики, для которых значение функции зависит не только от текущих значений переменных на входе, но и от их предшествующих значений). 

 

    4.Алгоритм  решения задачи (блок-схема)


      

    Описание  алгоритма 

    В начале алгоритма осуществляется ввод двоичных чисел a и b. Тип вводимых чисел – строка символов. В третьем блоке проверяется наличие введенного числа а, если число не введено, то осуществляется выход из программы. Затем осуществляется проверка на количество разрядов введенных чисел. Если оно меньше 50, то необходимо ввести числа заново. В 5-7 блоках проверяются числа а и b. В составе чисел могут быть только 1 или 0.
    В блоках 8-15 осуществляется заполнение массивов а1 и b1. Единице соответствует значение true, а нулю – false. В блоках 17-18 происходят логическое отрицание и логическое умножение введенных чисел.
    С 19 по 32 блоки осуществляют вывод  исходных чисел и результатов  вычислений.
    Блоки 34-36 предлагают повторить ввод чисел  или закончить выполнение алгоритма. 

 

    5 Текст программы  на алгоритмическом языке. Описание программы
 
Uses crt;
Type massiv=array [1..50] of Boolean;
Var
  op:byte;
  i,j,h,bin:integer;
  a,b:string;            {двоичные числа}
  q: string;
  a1,b1:massiv;             {введенные двоичные числа в  логич. выражении}
  aOtr,bOtr:massiv;        {логич. отрицание двоичных чисел}
  ab:massiv;                {логич. уммножение двоичных чисел} 

Label m1; 

begin
m1:
    clrscr;
    writeln('Введите два двоичных числа (50 разрядов)');
    readln(a);
    readln(b);
    if a='' then exit;        {проверка на наличие числа}
    if (length(a)<50) or (length(b)<50) then
     begin           {проверка на количество разрядов в числе}
      writeln('Количество разрядов менее  50');
      readkey; goto m1;
    end;
    for i:=1 to 50 do
        begin   {проверка на содержимое числа}
         if ((copy(a,i,1)='1') or (copy(a,i,1)='0')) and
            ((copy(b,i,1)='1') or (copy(b,i,1)='0'))
         then else begin
           writeln('Код числа должен содержать  только 0 или 1');
           readkey; goto m1;
         end;
    end;
    a:=copy(a,1,50);          {отсечение лишних разрядов}
    b:=copy(b,1,50); 

    for i:=1 to 50 do begin   {преобразование строки  в массив логич. значений}
      val(a[i],bin,h);
      if bin=1 then a1[i]:=true else a1[i]:=false;
     val(b[i],bin,h);
      if bin=1 then b1[i]:=true else b1[i]:=false;
    end; 

    for i:=1 to 50 do begin   {логич. отрицание и умножение чисел}
      aOtr[i]:=not(a1[i]);    {логич. отрицание чисел}
      bOtr[i]:=not(b1[i]);
      ab[i]:=a1[i] and b1[i];  {логич.  умножение чисел}
    end; 

   clrscr;
   writeln('                 Результаты вычислений ');
   writeln;
   writeln('Первое число:  ', a);
   writeln('Его логическое отрицание:  ');
   write('               ');
   for i:=1 to 50 do if aOtr[i] then write('1') else write('0');
   writeln; writeln;
   writeln('Второе число:  ', b);
   writeln('Его логическое отрицание: ');
   write('               ');
   for i:=1 to 50 do if bOtr[i] then write('1') else write('0');
   writeln; writeln;
   writeln('Логическое умножение чисел: ');
   writeln(' ', a);
   writeln('* ');
   writeln(' ', b);
   writeln(' -------------------------------------------------- ');
   write(' '); 

   for i:=1 to 50 do if ab[i] then write('1') else write('0'); 

   writeln; writeln;
   writeln('Повторить ввод числа? y/n');
   readln(q);
   if q='y' then goto m1; 

end. 
 

    Описание  программы.
    Данная  программа работает по описанному выше алгоритму. Все вводимые числа представлены в виде строковых переменных. В  программе предусмотрен контроль вводимых чисел. Все числа должны состоять только из 1 или 0 и содержать не менее 50 разрядов. Если число содержит более 50 разрядов, то лишние разряды отсекаются.
    После проверок составляются массивы логических элементов а1, b1 для чисел а и b, над которыми затем проводятся логические вычисления.
    В конце программы предусмотрен запрос на повторный вводи чисел. Иначе  программа будет завершена.
 

    6 Результаты тестирования программы
Введите два двоичных числа (50 разрядов)
111111111111111111111111111111111111111111111111111111111111111111111111
000000000000000000000000000000000000020000000000000000000000000000000000
Код числа должен содержать только 0 или 1 
 

Введите два двоичных числа (50 разрядов)
011111111100000001000000000000000000000000111000000000000000000011
000000000001101401111111111111111111111111110000000000001101010000000
Код числа должен содержать только 0 или 1 
 

Введите два двоичных числа (50 разрядов)
10000000001100000000
1111111111111111111111110000000000000000000001001111111111111111111111
Количество разрядов менее 50 
 

                Результаты вычислений 

Первое число:  10100000000001110011111111111111000000000000000000
Его логическое отрицание:
               01011111111110001100000000000000111111111111111111 

Второе число:  11101110111100101100010100010100011100011110001110
Его логическое отрицание:
               00010001000011010011101011101011100011100001110001 

Логическое умножение  чисел:
10100000000001110011111111111111000000000000000000
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.