- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни Рекомендовано Міністерством освіти України
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни
- •Тема 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. Запитання для самоконтролю засвоєння теми
3.1.3. Нормальні алгоритми Маркова
Це є алгоритмічні системи, до складу яких, крім алфавіту (чи алфавітів), належать елементарні припустимі операції двох видів: елементарні підстановки та елементарні розпізнавачі.
Елементарні підстановки — це алфавітні оператори, послідовність яких може реалізувати будь-які алгоритми перетворення інформації.
Елементарні розпізнавачі перевіряють наявність тих чи інших властивостей перетворюваної алгоритмами інформації, а результат розпізнавання визначає послідовність виконання елементарних підстановок.
Алгоритми, побудовані у межах нормальних алгоритмів Маркова, зручніше за все представляти за допомогою граф-схем. Точки, що на граф-схемі відповідають підстановкам, мають одну вихідну стрілку, точки, що відповідають розпізнавачу, мають дві вихідні стрілки.
Алгоритм, визначений граф-схемою, працює таким чином: вхідне слово подається на вхід і рухається у напрямках, які вказують стрілки. Коли слово попадає у вузол-розпізнавач, виконується перевірка умови, що в ньому задана. Якщо умова дотримана, слово прямує до операторного вузла, якщо ні — до наступного розпізнавача.
На виході алгоритму маємо вихідне слово. Якщо рух вхідного слова за граф-схемою триває нескінченно довго, то вважається, що алгоритм не застосовний до нього, тобто слово не належить області визначення алгоритму.
У нормальних алгоритмах використовується один тип елементарних операторів — оператори підстановок, та один тип елементарних розпізнавачів — розпізнавачі входження. Залежно від того, як з’єднуються вузли, алгоритми розрізняються між собою: якщо в нормальних алгоритмах у будь-який оператор підстановки можна потрапити тільки за стрілкою з відповідного до нього розпізнавача, то такий алгоритм називається узагальненим нормальним алгоритмом (рис. 3.2).
Рис. 3.2. Узагальнений нормальний алгоритм Маркова
А власне нормальні алгоритми відрізняються від узагальнених нормальних алгоритмів тим, що відповідають таким умовам:
1) всі вузли впорядковуються та нумеруються натуральними числами 1, ..., n;
2) стрілки, що виходять з точки оператора підстановки, прямують або до першого розпізнавача, або до вузла «вихід». В останньому випадку підстановка називається заключною, вона може бути не одна в алгоритмі;
3) вхідний вузол з’єднується з першим розпізнавачем.
Такий зв’язок між вузлами реалізує певний порядок обробки вхідного слова: процес перетворення закінчується, коли жодна з підстановок не може бути застосована (рис. 3.3), або коли виконується одна з заключних підстановок.
або коли виконується одна з заключних підстановок
Рис. 3.3. Нормальний алгоритм Маркова
Отримали впорядкований ланцюг символів.
Наявність у нормальних алгоритмах двох типів підстановок — звичайної і заключної — є необхідна умова універсальності нормальних алгоритмів, тобто можливості для будь-якого заданого алгоритму побудувати еквівалентний йому нормальний алгоритм. Це ще називають принципом нормалізації алгоритмів.
Існують різні способи композиції нормальних алгоритмів, які дозволяють отримувати нові алгоритми у класі нормальних алгоритмів:
1. Суперпозиція двох алгоритмів А та В є алгоритм С — такий, що вихідне слово алгоритму А є вхідним словом до алгоритму В, тобто: С(р) = В(А(р)). Суперпозиція може виконуватись для будь-якої кількості алгоритмів.
2. Об’єднання двох алгоритмів А та В є алгоритм С, який перетворює слово р, що належить перетину областей визначення алгоритмів А та В, у слово С(р) = А(р) В(р).
3. Розгалуження алгоритмів — це така композиція з трьох алгоритмів А, В, С, тобто такий алгоритм D, область визначення якого є перетином областей визначення алгоритмів А, В, С, а діє він на слово з області визначення таким чином:
р Є 0а 0в 0с
4. Повторення (ітерація) двох алгоритмів А та В — це така їх композиція С, що до будь-якого слова p багаторазово застосовується алгоритм А, доки не отримаємо слово, яке потім перетворюється алгоритмом В у деяке фіксоване слово.
