
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни Рекомендовано Міністерством освіти України
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни
- •Тема 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. Запитання для самоконтролю засвоєння теми
Тема 6. Алгоритми обробки соціально-економічної інформації
6.1. Методичні вказівки до вивчення теми
Соціально-економічна інформація має свої особливості щодо складу та структури, а також потребує певних припустимих операцій обробки. Як правило, ця інформація є деякою сукупністю (записом) елементів (різних типів), кожний з яких містить певну характе-
ристику деякого об’єкта, звідки випливає, що припустимі операції визначатимуться для кожного елемента окремо. Ця інформація має такі особливості:
Рис. 6.1. Типи процедур обробки соціально-економічної інформації
— більшість операцій обробки логічні;
— простота арифметичних операцій;
— великі обсяги та складна ієрархічна структура інформації;
— циклічність і періодичність обробки;
— обробка порціями (записами).
Зазначимо також, що для соціально-економічної інформації характерні й певні процедури обробки. Можна визначити типи процедур обробки (рис. 6.1).
Сукупності записів називають файлом (File). До файла можуть належать записи тільки однакової структури. Запис може складатися з одного або декількох елементів. Його елементом може бути як скалярна змінна будь-якого типу, так і масив або інша структура.
Через те що соціально-економічна інформація має великі обсяги, вона вся разом не може водночас знаходитись в оперативній пам’яті, а зберігається на зовнішніх носіях, і частинами (записами) послідовно передається до оперативної пам’яті.
Треба запам’ятати, що незалежно від того, яка інформація нас цікавить, запис передається в повному обсязі, тобто зміст всіх полів.
По-друге, в будь-який момент часу ми маємо доступ тільки до одного запису — саме того, який було передано останнім. Отже, в оперативній пам’яті необхідно зарезервувати область, структура якої збігається зі структурою запису, до якої послідовно передаватимуться записи файла.
Таким чином, обробка соціально-економічної інформації — завжди циклічний процес.
До тіла циклу входитимуть операції обробки одного запису. Цикл повторюватиметься стільки разів, скільки записів містить файл. Вихід із циклу здійснюється за перевіркою кінця файла або якоїсь умови.
Розглянемо типи процедур обробки соціально-економічної інформації, зображені на рис. 6.1.
6.1.1. Створення та контроль наборів даних (6.1)
Процедура синтаксичного контролю та запису інформації на носії складається з послідовності дій, таких як введення із клавіатури, візуальний та програмний контроль введеної інформації з формуванням відповідних повідомлень щодо результатів контролю. У разі вірної вхідної інформації запис виводиться на носії.
Якими можуть бути контрольні дії?
— Перевірка відповідності типу, тобто перевірка використання тих символів алфавіту, які припустимі для представлення інформації кожного з типів даних.
— Перевірка відповідності форматів введення даних їхньому синтаксису.
— Перевірка приналежності даних до певних сукупностей, до певних відрізків значень, перевірка відповідності певним логічним умовам і т. ін.
Алгоритм синтаксичного контролю створення запису файла даних на носії зображено на рис. 6.2.
Приклад 1. Підготувати набір даних, створити файл KADR — «Відомості про співробітників» на носії, використовуючи програму синтаксичного контролю. Набір має таку структуру:
Елемент |
Ідентифікатор |
Значність |
Код підприємства Код цеху Табельний номер працівників Прізвище працівника Стать Рік народження Код національності Сімейний стан Стаж роботи загальний Стаж роботи неперервний Код професій Розряд Оклад Кількість дітей |
KPRED KZEX TABNOM FIO POL ROGD KNAC CIM STZAG STNEP KPROF R OKL DIT |
`99999` `99` `9999` (30)`A` `A` `9999` `99` `9` `99` `99` `9999` `9` `9999.99` `99` |
Розглянемо елементи даних, що належать запису.
Кодом підприємства є ціле число, як табельний номер, кількість дітей, розряд та код професії. Отже, їх можна контролювати за приналежністю множині цілих чисел.
Рис. 6.2. Алгоритм синтаксичного контролю створення і запису файла на носії (6.1)
Код цеху можна контролювати за приналежністю множині кодів цехів.
Прізвище контролюється використанням множини літерних символів та символу дефіс.
Елемент «стать» перевіряється приналежністю множині {M,Ж}.
Рік народження повинен знаходитись у деяких межах, наприклад 1900 < ROGD < RIK — 14, де RIK — поточний рік.
Стаж роботи загальний не повинен перевищувати вік людини, зменшений на 14 років.
Стаж роботи неперервний не повинен перевищувати стаж загальний.
Оклад має відповідати формату чисел із фіксованою точкою.
Цей аналіз полів даних дозволяє розробити алгоритм синтаксичного контролю створення та запису файлу.
Для цього введемо деякі позначення:
MN — множина кодів національностей;
MS — множина сімейних станів;
MR — множина розрядів;
V — загальна кількість записів;
PR — кількість правильних записів;
POM — кількість помилкових записів.
Алгоритм зображено на рис. 6.3.
Зауважимо, що у цьому прикладі здійснюється синтаксичний контроль усіх полів, що не завжди потрібно. Іноді достатнім є візуальний контроль деяких полів.
Крім того, у системах програмування передбачені деякі види синтаксичного контролю, що звільняє програміста від програмного контролю відповідних полів. При спробі введення, наприклад, непри-пустимих символів для цілих чисел система заблокує введення такого запису.
Отже, у кожному конкретному випадку необхідно визначити, для яких полів програмний синтаксичний контроль є необхідним. Звичайно, тут не йдеться про помилки особи, яка виконує введення даних. Вважаємо, що вона зобов’язана здійснювати візуальний контроль набирання даних.
Надалі цей створений файл будемо використовувати в усіх інших алгоритмах як вхідний файл.
Рис. 6.3. Приклад 1 алгоритму створення файла з синтаксичним контролем (6.1)
Закінчення рис. 6.3
Рис. 6.3. Приклад 1 алгоритму створення файла з синтаксичним контролем (6.1)
Рис. 6.4. Алгоритм коригування файла 6.2