на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Цифровые автоматы
p align="left">Например: число 1000111011010101110010101 представим по указанной выше схеме, получим:

1

0

0

0

1

0

1

0

1

1

0

0

1

0

1

0

0

1

1

1

0

0

1

1

0

1

0

1

1

0

1

0

0

1

Теперь, если при передаче было получено число:

1

0

0

0

1

0

1

1

0

1

1

0

0

1

0

0

0

0

1

1

1

0

0

1

1

0

1

0

1

1

0

1

0

0

1

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

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

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

, где

- число информационных символов в коде;

- число контрольных символов;

- длина кода Хемминга.

Соотношение n, и для кода Хэмминга можно представить в виде таблицы:

Таблица 2.2.a

n

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

0

0

1

1

2

3

4

4

5

6

7

8

9

10

11

11

1

2

2

3

3

3

3

4

4

4

4

4

4

4

4

5

Пусть необходимо передать число 1110=10112. Значит . Используя таблицу 2.2.a получаем: , .

Далее необходимо определить на какой позиции должны находиться контрольные коэффициенты. Позиция контрольных коэффициентов - k в коде вычисляется по формуле - , где i - порядковый номер коэффициента k. Получаем 7-разрядный код:

Таблица 2.2.c

1

2

3

4

5

6

7

Разряды кода Хемминга

k1

k2

И4

k3

И3

И2

И1

Назначение разрядов

1

0

1

1

Значение разряда

Где ki - контрольный коэффициент (отсчет идет слева на право); Иi - информационный символ (отсчет идет справа на лево).

Значение контрольных коэффициентов по правилу: если сумма единиц на проверочных позициях четная, то значение контрольного коэффициента равно 0, в противном случае - 1.

Таблица 2.2.d

Позиция контрольного коэффициента

Проверочные позиции

1

1, 3, 5, 7, 9, 11, 13…

2

2, 3, 6, 7, 10, 11, 14…

4

4, 5, 6, 7, 12, 13, 14…

8

8, 9, 10, 11, 12, 13, 14…

Итак, используя таблицу 2.2.d назодим значения контрольных коэффициентов ki:

k1 = 1 + 0 + 1 = 0;

k2 = 1 + 1 + 1 = 1;

k3 = 0 + 1 +1 = 0.

Получим код Хемминга 0110011 для передачи числа 1110.

Теперь рассмотрим пример корректировки полученного кодированного в коде Хемминга числа, в котором есть сбой. Получили число 0110001. Для исправления ошибки необходимо определить позицию, в которой произошел сбой. Для этого определяем значения контрольных коэффициентов, используя таблицу 2.2.d:

k1 = 0 + 1 + 0 + 1 = 0 - нет ошибки;

k2 = 1 + 1 + 0+ 1 = 1 - ошибка;

k3 = 0 + 0 +0 + 1 = 1 - ошибка.

Номер ошибочного разряда совпадает с суммой позиций контрольных коэффициентов, указавших на наличие ошибки т.е. 2 + 4 = 6. Для исправления ошибки достаточно инвертировать значение 6-го разряда.

Задание. Построить код Хемминга для числа А.

A = 30710 = 1001100112

Используя таблицу 2.2.a получаем: , .

1

2

3

4

5

6

7

8

9

10

11

12

13

Разряды кода Хемминга

k1

k2

И9

k3

И8

И7

И6

k4

И5

И4

И3

И2

И1

Назначение разрядов

1

0

0

1

1

0

0

1

1

Значение разряда

k1 = 1 + 0 + 1 + 1 + 0 + 1 = 0;

k2 = 1 + 0 + 1 + 0 + 0 = 0;

k3 = 0 + 0 +1 + 1 + 1 = 1;

k4 = 1 + 0 + 0 + 1 + 1 = 1.

Получим код Хемминга 0011001110011.

При передаче, получили код с ошибкой 0011001110111. Проверяем:

k1 = 0 + 1 + 0 + 1 + 1 + 1 + 1 = 1; - ошибка;

k2 = 0 + 1 + 0 + 1 + 0 + 1 = 1; - ошибка;

k3 = 1 + 0 + 0 +1 + 1 + 1 = 0; - нет ошибки;

k4 = 1 + 1 + 0 + 1 + 1 + 1 = 1 - ошибка.

Ошибка находится в разряде 1 + 2 + 8 = 11, инвертируем 11-й разряд и получаем исходный код Хемминга.

2.3 Контроль по модулю

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

При числовом методе код заданного числа определяется как наименьший положительный остаток от деления числа на выбранный модуль. Например, определить контрольный код числа 160 по модулю 6. Для этого делим 160 на 6, получаем остаток - 4.

При цифровом методе контроля, контрольный код числа образуется делением суммы цифр числа на выбранный модуль. Например, определить контрольный код числа 160 по модулю 6. Сумма цифр числа 160 равна 7, делим ее на 6. Получим остаток 1, значит это, контроль числа 160 по модулю 6, при цифровом методе контроля.

Числовой метод контроля

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

Операцию сдвига можно представить как передачу слова из i-го разряда в (i+x) разряд. Поэтому, контроль сдвига можно осуществить по методу четности / нечетности.

Контроль выполнения арифметических операций: сложение, вычитание, умножение можно осуществить методом контроля по модулю. Для этого применяют формулы:

KA = A mod P KB = B mod P

KA+B = (A + B) mod P = (KA + KB) mod P

KA*B = (A * B) mod P = (KA * KB) mod P

Например, найдем контрольный код чисел A, B и контрольный код арифметических операций над ними, получим:

A

B

A + B

A - B

A * B

Арифметические операции над числами

89

57

146

33

5073

Значение чисел

8

3

2

6

6

Контроль по модулю 9

Проверка выполненных операций:

KA+B = (8 + 3) mod 9 = 2 - нет ошибки;

KA-B = (8 - 3) mod 9 = 5

KA*B = (8 * 3) mod 9 = 6 - нет ошибки.

Задание. Определить контрольные коды чисел A и C по модулю P, а также контрольные коды суммы A + C и разности A - C.

КА = 307 mod 9 = 1;

KC = 91 mod 9 = 1;

KA+C = (307+91) mod 9 = 398 mod 9 = 2; проверка:

KA+C = (1 + 1) mod 9 = 2 mod 9 = 2 - нет ошибки.

KA-C = (307-91) mod 9 = 216 mod 9 = 0; проверка:

KA-C = (1 - 1) mod 9 = 0 mod 9 = 0 - нет ошибки.

Цифровой метод контроля

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

Задание. Определить контрольные коды чисел A и C по модулю P, а также контрольные коды суммы A + C и разности A - C.

КА = (3+0+7) mod 9 = 1;

KC = (9+1) mod 9 = 1;

KA+C = (3+0+7+9+1) mod 9 = 20 mod 9 = 2; проверка:

KA+C = (1 + 1) mod 9 = 2 mod 9 = 2 - нет ошибки.

KA-C = (3+0+7-9-1) mod 9 = 0 mod 9 = 0; проверка:

KA-C = (1 - 1) mod 9 = 0 mod 9 = 0 - нет ошибки.

Глава 3. Построение алгоритма реализации численного метода «быстрой сортировки»

3.1 Математическое описание метода

Алгоритм сортировки К. Хоора называют сортировкой с разделением или «быстрой сортировкой». В основу алгоритма положен метод последовательного дробления массива на части.

Алгоритм «быстрой сортировки» можно проанализировать на примере. Пусть дан массив M[i] = (9, 11, 12, 3, 19, 1, 5, 17, 10, 18, 3, 19, 17, 9, 12, 20, 20, 19, 2, 5). После первого вызова процедуры QuickS в исходном массиве будет определена его середина (10-й элемент) и переменной X присвоено значение m[10], т.е. 18. После этого массив делится на две части. Далее выполняется обмен элементами по следующему правилу:

При просмотре левой части массива слева направо выполныется поиск такого элемента массива, что M[i]>X, затем при просмотре правой части справа налево отыскивается такой элемент, что M[i]<X. Выполняется обмен местами данных элементов, пока все элементы слева от середины, удовлетворяющие условию M[i]>X, не будут обменены с элементами, рассположенными справа от середины и удовлетворяющими условию M[i]<X. В результате этого получим массив из двух частей следующего вида:

9, 11, 12, 3, 19, 1, 5, 17, 10, 18, 3, 19, 17, 9, 12, 20, 20, 19, 2, 5 Число итераций =1

19, 20, 12, 3, 19, 1, 5, 17, 10, 18, 3, 19, 17, 9, 12, 20, 11, 9, 2, 5 Число итераций =2

19, 20, 20, 3, 19, 1, 5, 17, 10, 18, 3, 19, 17, 9, 12, 12, 11, 9, 2, 5 Число итераций =3

19, 20, 20, 19, 19, 1, 5, 17, 10, 18, 3, 3, 17, 9, 12, 12, 11, 9, 2, 5 Число итераций =4

19, 20, 20, 19, 19, 18, 5, 17, 10, 1, 3, 3, 17, 9, 12, 12, 11, 9, 2, 5 Число итераций =5

Далее левая часть в свою очередь дробится на две части, и вызывается процедура для сортировки левой части (с 1-го по 6-й элемент)

20, 20, 19, 19, 19, 18, 5, 17, 10, 1, 3, 3, 17, 9, 12, 12, 11, 9, 2, 5 Число итераций =6

20, 20, 19, 19, 19, 18, 5, 17, 10, 1, 3, 3, 17, 9, 12, 12, 11, 9, 2, 5 Число итераций =7

После того как левая часть массива отсортирована, опять рекурсивно вызывается процедура, в которой определяется середина данной части массива, и выполняется обмен элементов. Массив становится таким:

20, 20, 19, 19, 19, 18, 5, 17, 10, 1, 3, 3, 17, 9, 12, 12, 11, 9, 2, 5 Число итераций =8

20, 20, 19, 19, 19, 18, 5, 17, 10, 1, 3, 3, 17, 9, 12, 12, 11, 9, 2, 5 Число итераций =9

Далее опять рекурсивно вызывается процедура для сортировки, пока в каждой из частей останется по одному элементу.

Затем рекурсивно вызывается процедура для аналогичной сортировки правой части (с 7-го по 13-й элемент). Результат последовательных этапов сортировки массива отображается так:

20, 20, 19, 19, 19, 18, 5, 17, 10, 1, 3, 3, 17, 9, 12, 12, 11, 9, 2, 5 Число итераций =10

20, 20, 19, 19, 19, 18, 17, 17, 10, 1, 3, 3, 5, 9, 12, 12, 11, 9, 2, 5 Число итераций =11

20, 20, 19, 19, 19, 18, 17, 17, 10, 1, 3, 3, 5, 9, 12, 12, 11, 9, 2, 5 Число итераций =12

20, 20, 19, 19, 19, 18, 17, 17, 10, 9, 3, 3, 5, 9, 12, 12, 11, 1, 2, 5 Число итераций =13

20, 20, 19, 19, 19, 18, 17, 17, 10, 9, 11, 3, 5, 9, 12, 12, 3, 1, 2, 5 Число итераций =14

20, 20, 19, 19, 19, 18, 17, 17, 10, 9, 11, 12, 5, 9, 12, 3, 3, 1, 2, 5 Число итераций =15

20, 20, 19, 19, 19, 18, 17, 17, 10, 9, 11, 12, 12, 9, 5, 3, 3, 1, 2, 5 Число итераций =16

20, 20, 19, 19, 19, 18, 17, 17, 10, 9, 11, 12, 12, 9, 5, 3, 3, 1, 2, 5 Число итераций =17

20, 20, 19, 19, 19, 18, 17, 17, 12, 9, 11, 12, 10, 9, 5, 3, 3, 1, 2, 5 Число итераций =18

20, 20, 19, 19, 19, 18, 17, 17, 12, 12, 11, 9, 10, 9, 5, 3, 3, 1, 2, 5 Число итераций =19

20, 20, 19, 19, 19, 18, 17, 17, 12, 12, 11, 9, 10, 9, 5, 3, 3, 1, 2, 5 Число итераций =20

20, 20, 19, 19, 19, 18, 17, 17, 12, 12, 11, 9, 10, 9, 5, 3, 3, 1, 2, 5 Число итераций =21

20, 20, 19, 19, 19, 18, 17, 17, 12, 12, 11, 10, 9, 9, 5, 3, 3, 1, 2, 5 Число итераций =22

20, 20, 19, 19, 19, 18, 17, 17, 12, 12, 11, 10, 9, 9, 5, 5, 3, 1, 2, 3 Число итераций =23

20, 20, 19, 19, 19, 18, 17, 17, 12, 12, 11, 10, 9, 9, 5, 5, 3, 1, 2, 3 Число итераций =24

20, 20, 19, 19, 19, 18, 17, 17, 12, 12, 11, 10, 9, 9, 5, 5, 3, 1, 2, 3 Число итераций =25

20, 20, 19, 19, 19, 18, 17, 17, 12, 12, 11, 10, 9, 9, 5, 5, 3, 3, 2, 1 Число итераций =26

Как видно из примера, данный массив будет отсортирован за 26 итераций методом «быстрой сортировки». Тот же массив отсортированный линейным методом, будет отсортирован за 190 итераций, пузырьковым методом за 170 итераций. Как видно из приведенных примеров, алгоритм «быстрой сортировки» дает более лучшие результаты.

3.2 Таблица используемых переменных

Имя переменной

Тип переменной

Описание переменной

M[i]

Целый / Вещественный

Сортируемый массив чисел

i

j

Целый

Используются в цикле при обращении к элементу массива

X

Целый / Вещественный

Значение элемента в середине массива

First

Last

Целый

Границы сортируемого массива

tmp

Целый / Вещественный

Временное хранение значения элемента массива при обмене

Примечание: так как процедура сортировки массива - рекурсия, то переменные i, j, X - должны быть локальными.

Заключение

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

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

Список используемых источников

1. Понаморев В.С., Красников В.В. Методические указания по курсу «Организация и функционирование ЭВМ и систем». Ч.1. Арифметические основы ЭВМ. ДГТУ, 1996.

2. Интернет-ресурс «Системы счисления: двоичная, восьмиричная, шестнадцатиричная»

http://www.pascalstudy.narod.ru/tems/pas_5.html

3. Коштоев В.В., Кипиани К.К. Учебное пособие «Основы прикладной теории цифровых автоматов» Тбилиси, 1998.

4. Интернет-ресурс «Теоретические основы информатики. Коды Хемминга»

http://de.uspu.ru/Informatics/Metodes/DPP/F/08/1/glavs/5/564.htm

5. Интернет-ресурс «Контроль по модулю арифметических операций в десятичной и двоичной СС»

http://distance-onu.by.ru/metod/11.htm

6. Интернет-ресурс «Глава 3. Выражения и Операции. Побитовые Операции Сдвига»

http://pyramidin.narod.ru/jscript/coreguide15/expr.html

7. Turbo Pascal для школьников: Учеб. пособие.- 3-е доп.изд.- М.: Финансы и статистика, 2002.-528 с.

Приложение 1. Блок-схема алгоритма

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.