Главная Контакты В избранное
  • КУРСОВОЙ ПРОЕКТ на тему: Неускоренное умножение старшими разрядами вперед . Извлечение квадратного корня с востановлением остатка.

    АвторАвтор: student  Опубликовано: 19-02-2014, 11:40  Комментариев: (0)

     

     

     

     

     

     

     

    СКАЧАТЬ:   1377525456_kursovoy.zip [62,59 Kb] (cкачиваний: 68)

     

    КУРСОВОЙ ПРОЕКТ

    на тему: Неускоренное умножение старшими разрядами вперед .

    Извлечение квадратного корня с востоновлением остатка.

     

    Задание

    на курсовое проектирование

    по дисциплине «Дискретная математика»

     

    1.Тема проекта: Неускоренное умножение старшими разрядами вперед .

    Извлечение квадратного корня с востоновлением остатка.


    4.1.Разделы пояснительной записки

    Введение. 1. Описание алгоритма. 2. Блок-схема алгоритма. 3. Структура операционного устройства. Приложение

    4.2.Перечень графического материала

    1..

    2..

    3..

    Содержание

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

    1.Описание алгоритма……………………………………..…………………...5

    1.1 Описание алгоритма операции извлечения квадратного корня с востоновлением остатка....…………………………………..…………………..5

    1.2 Описание алгоритма неускоренного умножения старшими разрядами вперед…………………………………………………………..…………………5

    2.Блок-схема алгоритма………………………………………..………………6

    2.1 Блок схема для выполнения алгоритма операции извлечения квадратного корня с востоновлением остатка в прямом коде………………..………..…….6

    2.2 Блок схема для выполнения алгоритма неускоренного умножения старшими разрядами вперед……………………………………..……………...7

    3.Структура операционного устройства………………………..……………..8

    3.1 Схема операционного устройства для операции извлечения квадратного корня с востоновлением остатка………………………………….…………….8

    3.2 Схема операционного устройства для операции неускоренного умножения старшими разрядами вперед…………………………………….....9

    4.1 МОДЕЛИРОВАНИЕ РАБОТЫ АЛГОРИТМА НА ЭВМ..........................11

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

    Библиографический список ..……….…………………………………………16

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    3

    Введение

     

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

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

    Следовательно, УА вырабатывает расперделенную во времени последовательность управляющих сигналов порождающих в операционном блоке нужную последовательность элементарных функциональных операций.

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

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    4

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

    1.1 Описание алгоритма операции извлечения квадратного корня с востоновлением остатка

     

    При выполнении операции извлечения квадратного корня с востоновлением остатка в прямом коде, для получения результата надо выполнить n одинаковых циклов, которые содержат три фазы:

    1. Из сумматора вычитается очередной результат извлечения корня с приписанной к нему парой 01. Если разность положительна то очередная цифра =1, иначе =0.

    2. Если очередная цифра результата = 0, то необходимо сделать восстановление сумматора.

    3. Содержимое сумматора сдвигается на 1 разряд влево и формируется значение регистра RGM. ироваФормние регистра RGMпроисходит следующим образом:

    0,01

    0,y101

    0,y1y201

    ………..

    и т. д.

    Общая формула вычисления Y как корня квадратного из X: Yn+1=0,5(Yn+x/Yn) .

     

    1.2 Описание алгоритма неускоренного умножения старшими разрядами вперед

     

    Операция умножения сводится к суммированию их порядков, перемножению мантисс и, при необходимости, нормализации результата. Умножение младшими разрядами вперед: регистр множетеля и сумматор сдвигаются вправо, регистр множемого неподвижен:

    1. Определяем знак произведения.

    2. Обнуляем сумматор.

    3. выполняем nодинаковых циклов (n – разрядность множетеля). Кажый цыкл содержит два такта: в первом к содержимому сумматора прибавляется множимое из второго регистра, если младший разряд множителя, находящегося в первом регистре, был равен единице. Если младший разряд множителя был равен нулю, то содержимое сумматора не изменяется. Во втором также сумматор и регистр множетеля сдвигаются на один разряд в право. При переполнении сумматора в первом такте в освобождающийся при его сдвиге вправо во втором такте знаковый разряд должен быть занесен ноль.

    4. Если требуется произвести округление, то прибавляем 1 к n+1 разряду сумматора.

    5. Присвоить знак сумматору.

    5

    2 Блок-схема алгоритма

    2.1 Блок схема для выполнения алгоритма операции извлечения квадратного корня с востоновлением остатка в прямом коде

     

     

     

     


    6

    2.2 Блок схема для выполнения алгоритма неускоренного умножения старшими разрядами вперед

     

     

     

     

     

     


    7

    3 Схема операционного устройства

    3.1 Схема операционного устройства для операции извлечения квадратного корня с востановлением остатка

     

     


    n

     

     

     


    Упр. сигнал

    Операция

    Y1

    Загрузка в сумматор подкоренного выражения

    Y2

    Вычитание из сумматора регистра RG2M SmM=SmM+RG2M+1

    Y3

    Сдвиг сумматора влево

    Y4

    Выдача результата

    Y5

    Сдвиг сумматора на один разряд влево

    8

    3.2 Схема операционного устройства для операции неускоренного умножения старшими разрядами вперед

    9

    Упр. сигнал

    Операция

    Y1

    RG1M=MA; RG1P=PA; СЧ=N-2

    Y2

    RG2M=MB; RG2P=PB; SmP=RG1P

    Y3

    SmM=0

    Y4

    SmP=SmP+RG1P

    Y5

    SmM=SmM+RGM

    Y6

    SmM=SmM→

    Y7

    RG2M=RG2M→; СЧ= СЧ-1

    Y8

    SmM=SmM+RGM

    Y9

    SmM=SmM+2-(N+1)

    Y10

    SmM=SmM←

    Y11

    SmM=SmM-2-K

    Y12

    Вывод SmM, SmP

    Y13

    SmM=+∞

    Y14

    SmM=0

    Y15

    SmP=SmP+RG1P

    Y16

    SmP=SmP+RG2P

    Y17

    RG1M=RG1M→

    Y18

    RG1P=RG2P

    X1

    RG1M=0

    X2

    RG2M=0

    X3

    RG2M(N)=1

    X4

    СЧ=0

    X5

    SmM(1) (+) SmM(2)=1

    X6

    SmM(2) (+) SmM(3)=1

    X7

    RG1P(1) (+) RG2P(1)=1

    X8

    SmP(1) (+) RG1P(1)=1

    X9

    RG1P(1)=1

    X10

    SmP(1)=1

    X11

    SmP=0

    10

    МОДЕЛИРОВАНИЕ РАБОТЫ АЛГОРИТМА НА ЭВМ

    Для моделированиям работы алгоритма было решено использовать язык программирования высокого уровня Borland Pascal 7.0 как наиболее приемлемый для решения данного рода задач. Программа выполнена методом восходящего программирования и имеет в своей основе три ключевых процедуры:

    1.Процедураsloj. Выполняет сложение массивов двоичных чисел. Реализует управляющий сигнал Y2.

    2.Процедураsdvig. Выполняет сдвиг массива на один разряд влево. Реализует управляющий сигнал Y5.

    3. Процедура invert. Выполняет инвертирование числового массива. Используется в формировании дополнительного кода R2.

    Управляющие сигналы Y1 и Y4 реализуются простыми операциями ввода-вывода. Управляющий сигнал Y3 реализуется непосредственно в цикле, постоянным обнулением массива R2 и новым его формированием из R1 и приписыванием пары 01.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    11

    Приложение 1

    Извлечения квадратного корня с востановлением остатка

    Текст программы:

    Program discret;

    Uses crt;

    Type

    mass=array[1..16] of integer;

    massstr=array[1..16] of string;

    Var

    k,i,i2,errcod,cikl,cikl2:integer;

    sum,r2,dopm,r1,memosum:mass;

    ch:string;

    sumstr:massstr;

    Procedure sloj(var s:mass;var b:mass);

    Var

    p,raz:integer;

    Begin

    p:=0;

    for i:=16 downto 1 do begin

    raz:=s[i]+b[i]+p;

    If raz=0 then begin

    s[i]:=0;

    p:=0;

    End;

    if raz=1 then begin

    s[i]:=1;

    p:=0;

    End;

    If raz=2 then begin

    s[i]:=0;

    p:=1;

    End;

    if raz=3 then begin

    s[i]:=1;

    p:=1;

    End;

    End;

    End;

    Procedure sdvig(var sd:mass);

    Begin

    for i:=1 to 15 do 12

    sd[i]:=sd[i+1];

    sd[16]:=0;

    for i:=1 to 15 do

    End;

    Procedure invert(var si:mass);

    Begin

    For i:=1 to 16 do

    if si[i]=1 then si[i]:=0 else si[i]:=1;

    End;

    Procedure obnul(var obn:mass);

    Begin

    for i:=1 to 16 do

    obn[i]:=0;

    End;

    Procedure vivod(viv:mass);

    Begin

    for i:=1 to 16 do

    write(viv[i]);

    writeln;

    End;

    Begin {vvod summatora}

    Writeln('Vvedite podkorennoe viragenie');

    readln(ch);

    for k:=1 to 16 do begin

    sumstr[k]:=copy(ch,k,1);

    val(sumstr[k],sum[k],errcod);

    End; {vvod R2 i formirovanie dop. massiva i R1}

    for i:=1 to 16 do begin

    r2[i]:=0;

    dopm[i]:=0;

    r1[i]:=0;

    memosum[i]:=0;

    End;

    r2[3]:=1;

    dopm[7]:=1; {pervii etap}

    invert(r2);

    sloj(r2,dopm);

    Writeln;

    write('sum ');

    vivod(sum);

    write('R2 ');

    vivod(r2);

    Writeln(' -------');

    sloj(sum,r2); 13

    write('sum ');

    vivod(sum);

    if sum[1]=1 then r1[2]:=0 else r1[2]:=1;

    writeln;

    write('R1 ');

    vivod(r1);

    writeln;

    for cikl:=2 to 15 do begin

    sdvig(sum);

    obnul(r2);

    i2:=1;

    for cikl2:=3 to cikl do begin

    r2[cikl-i2]:=r1[cikl-i2];

    i2:=i2+1;

    End;

    r2[cikl]:=r1[cikl];

    r2[cikl+1]:=0;

    if cikl+2<>16 then r2[cikl+2]:=1;

    write('sum ');

    vivod(sum);

    invert(r2);

    sloj(r2,dopm);

    write('R2 ');

    vivod(r2);

    for i:=1 to 7 do

    memosum[i]:=sum[i];

    sloj(sum,r2);

    write(' -------');

    writeln;

    write('sum ');

    vivod(sum);

    writeln;

    if sum[1]=1 then r1[cikl+1]:=0 else r1[cikl+1]:=1;

    write('R1 ');

    vivod(r1);

    writeln;

    if sum[1]=1 then begin

    for i:=1 to 7 do

    sum[i]:=memosum[i];

    writeln('Vosstanovlenie');

    End;

    readkey;

    End;

    End. 14

    Приложение 1.1

    ПРИМЕР РАБОТЫ ПРОГРАММЫ: Извлечения квадратного корня с востановлением остатка

     

     

    1.При запуске программы появляется следующее окно:

    2.Вводим например, 0110101:

    3.Нажимаем Enter, получаем результат:

     

    Ответ

    15

     

     

     

    СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

    1. Операции двоичной и десятичной арифметики в ЭВМ: Метод. указания / Сост. Пальянов И.А.; Омск: ОмПИ, 1990. - 36 с.

    2. Моделирование на ЭВМ алгоритмов выполнения арифметических операций и синтез управляющих автоматов: Метод. указания / Сост. Пальянов И.А., Шафеева О.П.; Омск: ОмПИ, 1988. - 36 с.

    3. Б.Н. Иванов Дискретная математика. Алгоритмы и программы: Учеб. пособие. – М.: Лаборатория Базовых Знаний, 2002 – 288 с.: ил.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    16

     

     

     

     

     

     

     

     

     

     

     

     

    скачать dle 10.6фильмы бесплатно