МОСКОВСЬКИЙ ІНСТИТУТ радіотехніки Електроніки і АВТОМАТИКИ
МІЖНАРОДНИЙ ФАКУЛЬТЕТ ІНФОРМАТИКИ
ІНТЕР ЕОМ
До У Р З Про У А Я Р А Б Про Т А
з дисципліни "Алгоритмічні Мови і Програмування "
Студент Мозолєв А. В. Група МФ-3-91
Викладач Моїсеєв В.М.
Москва 1993р
.
p> Постановка завдання:
Скласти набір процедур маніпулювання з цілими
числами довільної довжини. Процедури повинні забезпечувати:
формування і введення цілих чисел довільної довжини,
додавання, віднімання, порівняння і множення цілих чисел.
Працездатність процедур продемонструвати на
демонстраційній програмі.
.
p> Використані засоби мови:
Модуль, що реалізує цілі числа довільної довжини, і
тестова програма написані на мові С + +.
Для представлення цілих чисел довільної довжини
визначено клас UNLIM. Операції над цими числами
реалізовані шляхом перевизначення для класу UNLIM наступних
операцій:
+ (унарний і бінарний)
- (унарний і бінарний)
*
==
! =
<
>
<=
> =
<<(операція виведення класу OSTREAM)
.
p> Структура даних:
Абсолютна величина числа довільної довжини зберігається в
пам'яті у вигляді масиву типу CHAR. У кожному елементі масиву
може знаходиться число від 0 до 99, тобто два розряди всього
числа. У нульовому елементі зберігаються молодші два розряди, в
останньому елементі - старші два розряди. Якщо число має
непарна кількість розрядів, то в останньому елементі
масиву зберігається один останній розряд, тобто число від 0 до
9. Лідируючі нулі в масиві не зберігається. Число 0
представлено масивом з одного елемента, в якому зберігається
0.
З метою мінімізувати копіювання і витрата пам'яті клас
UNLIM реалізований так, що на одне уявлення абсолютної
величини можуть посилатися кілька чисел, при цьому ведеться
облік посилань.
Об'єкт класу UNLIM складається з поля SIGN - знаку числа і
поля PV - покажчика на дескриптор подання абсолютної
величини. Число 0 завжди має знак PLUS. p> Дескриптор подання абсолютної величини числа
являє собою об'єкт структури DESCRIPTOR і має
наступні поля:
body - вказівник на масив, в якому зберігається
уявлення абсолютної величини числа;
len - довжина масиву body [] в байтах;
HowMany - кількість посилань на дане подання;
.
p> Реалізація операцій порівняння:
З операцій порівняння тільки <і! = безпосередньо порівнюють
числа, інші операці...