
- •Міністерство освіти і науки україни
- •Розділ 1. Арифметичні основи обчислювальних машин
- •1.1. Позиційні системи числення. Переведення числа з однієї системи числення в іншу
- •1.2. Форма представлення чисел. Кодування чисел
- •1.3. Арифметичні операції над двійковими числами. Машинні одиниці інформації
- •Контрольні питання
- •Завдання
- •Розділ 2. Основи алгоритмізації обчислювальних процесів
- •2.1. Поняття і властивості алгоритму
- •2.2. Засоби представлення алгоритмів
- •2.3. Типи алгоритмічних процесів. Приклади
- •Контрольні питання
- •Завдання
- •3.1. Загальна характеристика програми
- •3.3. Кроки для створення та виконання програми
- •3.4. Змінні та константи
- •3.5. Директиви препроцесора
- •Контрольні питання
- •Розділ 4. Введення-виведення даних
- •4.1. Об’єкт виведення даних cout
- •4.2. Функція виведення даних printf
- •4.3. Об’єкт введення даних cin
- •4.4. Функція введення даних scanf
- •Контрольні питання
- •5.2. Операції відношення
- •5.3. Логічні операції
- •5.4. Додаткові операції
- •5.5. Порозрядні операції
- •Контрольні питання
- •Завдання Лінійний обчислювальний процес
- •1. Визначити значення функції y
- •2. Геометричні завдання
- •Розгалужений обчислювальний процес
- •1. Визначити значення функції y
- •3. Перевірити, чи міститься точка з заданими координатами усередині заштрихованої області.
- •Розділ 6. Організація циклів
- •6.1. Організація арифметичних циклів з використанням оператору for
- •6.2. Організація ітераційних циклів з передумовою while та післяумовою do...While
- •6.3. Оператори switch та goto
- •Контрольні питання
- •Завдання Арифметичний цикл
- •Вкладені цикли
- •Ітераційний цикл
- •Суміщення розгалуженого та циклічного процесів
- •Розділ 7. Зовнішні пристрої та символьне введення/виведення. Рядкові, числові функції та функції роботи з датою та часом
- •7.1. Загальна концепція та функції символьного введення-виведення
- •7.2. Символьні функції
- •7.3. Рядкові функції
- •7.4. Числові функції
- •7.5. Функції роботи з датою та часом
- •Контрольні питання
- •Завдання
- •Розділ 8. Вказівки, посилання та масиви
- •8.1. Вказівки
- •8.2. Посилання
- •8.3. Одновимірні масиви
- •8.4. Багатовимірні масиви
- •8.5. Символьні масиви
- •Контрольні питання
- •Завдання Одновимірні масиви
- •Двовимірні масиви
- •Розділ 9. Робота з функціями
- •9.1. Засоби створення функцій
- •9.2. Видимість змінних
- •9.3. Параметри функції та передача значень
- •9.4. Передача масивів в якості параметрів функцій
- •9.5. Функції та вказівки
- •9.6. Перевантаження та шаблони функцій
- •Контрольні питання
- •Завдання
- •Розділ 10. Рекурсивне програмування
- •10.1. Основні поняття рекурсії. Визначення факторіалу числа
- •10.2. Приклади рекурсій
- •Контрольні питання
- •Розділ 11. Робота з файлами
- •11.1. Робота з текстовими та бінарними файлами
- •Можливі режими доступу
- •11.2. Довільний доступ у файлах
- •11.3. Файли потокового введення/виведення з використанням структури file.
- •Контрольні питання
- •Завдання
- •Розділ 12. Структури
- •12.1. Загальна характеристика структури
- •12.2. Масиви структур
- •12.3. Використання масивів, як елементів структур
- •3. Робота зі структурами є універсальною, передбачено додавання записів до файлу (флаг ios:app). Для підрахунку кількості структур на диску приведемо наступні рядки програми:
- •Контрольні питання
- •Завдання
- •Розділ 13. Об’єднання та інші типи даних. Обробка виключних ситуацій
- •13.1. Об’єднання
- •13.2. Перелічені типи даних (enum)
- •13.3. Бітові поля
- •13.4. Обробка виключних ситуацій
- •Контрольні питання
- •Розділ 14. Динамічні структури даних
- •14.1. Стек
- •14.2. Черга
- •14.3. Лінійний список
- •Контрольні питання
- •Завдання
- •Розділ 15. Типові методи сортування масивів
- •15.1. Бульбашкове сортування (bubble sort)
- •15.2. Сортування за допомогою вибору (choice sort)
- •15.3. Сортування вставками (insert sort)
- •15.4. Сортування Шелла
- •15.5. Швидке сортування (quick sort)
- •Контрольні питання
- •Завдання
- •Розділ 16. Чисельне диференціювання та інтегрування
- •16.1. Методи правих та центральних різниць чисельного диференціювання
- •16.2. Методи прямокутників, трапецій, Сімпсона (парабол) чисельного інтегрування
- •Контрольні питання
- •Завдання Чисельне диференціювання
- •Чисельне інтегрування
- •Розділ 17. Чисельні методи розв’язання алгебраїчних рівнянь
- •17.1. Метод половинного ділення (дихотомія)
- •17.2. Метод Ньютона (метод дотичних)
- •17.3. Метод Рибакова
- •Контрольні питання
- •Завдання
- •Розділ 18. Чисельні методи розв’язання системи лінійних алгебраїчних рівнянь
- •18.1. Визначник. Дії над матрицями. Обчислення оберненої матриці
- •18.2. Метод оберненої матриці.
- •18.3. Метод Крамера
- •18.4. Метод Гауса
- •Контрольні питання
- •Завдання
- •1. Розв’язати систему алгебраїчних рівнянь.
- •2. Обчислити добуток матриць.
- •3. Розв’язати матричні рівняння.
- •Список літератури
1.2. Форма представлення чисел. Кодування чисел
Сукупність розрядів регістру, призначених для зберігання чисел, називається розрядною сіткою машини. В розрядній сітці числа можуть бути представлені в природній або нормальній формі. Природна форма інакше називається формою представлення числа з фіксованою точкою, а нормальна – з плаваючою точкою.
Форма представлення чисел з фіксованою точкою
Ця форма використовується для запису цілих чисел. Ціле число може займати 1, 2, 4 байти. 1 байт – 8 біт – 8 розрядів. Форма запису цілого числа в комірку, довжиною в 1 байт:
зн |
|
|
|
|
|
|
|
зн – 1, якщо число < 0
0, якщо число > 0.
Від’ємні числа можуть бути представлені в прямому, зворотному та додатковому кодах.
В прямому коді достатньо в знаковий розряд помістити 1.
В зворотному коді всі нулі заміняються на 1, а 1 на нулі.
Додатковий код формується таким же чином як і зворотний, але додається 1 в молодший розряд.
Приклади:
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
+5 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
-5 |
Прямий код |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
-5 |
Зворотний код |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
-5 |
Додатковий код |
Використання додаткового та зворотного коду дозволяє операцію віднімання звести до операції додавання, а множення до операції додавання та здвигу.
Фома представлення чисел з плаваючою точкою
В нормальній формі будь-яке число складається з двох груп
де m – мантиса, тобто правильний дріб <1;
p – порядок числа;
q – основа системи числення
Числа з плаваючою точкою представляються в двох форматах: короткому – 4 байти (32 біти) та довгому – 8 байт (64 біти).
0 |
1 |
7 |
8 |
31 |
| |||
зн |
характеристика |
мантиса |
| |||||
0 |
1 |
10 |
11 |
63 | ||||
зн |
характеристика |
мантиса |
У випадку комірки довжиною 4 байти точність складає 7 десятинних значущих чисел. З використанням комірки 8 байт точність збільшується до 16 десятинних значущих розрядів.
Наведемо приклад запису числа 178.125, як 4-х байтової змінної з плаваючою точкою.
На першому етапі потрібно перевести задане число до двійкової системи числення (відповідно, його цілої та дробової частини).
178.125(10) = 10110010.001(2).
На другому етапі необхідно його нормалізувати. Стандартом IEEE 754 передбачений наступний механізм нормалізації, за яким у цілій частині числа залишається цифра 1. Так як у двійковій системі числення, при нормалізації числа, на першому місці буде завжди залишатись 1-ця, це дає змогу зекономити 1 біт та не записувати цю одиницю до мантиси. Таким чином, цей біт використовується на розширення порядку числа, а кількість бітів мантиси зменшується на один. Отже, для запису числа з плаваючою точкою розміром в 4 байти, фактично на порядок числа відводиться 7+1 = 8 біт, а на мантису 24–1 = 23 біта (але число в мантису записується розміром в 24 біта, так як 1-ця не пишеться, але має місце).
При нормалізації число 10110010.001(2) буде виглядати наступним чином: 1.0110010001*27.
На третьому етапі переведемо порядок числа в двійкову систему числення. Так як порядок розширюється на 1 біт – він може приймати значення від 0 до 255. Але треба врахувати від’ємний та додатній порядок. Нульове значення порядку приймається рівним 127 (27–1). Отже, від’ємний порядок – від 0 до 126, 127 – характеризує нульове значення порядку (база), від 128 до 255 – додатній порядок. В нашому випадку порядок дорівнює 7, тобто 127 + 7 = 134(10).
134(10) = 10000110(2)
На останньому етапі запишемо отримане число в комірку пам’яті.
0 |
8 |
9 | |||||||||||||||||||||||||||||
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
134
Стандарт IEEE 754 застосовується сучасними засобами програмного забезпечення низького та високого рівнів на сучасних персональних комп’ютерах.
Діапазони чисел в 4-байтовій та 8-байтовій комірках:
–2128<X<2128 або
–3.402823*1038 <X<3.402823*1038 (для 4-х байтів);
–21024<X<21024 або
–1.79769313486231*10308<X<1.79769313486231*10308 (для 8-ми).