Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
офеом / Kursova (частина 2).docx
Скачиваний:
44
Добавлен:
17.05.2015
Размер:
352.67 Кб
Скачать

2.4 Завдання 4

Знайти частку та залишок від ділення числа M=1260 на R=75, використовуючи алгоритм з відновленням залишку.

Для подальшого рішення завдання знаходимо за стандартним алгоритмом число M=1260 в двійковому варіанті

Рисунок 2.4.1 – переведення числа 1260 у двійкову систему числення

126010 =100111011002

Mпр = 00, 10011101100

R =75

Рисунок 2.4.2 – переведення числа 75 у двійкову систему числення

7510 =10010112

Rпр = 00, 1001011

Оскільки, ми не можемо поділити число 1260 на число 75, то ми зсуваємо прямий код числа 75 вліво, доти, доки воно не стане більшим за число 1260. В результаті ми зсунули 75 на 5 одиниць вліво і отримали 00, 100101100000 в двійковій системі числення, яке рівне числу 2400 в десятковій системі числення.

00, 10011101100

00, 00001001011

00, 10011101100 - 1260

00, 10010110000 - 1200

00, 010011101100

00, 100101100000 - 2048+256+64+32=2400

00, 010011101100

11, 011010100000

11, 101110001100 0,

11, 011100011000

00, 100101100000

100, 000001111000 0, 1

00, 000011110000

11, 011010100000

11, 011110010000 0, 10

10, 111100100000

00, 100101100000

11, 100010000000 0, 100

11, 000100000000

00, 100101100000

11, 101001100000 0, 1000

11, 010011000000

00, 100101100000

11, 111000100000 0, 10000

11, 110001000000

00, 100101100000

100, 010110100000 0, 100001

00, 101101000000

11, 011010100000

100, 000111100000 0, 1000011

00, 001111000000

11, 011010100000

11, 101001100000 0, 10000110

11, 010011000000

00, 100101100000

11, 111000100000 0, 100001100

11, 110001000000

00, 100101100000

100, 010110100000 0, 1000011001

00, 101101000000

11, 011010100000

100, 000111100000 0, 10000110011

В результаті ми отримали таке число - 00, 10000110011. Оскільки ми повинні отримати частку та залишок від ділення числа 1260 на 75, то перенесемо кому вправо на 5 одиниць. Остаточним результатом ділення є число:

10000, 110011

2.5 Завдання 5

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

Алгоритм виконання дій однаковий і на С++, і на мові Pascal:

Програма приймає 4 числа: мантису і порядок числа А, мантису і порядок числа B. Результатом програми є мантиса і порядок числа С, що є сумою чисел А і B.

Програма працює з цілими числами, як з додатніми, так і від'ємними. Тобто фактично вона виконує додавання та віднімання чисел з плаваючою комою в двійковій системі числення.

Програма складається з декількох процедур. Розглянемо кожну з них. Процедура dbl переводить мантиси і порядки заданих чисел і записує двійкові коди до відповідних масивів. Процедура dpvn переводить отримані двійкові коди у доповняльні коди. Зауважимо, що доповняльний код додатного числа рівний прямому коду цього числа. Процедура sdvg проводить сдвиг мантиси більшого числа на відповідну кількість розрядів вліво. Тим самим зрівнюються порядки доданків для подальших дій. Процедура sum безпосередньо виконує процес додавання мантис чисел за правилами додавання. Процедури dpvnp i dpvnc переводять отримані коди мантиси і порядку у прямий код. Головна фунція main викликає по черзі описані вище процедури і виводить на екран проміжні результати і відповідь.

а) Розробка програми мовою Pascal:

Дана програма (лістинг наведено у додатку А) розроблена для додавання та віднімання чисел з плаваючою комою в двійковій арифметиці для доповняльного коду.

Проведемо тестування програми:

Рисунок 2.5.1 – тестування програми на мові Pascal

Рисунок 2.5.2 – тестування програми на мові Pascal

б) Розробка програми на мові С++:

Дана програма (лістинг наведено у додатку B) виконує перевід з вісімкової у десяткову систему числення цілі числа.

Проведемо тестування роботи програми:

Рисунок 2.5.3 – тестування програми на мові С

Рисунок 2.5.4 – тестування програми на мові С

Соседние файлы в папке офеом