
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни Рекомендовано Міністерством освіти України
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни
- •Тема 1. Введення в теорію алгоритмів 6
- •Тема 2. Форми та засоби представлення алгоритмів 14
- •Тема 3. Алгоритмічні системи 23
- •Тема 4. Класифікація задач і процесів обробки інформації 44
- •Тема 5. Типи алгоритмічних процесів та принципи їх побудови 49
- •Тема 6. Алгоритми обробки соціально- економічної інформації 88
- •Тема 7. Визначення та короткий огляд мов програмування 123
- •Тема 8. Технологія програмування 133
- •Типова програма
- •Дисципліни «Алгоритмізація і програмування
- •Процедур обробки інформації»
- •Частина і
- •Тема 4. Класифікація задач і процесів обробки інформації
- •Тема 5. Типи алгоритмічних процесів та принципи їх побудови
- •Тема 6. Алгоритми обробки соціально-економічної інформації
- •Тема 7. Визначення та короткий огляд мов програмування
- •Тема 8. Технологія програмування
- •Навчально-методичне забезпечення
- •1.1. Методичні вказівки до вивчення теми
- •1.1.1. Визначення та властивості алгоритму
- •1.1.2. Алфавітні оператори
- •1.1.3. Характеристики алгоритму
- •1.2. Практичне заняття
- •1.3. Термінологічний словник
- •1.4. Завдання для перевірки знань
- •Тема 2. Форми та засоби представлення алгоритмів
- •2.1.1. Словесна форма
- •2.1.2. Словесно-формульна форма
- •2.1.3. Граф-схеми
- •2.1.4. Блок-схеми
- •2.1.5. Операторні схеми
- •2.1.6. Ніро-схеми
- •2.1.7. Таблиці рішень
- •2.2. Термінологічний словник
- •2.3. Практичні заняття
- •2.4. Задачі
- •3.1. Методичні вказівки до самостійного вивчення теми
- •3.1.1. Визначення алгоритмічної системи
- •3.1.2. Рекурсивні функції
- •3.1.3. Нормальні алгоритми Маркова
- •3.1.4. Машини Поста
- •3.1.5. Машини Тьюринга
- •3.1.6. Абстрактні автомати
- •3.1.7. Формальні граматики
- •3.1.8. Алгоритмічні основи еом
- •3.2. Термінологічний словник
- •3.3. Навчальні завдання
- •3.4. Завдання для перевірки знань
- •Тема 4. Класифікація задач і процесів обробки інформації
- •4.1. Методичні вказівки до самостійного вивчення теми
- •Науково-технічні задачі
- •Задачі обробки спискових структур
- •Задачі обробки символьної інформації
- •Інформаційно-пошукові задачі
- •Задачі моделювання та ділові ігри
- •Економічні задачі
- •4.2. Питання для перевірки знань
- •Тема 5. Типи алгоритмічних процесів та принципи їх побудови
- •5.1. Методичні вказівки до вивчення теми
- •5.1.1. Лінійні алгоритми (5.1)
- •5.1.2. Розгалужені алгоритми (5.2)
- •5.1.3. Прості циклічні процеси з параметром (5.5)
- •5.1.4. Ітераційні циклічні процеси ( 5.6 )
- •5.1.5. Складні циклічні процеси (5.7)
- •5.2. Термінологічний словник
- •5.3. Плани практичних занять
- •Запитання для перевірки знань
- •Запитання для перевірки знань
- •Приклади задач
- •Запитання для перевірки знань
- •Приклади задач
- •Запитання для перевірки знань
- •Приклади задач
- •Запитання для перевірки знань
- •5.4. Навчальні завдання Завдання до 1-го заняття
- •Завдання до 2-го заняття
- •Завдання до 3-го заняття
- •Завдання до 4-го заняття
- •Завдання до 5-го заняття
- •5.5. Завдання для перевірки знань
- •Тема 6. Алгоритми обробки соціально-економічної інформації
- •6.1. Методичні вказівки до вивчення теми
- •6.1.1. Створення та контроль наборів даних (6.1)
- •6.1.2. Коригування наборів даних (6.2)
- •6.1.3. Сортування наборів даних (6.3)
- •6.1.4. Розрахунки підсумків на основі окремого запису (6.4)
- •Список працюючих жінок
- •6.1.5. Розрахунки підсумків на основі всіх записів (6.5)
- •Про середню заробітну плату
- •6.1.6. Розрахунки проміжних підсумків на основі частини записів (6.6)
- •6.1.7. Обробка запитів з використанням довідників (6.7)
- •Список підприємств
- •6.1.8. Розрахунки підсумків на основі багатьох запитів з використанням декількох вхідних файлів (6.8)
- •6.2. Плани практичних занять Заняття 1.
- •Заняття 2
- •Запитання для перевірки знань
- •Наявна кількість матеріалу____________
- •Запитання для перевірки знань:
- •Поділ працівників за статтю
- •Поділ працівників за неперервним стажем роботи
- •Поділ заробітної плати за розрядами робіт
- •Списки робітників, молодших за 20 років
- •Запитання для перевірки знань:
- •Список підприємств, що замовили
- •Перелік матеріалів
- •Справка про попит / пропозицію на
- •Сума затрат на матеріали
- •Результат обліку матеріалів на складах
- •Перелік матеріалів на складах
- •6.3. Термінологічний словник
- •6.4. Навчальні завдання
- •Тема 7. Визначення та короткий огляд мов програмування
- •7.1. Методичні вказівки до самостійного вивчення теми
- •7.1.1. Визначення мови програмування
- •7.1.2. Вимоги до мов програмування
- •7.1.5. Програмні інтерфейси та інструментальні засоби розробки програмних продуктів
- •7.2. Термінологічний словник
- •7.3. Запитання для самоконтролю засвоєння теми
- •Тема 8. Технологія програмування
- •8.1. Методичні вказівки до самостійного вивчення теми
- •8.1.1. Способи розробки програм
- •8.1.2. Основні технологічні етапи розробки програм
- •8.1.4. Розробка проекту програми
- •8.1.5. Написання програми
- •8.1.6. Налагодження програми
- •8.1.8. Супроводження програми
- •8.2. Запитання для самоконтролю засвоєння теми
5.1.2. Розгалужені алгоритми (5.2)
У тих випадках, коли перетворення інформації може здійснюватись за різними схемами, залежно від властивостей вхідних даних або проміжних результатів, використовуються розгалужені алгоритми. Тобто в алгоритмі передбачаються всі можливі варіанти обробки інформації, кожний з яких розробляється як окрема гілка алгоритму, а вибір однієї з них для виконання здійснюється за допомогою перевірки деякої умови, що відображає властивості інформації, використовуваної у процесі перетворення. В алгоритмічних системах для цього є розпізнавачі. Залежно від того, на скільки гілок розгалужується алгоритм, він може бути простим або складним. Для простого розгалуженого процесу перевіряється одна умова (один розпізнавач), для складного — дві чи більше умов, кожна з яких відокремлює одну гілку.
Просте розгалуження відбувається за схемою 5.2. Умова формулюється таким чином, щоб відповідь перевірки була «так» чи «ні» (рис. 5.4).
Рис. 5.4. Схема простого розгалуженого процесу 5.2
Приклад 2а. Дано дійсні числа х та у. Обчислити max(x, y). Алгоритм розв’язання на рис. 5.5:
Рис. 5.5. Приклад простого розгалуженого алгоритму а)
Приклад 2б. Дано дійсні числа х, у, z. Обчислити min(x + y + z, xyz). (рис. 5.6):
Рис. 5.6. Приклад простого розгалуженого алгоритму б)
Складне розгалуження 5.3 відбувається послідовно, з відокремленням гілок за схемою (рис. 5.7).
Рис. 5.7 Схема складного розгалуженого процесу 5.3
Розгалужень може бути скільки завгодно.
Приклад 3. Дано три додатних числа x, y, z. Визначити, чи існує трикутник, що має сторони такої довжини. Алгоритм — на рис. 5.8.
Рис. 5.8. Приклад складного розгалуженого алгоритму 5.3
Вже з цього прикладу видно, що збільшення кількості умов робить алгоритм більш заплутаним, він втрачає наочність, перевірити його правильність досить складно. У таких випадках необхідно перехід до будь-якої гілки розгалуженого алгоритму пов’язати з деякою змінною, кожне значення якої відповідатиме одній із гілок розгалуження, тобто одному з варіантів обробки інформації. Це можуть бути не тільки окремі значення, а й проміжки значень, до яких належатиме конкретне значення змінної. Тоді всі логічні блоки алгоритму об’єднуються в один блок аналізу цієї змінної, який матиме не два виходи, а стільки, скільки існує варіантів обробки.
Нехай К-змінна вибору варіантів може приймати значення а1, а2, ..., аn, ... Нехай існують варіанти обробки інформації, відповідні деяким переліченим значенням змінної чи їх сукупностям. Обов’язково необхідно передбачити варіант обробки, коли зна-чення змінної не належить до перелічених значень. Тоді розгалужений алгоритм матиме вигляд схеми 5.4 на рис. 5.9.
Рис. 5.9. Схема розгалуженого процесу вибору варіанта 5.4
Приклад 4. Визначити Y за умов:
Алгоритм визначення у матиме вигляд (рис. 5.10):
Рис. 5.10. Приклад розгалуженого алгоритму вибору варіанта 5.4
5.1.3. Прості циклічні процеси з параметром (5.5)
У нормальних алгоритмах Маркова передбачалася можливість багаторазової перевірки однієї і тієї самої умови (тобто повернення до того самого розпізнавача) та багаторазове виконання однієї чи декількох підстановок. Тим самим досягається компактність алгоритму, а також можливість розробки ефективної програми. Повторювану частину алгоритму називають тілом циклу (або циклом), а алгоритм, що його містить, — циклічним. Для побудови циклічного алгоритму необхідно:
— визначити всі дії, які необхідно виконати до входу в цикл, тобто провести підготовку циклу;
— визначити всі операції, які ввійдуть до циклу;
— скласти умову виходу з циклу.
Якщо в процесі перетворення інформації є змінна, значення якої змінюється за відомим правилом, або відомі межі її зміни, то можна визначити кількість циклів та організувати вихід із циклічного процесу. Таку змінну називають параметром циклу. Для організації циклічного процесу використовують лічильник циклів, пов’язаний із цим параметром. Схема такого процесу зображена на рис. 5.11.
Рис. 5.11. Схема простого циклічного процесу з параметром 5.5
Яку ж змінну можна використовувати як параметр циклу? Це може бути змінна, яка належить до оброблюваної інформації; це може бути індексна змінна, якщо оброблювана інформація є масивом, або коефіцієнти, що змінюються за законом арифметичної прогресії.
Приклад 1. Обчислити значення функції
для х = 1; 1.1; 1.2, ..., 2.
Тут за параметр циклу можна обрати змінну х, яка змінюється від х1 = 1 до х2 = 2 з кроком d = 0,1 (рис. 5.12).
Рис. 5.12. Приклад 1 простого циклічного процесу з параметром 5.5
Приклад 2. Дано натуральне n та дійсне х. Обчислити у = sinx + 2 sinx2 + ... + nsinxn.
Тут цикл повторюється n разів, за параметр циклу можна взяти змінну i, яка прийматиме значення від 1 до n. S — сума, яку визначає алгоритм, а — аргумент функції sin, р — поточний доданок, b — значення функції sin. Якщо у циклі обчислюється послідовно сума, то її треба обнулити перед входом до циклу, якщо це добуток, то перед входом до циклу йому потрібно присвоїти значення 1. Це загальні правила. Алгоритм прикладу 2 зображено на рис. 5.13:
Рис. 5.13. Приклад 2 простого циклічного процесу з параметром 5.5
Приклад 3. Дано дійсні числа а1, а2 ... аn. Знайти їх середнє арифметичне значення.
Цикл повторюється n разів. Параметром буде і — індекс елемента у масиві, що змінюється від 1 до n із кроком 1. S — сума елементів; SA — середнє арифметичне (рис. 5.14)
Рис. 5.14. Приклад простого циклічного процесу з параметром 5.5