Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Російське народне множення

Реферат Російське народне множення





исло Temp=A + B, яке потім буде скопійовано в C. Зайвих операцій та використання додаткової пам'яті можна уникнути, якщо записувати результат в C безпосередньо . Виходячи їх цього, в якості інтерфейсу виберемо зовнішні функції, які приймають в якості параметрів вихідні дані і число для запису результату.


5.1 Додавання і віднімання


Схема для складання така: складаємо цифри зліва направо (цифри зберігаються у зворотному порядку). Якщо зафіксовано переповнення (тобто при додаванні отримана цифра, велика максимально можливої ??в даній системі числення), то відбувається «перенесення» (Carry) в наступний розряд.

Обчислення C=A + B, працює виклик виду Add (A, B, C). Максимальний розмір C повинен бути достатній для зберігання суми

void Add (BigInt A, BigInt B, ref BigInt C)

{i; temp;// Temp тут і далі грає роль «тимчасової» цифри,

/ / до виконання переносу. Можливо, temp> BASE .. Coef=new int [A.Size +1]; carry=0;

/ / Добиваємося B.Size? A.Size. (A.Size

{(B, A, ref C);;

}

/ / Тепер B.Size? A.Size.

/ / Складаємо два числа, i - номер поточної цифри (i=0; i

{= A.Coef [i] + B.Coef [i] + carry; (temp>=Base) / / переповнення. Перенести одиницю.

{. Coef [i]=temp - Base; carry=1;

}

{. Coef [i]=temp; carry=0;

}

}

/ / Менша кількість скінчилося (; i

{= A.Coef [i] + carry; (temp>=Base) / / переповнення. Перенести одиницю.

{. Coef [i]=temp - Base; carry=1;

}

{. Coef [i]=temp; carry=0;

}

}

/ / Якщо залишився перенос - додати його в додатковий розряд (carry == 1)

{. Coef [i]=carry; C.Size=A.Size + 1;

} C.Size=A.Size;

}


Віднімання здійснюється аналогічно, з тією лише різницею, що здійснюється перенесення «запозичення». Ми працюємо з позитивними числами, тому якщо від'ємник велике за розміром - відбувається вихід.

Якщо довжини однакові, але одне більше іншого - це призведе до того, що наприкінці процесу залишиться невикористане запозичення, а результат буде доповненням до Base B.Size. Наприклад, при звичайному відніманні 35 - 46=- 11, при описаному вище 35 - 46=89, так як виконується рівність 89=100 - 11 (89 - це доповнення 11 до 100).

Розглянемо випадок, коли обидва числа довгі. Зазвичай множаться числа послідовно на одну цифру за іншою, зберігаючи тимчасові результати. Потім тимчасові значення підсумовуються з урахуванням розряду. Однак можна нічого не зберігати, а відразу додавати до остаточного результату.


5.2 Множення


). Обнулити C.

2). Обнулити i.

3). Обчислити тимчасовий результат, відповідний множенню i-й цифри A на число B, в процесі обчислення відразу додавати його ...


Назад | сторінка 5 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Просування бутіка розміру plus size на прикладі ТОВ &Атлант&, бутік &Elena ...
  • Реферат на тему: Білорусь у роки Великої Вітчизняної війни: цифри і факти
  • Реферат на тему: Аналіз асортименту та експертиза якості чаю на матеріалах супермаркету Сash ...
  • Реферат на тему: Спеціалізований арифметико-логічний Пристрій комп'ютера (АЛП) для Викон ...
  • Реферат на тему: Як бути, якщо контрагент за договором - нерезидент?