Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




 

Вычисление квадратного корня производится путем деления исходного числа на переменный делитель [14]. Первое значение переменного делителя равно 0,01, следующие значения формируются путем приписывания пары цифр 01 к уже найденному числу.

Для нахождения результата нужно выполнить (n-2) цикла, каждый из которых может содержать три такта:

1) из значения на сумматоре вычитается содержимое переменного делителя (РгД) и определяется очередная цифра результата, которая равна инверсии знака сумматора;

2) если после выполнения вычитания сумматор меньше нуля, то нужно выполнить восстановление сумматора путем сложения его с содержимым переменного делителя;

3) производится сдвиг содержимого сумматора на один разряд влево и формируется новый переменный делитель.

Нужно помнить, что из отрицательных чисел корень не вычисляется.

Схема алгоритма извлечения квадратного корня в соответствии с описанным алгоритмом изображена на рис. 4.7.

 
 

Рис. 4.6. Схема алгоритма ускоренного деления

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

Рис. 4.6. Схема алгоритма ускоренного деления с анализом двух разрядов делителя (окончание)

 
 

Рис. 4.7. Схема алгоритма вычисления квадратного корня

 

Буквами yi обозначены разряды регистра результата (РгР). Начальное значение счетчика во всех алгоритмах принимается равным (n-2), где n – число разрядов исходных чисел, так как используются модифицированные коды.

Рассмотрим пример для операции вычисления квадратного корня для числа с фиксированной запятой. Извлечем квадратный корень из числа А = 0,101111 по разработанному алгоритму.

 

См = 0,101111 РгР = 0 (регистр результата)

+ 1,110000 РгД = 0,01 (переменный делитель)

I 1) См= См-РгД = 0,011111 РгР = 0,1 (так как См>0)

3) См = См← = 0,111110 РгД = 0,101

+ 1,011000

II 1) См= См-РгД = 0,010110 РгР = 0,11 (См>0)

3) См = См← = 0,101100 РгД = 0,1101

+ 1,001100

III 1) См= См-РгД = 1,111000 РгР = 0,110 (так как См<0)

+ 0,110100

2) См=См+РгД = 0,101100

3) См = См← = 1,011000 РгД = 0,11001

+ 1,001110

IV 1) См= См-РгД = 0,100110 РгР = 0,1101 (так как См>0)

3) См = См← = 1,001100 РгД = 0,110101

+ 1,001011

V 1) См= См-РгД = 0,010111 РгР = 0,11011 (так как См>0)

3) См = См← = 0,101110 РгД = 0,1101101

+ 1,0010011

VI 1) См= См-РгД = 0,010111 РгР = 0,110110 (так как См<0)

 

В циклах I, II, IV и V пропущен второй такт, потому что сумматор положителен и восстановление остатка не требуется.

 

Ответ: В = = 0,110110, что соответствует результату, полученному при извлечении корня из числа А программой «Операции».

 

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

 

 

МАТЕМАТИЧЕСКАЯ ЛОГИКА





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 1183 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2330 - | 2262 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.