- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни Рекомендовано Міністерством освіти України
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни
- •Тема 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.2. Термінологічний словник
Алгоритмічна система — сукупність абстрактного алфавіту та множини припустимих операцій.
Рекурсивна функція — конструктивно визначена цілочисельна функція, значення якої від довільних аргументів визначається через її значення від попередніх значень аргументів.
Нормальний алгоритм Маркова — алгоритмічна система, до складу якої належать абстрактний алфавіт (чи абстрактні алфавіти) та припустимі операції двох типів: елементарні оператори підстановок та елементарні розпізнавачі.
Машина Поста (абстрактна машина) — алгоритмічна система, що складається з двійкового алфавіту та 6 типів операцій (команд). Інформацію записано на умовній інформаційній стрічці, поділеній на окремі комірки, що можуть містити 0 або 1, стрічка може пересуватися ліворуч чи праворуч, а деякий умовний пристрій може виконувати ці команди над вмістом однієї комірки.
Машина Тьюринга (абстрактна машина) — алгоритмічна система, що має довільний абстрактний алфавіт, множину станів керуючого пристрою, нескінченну інформаційну стрічку, поділену на комірки, та сукупність команд (операцій), кожна з яких є деякою послідовністю команд машини Поста.
Абстрактний автомат — алгоритмічна система, яку визначають три множини (вхідний алфавіт, множина станів та вихідний алфавіт) та дві функції (переходів та виходів). Функція переходів відображає перші дві множини на другу, функція виходів — перші дві множини на третю. Залежно від властивостей його складових розрізняють різні типи автоматів.
Формальна граматика — алгоритмічна система, що містить два алфавіти (термінальний та нетермінальний словники), початковий символ, виділений із нетермінального словника, та сукупність правил підстановок. За допомогою формальних граматик можна аналізувати існуючі мови, створювати нові, здійснювати переклад (трансляцію) з однієї мови на іншу.
ЕОМ — алгоритмічна система (фізично реалізована), що має вхідний, вихідний (найчастіше об’єднані) та внутрішній алфавіти, сукупність операцій (систему команд) перетворення вхідної інформації у вихідну. Відрізняється від усіх інших алгоритмічних систем тим, що сама автоматично виконує алгоритм під управлінням програми, складеної з команд системи або перекладеної на мову команд.
3.3. Навчальні завдання
1. Нехай цілі числа задано як ланцюжки символів «1». Побудувати нормальний алгоритм Маркова, що реалізує додавання чисел.
Розв’язання.
Алфавіт алгоритмічної системи А = {1,+}. Правила підстановок.
Р = {1 + 1 11+, 1+ 1}
Граф-схема алгоритму додавання (рис. 3.6):
Рис. 3.6. Граф-схема
алгоритму додавання
Перевірка: 5 + 2 = 7;
Вхідний ланцюжок: 11111 + 11
11111+11
111111+1
1111111+
1111111
Вихідний ланцюжок: 1111111.
2. За умовами задачі 1 побудувати нормальний алгоритм Марко-ва віднімання чисел.
3. Побудувати нормальний алгоритм Маркова переведення чисел з десяткової системи у двійково-десяткову (кожна десяткова цифра замінюється її двійковим кодом).
4. Побудувати нормальний алгоритм Маркова представлення двійкових чисел у прямому коді, якщо воно невід’ємне, або в оберненому коді, якщо воно від’ємне.
5. Задано машину Тьюринга зовнішнім алфавітом А = {0, 1, *} та внутрішнім алфавітом Q = {q0, q1, q2, q3}, де q0 — порожній символ, q3 — заключний стан. Програму машини Тьюринга задано у вигляді таблиці відповідності:
Q |
1 |
0 |
* |
|
q2OЛ |
q0 Л |
q3 O |
q1 |
q1 П |
q0 Л |
Q + П |
q2 |
q2 Л |
q1 1 |
q2 Л |
q3 |
останов |
|
|
Побудувати алгоритми додавання двох чисел та записати відповідні конфігурації машини, якщо задано початкові конфігурації
1) q0111*11
2) q011111*111
3) q00011*0011.
6. Абстрактний автомат Мілі (I роду) задано трьома множинами: вхідним алфавітом А = {x, y}, вихідним алфавітом B = {u, v}, множиною станів S = {1, 2, 3, 4} та двома функціями (переходів та виходів) у вигляді таблиць:
Таблиця переходів Таблиця виходів
-
1
2
3
4
1
2
3
4
x
2
4
–
4
x
v
u
–
u
y
3
2
4
4
y
u
v
u
u
Вхідні слова: xxyyxx, xyxyxxy,
yyyxxx, yxxxy.
Побудувати алгоритми визначення вихідних слів.
7. Задано схему Р граматики G
P = {D à ABB, C à DCD, C à AB, Bà A}.
Визначити VT, VH, S і мову L(G).
Побудувати виводи граматики та визначити їх довжину.
8. Задано граматику G словником V = {A, B, C, D, E} та схемою правил P:
P = {E à DCD, E à A, D à BC, D à C, A à BB}.
Визначити VT, VH, S граматики G, побудувати мову L(G), виводи граматики та визначити їх довжину.
9. Нехай маємо породжувальну граматику G = {VT, VH, P, S}, де VH = {S, A, B, C, D} — нетермінальний словник, символи якого означають :
S — дієслово (виділений символ);
A — корінь;
B — префікс;
C — суфікс;
D — закінчення;
VT = {b, c, d, e, f, i, j, k, l}, символи якого означають:
е — біг, d — ляк, i — пере,
b — кид, j — ви, k — ти,
с — трим, f — за, l — а.
Правила підстановок:
P = {S à ACD; B à і; B à j; B à f; A à b; A à c; A à d;
A à e; C à l; D à k}.
Побудувати схему граматики, визначити за нею всі термінальні ланцюжки та виділити з них ті, що належать до природньої мови.

А