- •Міністерство освіти і науки україни
- •Розділ 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. Розв’язати матричні рівняння.
- •Список літератури
Розділ 2. Основи алгоритмізації обчислювальних процесів
2.1. Поняття і властивості алгоритму
Алгоритм – це організована послідовність точно визначених дій, необхідних для розв’язання поставленої задачі.
Ефективним методом побудови алгоритмів є метод покрокової деталізації, при якому завдання розбивається на кілька простих під задач (модулів), і для кожного модуля створюється свій власний алгоритм.
Основні властивості алгоритму:
Дискретність – процес розв’язку розбивається на окремі етапи, а етапи на окремі кроки, виконання яких зводиться до виконання елементарних операцій – додавання, віднімання та ін.
Визначеність (точність) – чіткість вказівок, які утворюють алгоритм, їх повна зрозумілість та однозначність, тобто опис будь-якої дії у алгоритмі не повинен бути розтлумачений по-різному будь-якими двома людьми.
Зрозумілість – усі дії, включені до алгоритму, мають бути у межах компетенції виконавця алгоритму.
Універсальність (масовість) – алгоритм має бути придатний до розв’язання множини однотипних задач, має виконуватись при довільних вхідних даних та початкових умовах.
Скінченність – алгоритм має бути реалізований за визначене число кроків і повинен працювати з визначеними вхідними даними.
Результативність – при будь-яких значеннях вхідних даних результат повинен досягатися за визначений час при виконанні визначеної кількості кроків.
Алгоритми – це не тільки опис послідовності рішення різноманітних задач. У формі різноманітних інструкцій та правил алгоритми супроводжують людину протягом усього життя. Добираючись від дому до роботи або місця навчання, кожен з нас виконує певний алгоритм, який ми склали, виходячи з власних можливостей, умов та накопиченого досвіду. В залежності від часу виходу з дому, погодних умов, інших обставин цей алгоритм може допускати декілька варіантів маршрутів, використання того чи іншого виду транспорту тощо.
2.2. Засоби представлення алгоритмів
Існують наступні засоби представлення алгоритмів:
Словесний.
Формульно-словесний.
Графічний (у вигляді блок-схем).
Операторний.
З використанням алгоритмічної мови.
Табличний.
Прикладом словесної форми завдання алгоритму є алгоритм Евкліда для знаходження спільного дільника двох чисел (a та b):
Оглядаючи два числа а та b переходьте до наступного пункту.
Порівняйте ці два числа (a дорівнює b, a менше b, a більше b).
Якщо a та b рівні, то припиніть обчислення: кожне з чисел дає шуканий результат. Якщо числа не рівні переходьте до наступного пункту.
Якщо перше число менше другого, то поміняйте їх місцями.
Віднімайте друге число із першого, оглядаючи два числа: від’ємник та залишок, після чого переходьте до п. 2.
За цим алгоритмом можна знайти найбільший спільний дільник для двох натуральних чисел.
Найбільш широко розповсюдженим є графічний спосіб опису алгоритму. Цей спосіб є найбільш доступним, швидко засвоюється та в значній мірі формалізований. Алгоритм описується у вигляді блок-схем, що представляють графічне зображення процесу вирішення задачі. Кожний з блоків має певне значення та відображає деякий етап вирішення задачі. У блоці рідко вказуються елементарні операції; найважливіше тут – це їх логічна послідовність і розгалуження.
Алгоритми програм відображаються у графічній формі у вигляді схем за допомогою умовних графічних позначень – символів згідно «ГОСТ 19.701 – 90 (ИСО 5807-85). Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. – М.: Издательство стандартов, 1991».
Умовні зображення блоків та їх функції наведені у таблиці 2.1.
Таблиця 2.1
Блоки, які найчастіше використовуються у схемах алгоритмів
Назва |
Графічне зображення |
Опис |
Процес |
|
Відображає функцію обробки даних будь-якого вигляду (виконання певної операції або групи операцій, що приводить до зміни значення, форми або розміщення інформації або до визначення, по якому з декількох напрямів потоку слід рухатися) |
Рішення |
|
Відображає рішення або функцію перемикача типу, що має один вхід і ряд альтернативних виходів, один і лише один з яких може бути активізований після обчислення умов, визначених усередині цього символу. Відповідні результати обчислення можуть бути записані по сусідству з лініями, що відображають ці шляхи. |
Продовження таблиці 2.1 | ||
Назва |
Графічне зображення |
Опис |
Модифікація |
|
Відображає модифікацію команди або групи команд з метою дії на деяку подальшу функцію (установка перемикача, модифікація індексного регістра або ініціалізація програми). |
Зумовлений процес |
|
Відображає зумовлений процес, що складається з однієї або декількох операцій або кроків програми, які визначені у іншому місці (у підпрограмі, модулі). |
Введення-виведення |
|
Відображає перетворення даних у форму, придатну для обробки (введення) або відображення результатів обробки (виведення). |
Документ |
|
Відображає дані, представлені на носієві в легкій для читання формі (машинограма, документ для оптичного або магнітного читання, мікрофільм, рулон стрічки з підсумковими даними, бланки введення даних). |
Пристрій з прямим доступом |
|
Відображає дані, які зберігаються, в запам'ятовуючому пристрої з прямим доступом (магнітний диск, магнітний барабан, гнучкий магнітний диск). |
Дисплей |
|
Відображає введення-виведення даних, якщо безпосередньо підключений до процесора пристрій відтворює дані і дозволяє операторові ЕОМ вносити зміни в процес їх обробки. |
Канал зв'язку |
Відображає передачу даних по каналу зв'язку. | |
Лінія потоку |
Відображає потік даних або управління. | |
З'єднувач |
|
Відображає вихід в частину схеми і вхід з іншої частини цієї схеми та використовується для обриву лінії і продовження її у іншому місці. Відповідні символи-з'єднувачі повинні містити одне і те ж унікальне позначення. |
Термінатор |
|
Відображає вихід в зовнішнє середовище і вхід із зовнішнього середовища (початок або кінець схеми програми, зовнішнє використання і джерело або пункт призначення даних). |
Коментар |
Символ використовують для додавання описових коментарів або записів пояснень. Пунктирні лінії в символі коментарю пов’язані з відповідним символом або можуть обводити групу символів. |
При складанні алгоритмів вирішення економічних задач окрім графічного способу широко використовується табличний спосіб запису алгоритмів. В табличній формі звичайно описуються машинні документи.