
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни Рекомендовано Міністерством освіти України
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни
- •Тема 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.6. Абстрактні автомати
Абстрактний автомат — це алгоритмічна система, яку визначають три множини: вхідний алфавіт Х, вихідний алфавіт У, множина внутрішніх станів автомата S, а також дві функції (функція переходів та функція виходів). Щоб задати абстрактний автомат, є такі способи: функціональний, за допомогою таблиць переходів та виходів і графічний (залежно від способу задання функцій).
Функціональний спосіб задання абстрактних автоматів.
Автомат працює у дискретному часі. Послідовні моменти часу ототожнюють із послідовними натуральними числами t = 0, 1, 2 ... (це завжди можна зробити, обравши за одиницю часу будь-який зручний відрізок виміру).
У кожний момент автоматного часу t = 0, 1, 2 ... автомат А знаходиться у деякому стані S(t) S. Початковий стан автомата А — S(0).
У кожний момент часу t, починаючи з t = 1, до входу автомата надходить одна літера x(t) X вхідного алфавіту (вхідний сигнал). Вхідними словами автомата будуть скінченні впорядковані послідовності вхідних сигналів x(1) x(2) ... x(k). Кожний автомат має множину припустимих вхідних слів. Будь-яке припустиме слово p = x(1) x(2)... x(k), що подане до входу автомата, викликає появу вихідного слова q = y(1)y(2) ... y(k) — впорядкованої послідовності вихідних сигналів автомата А тієї самої довжини.
Відповідність між припустимими вхідними словами p і вихідними словами q називають алфавітним відображенням, індукованим автоматом А. Це відображення однозначно задається двома функціями — функцією переходів з одного стану в інший та функцією виходів, що визначає вихідний символ або сигнал.
Стан автомата S(t) у будь-який момент часу t однозначно визначається попереднім станом S(t-1) та вхідним сигналом x(t). Але щодо моменту часу t переходу зі стану S(t-1) у стан S(t), вихідний сигнал y(t) може з’явитися або до переходу, або після нього. Тому y(t) може бути визначений двома способами:
Функція є функцією виходів. Причому * — це звичайна функція, яка визначає вихідну літеру y(t) залежно від вхідного сигналу x(t) в момент t та від стану y попередній момент часу S(t–1), ** — функція зсунута, яка визначає вихідну літеру y(t) залежно від стану s(t) в момент часу t і вхідного сигналу x(t) в той самий момент часу t.
Залежно від визначення y(t) розрізняють два типи абстрактних автоматів:
— це
автомат I роду, або автомат Мілі,
— це
автомат II роду, або автомат Мура.
Якщо всі три множини X, Y, S, що визначають абстрактний автомат А, є скінченними, то й автомат називають скінченним.
Табличний спосіб задання абстрактного автомата.
Абстрактний автомат можна задати за допомогою двох таблиць: таблиці переходів та таблиці виходів автомата. Рядки обох таблиць позначаються символами вхідного алфавіту Х, а стовпчики — символами станів. На перетині Х-го рядка та S-го стовпчика таблиці переходів стоїть елемент U(s, x), тобто деякий символ вихідного алфавіту Y.
Розглянемо приклад.
Нехай маємо скінченний автомат Мілі, заданий трьома множинами S = {1, 2, 3}; X = {a, b}; Y= {u, v}.
Нехай він функціонує за такими таблицями:
Якщо до входу автомата Мілі буде подано слово aabb, то на виході матимемо слово uvuu.
Якщо задано автомат Мура (II роду) тими самими множинами S, X, Y, то його об’єднана таблиця виходів та переходів матиме вигляд:
Різниця між двома класами автоматів полягає у тому, що у випадку автоматів Мілі вихідний сигнал виникає одночасно із вхідним сигналом, що його індуціює, а у випадку автоматів Мура — із затримкою на 1 (одиницю) автоматного часу.
Абстрактний автомат може мати область заборони, або сукупність слів у вхідному алфавіті, які не сприймаються автоматом, що знаходиться у деяких станах з множини станів, тобто у якомусь стані, автомат не сприймає певний вхідний символ (ситуація схожа з діленням на 0). Тоді у таблицях переходів та виходів у відповідних клітинах стоятиме «–». Так би мовити, аварійний останов.
Графічний спосіб задання автомата.
Рис. 3.4. Представлення
автомата за допомогою
граф-схеми