- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни Рекомендовано Міністерством освіти України
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни
- •Тема 1. Введення в теорію алгоритмів 6
- •Тема 2. Форми та засоби представлення алгоритмів 14
- •Тема 8. Технологія програмування 133
- •Тема 3. Алгоритмічні системи 23
- •Тема 4. Класифікація задач і процесів обробки інформації 44
- •Тема 5. Типи алгоритмічних процесів та принципи їх побудови 49
- •Тема 6. Алгоритми обробки соціально- економічної інформації 88
- •Тема 7. Визначення та короткий огляд мов програмування 123
- •Типова програма
- •Дисципліни «Алгоритмізація і програмування
- •Процедур обробки інформації»
- •Частина і
- •Тема 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. Запитання для самоконтролю засвоєння теми
1.3. Термінологічний словник
Алгоритм — скінченна сукупність правил дій, які виконуються у певному порядку, для розв’язання всіх задач даного класу.
Абстрактний алфавіт — скінченна сукупність об’єктів довільної природи, які називають символами алфавіту.
Слово — будь-яка скінченна впорядкована послідовність символів абстрактного алфавіту.
Алфавітний оператор (відображення) — відповідність між словами в одному чи різних алфавітах.
Властивості алфавіту:
— детермінованість — однозначна визначеність результату кожної операції, не залежна від виконавця;
— дискретність — розчленованість алгоритму на окремі операції;
— масовість — можливість застосування до будь-яких вхідних даних задач виділеного класу;
— результативність — скінченність процесу перетворення інформації.
1.4. Завдання для перевірки знань
1. Визначення алгоритму.
2. Основні властивості алгоритму.
3. Область завдання алгоритму.
4. Алгоритмічна розв’язність проблеми.
5. Визначення абстрактного алфавіту.
6. Слово в абстрактному алфавіті.
7. Визначення алфавітного оператора.
8. Типи відображень в абстрактних алфавітах.
9. Кодуючі відображення.
10. Спряжені оператори.
11. Взаємозв’язок між алгоритмом та алфавітним оператором.
12. Поняття еквівалентності алгоритмів та алфавітних операторів.
Тема 2. Форми та засоби представлення алгоритмів
2.1. Методичні вказівки до вивчення теми
Залежно від алфавіту, операторів та систем правил, що їх реалізують, характеру задач обирається форма представлення алгоритму. Існує декілька способів та форм представлення алгоритмів: словесний, словесно-формульний, у вигляді граф-схем, блок-схем, операторних схем, НІРО-схем, таблиць-рішень...
Розглянемо на прикладі однієї задачі різні форми представлення алгоритму її розв’язання.
Задача. Дано два вектори А = (а1, а2, ..., аn), та В = (b1, b2, ..., bn). Знайти вектор С, елементи якого обчислюються за формулою сi = аi + bi.
2.1.1. Словесна форма
Словесний опис — це найстаріша форма представлення алгоритму. В ньому формальні правила перетворення інформації формулюються, нумеруються та вказується послідовність їх виконання. Така форма є прийнятною для досить простих або, навпаки, складних задач, розв’язання яких можна скласти з готових блоків (процедур обробки інформації), а за допомогою словесного опису вказати порядок їх виклику. Згадайте: алгоритми Евкліда були представлені саме у цій формі.
Розв’язання:
1. Покладемо i дорівнює 1 та перейдемо до наступного правила.
2. Покладемо сi дорівнює аi + bi та перейдемо до наступного правила.
3. Перевіримо, чи i дорівнює n. Якщо так, то обчислення припиняємо. Якщо ні, то збільшуємо i на 1 та перейдемо до правила 2.
2.1.2. Словесно-формульна форма
Це форма, яка використовує загальноприйняті математичні позначення, коментарі до них, що пояснюють дії та їх послідовність, яка визначається за допомогою міток.
Розв’язання:
Для визначення порядку введемо мітки Q1, Q2, ..., якщо не вказано, до якої мітки переходити, то це перехід до наступної дії.
i = 1
Q1 : ci = аi + bi .
Якщо i = n, то перейти до Q3 , інакше — до Q2.
Q2 : i = i + 1. Перейти до Q1.
Q3 : Закінчити обчислювання.
