
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни Рекомендовано Міністерством освіти України
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни
- •Тема 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. Запитання для самоконтролю засвоєння теми
Типова програма
Дисципліни «Алгоритмізація і програмування
Процедур обробки інформації»
Частина і
ЕМА 1. ВВЕДЕННЯ В ТЕОРІЮ АЛГОРИТМІВ
Поняття алгоритму, його визначення, основні властивості, перетворення та еквівалентність алгоритмів, алгоритмічна розв’я-зність проблем.
ЕМА 2. ФОРМИ ТА ЗАСОБИ ПРЕДСТАВЛЕННЯ АЛГОРИТМІВ
Словесна, словесно-формульна форма, граф-схеми, блок-схеми, HIPO-схеми, операторні схеми, таблиці рішень.
ЕМА 3. АЛГОРИТМІЧНІ СИСТЕМИ
Визначення алгоритмічної системи та її складових. Класифікація алгоритмічних систем: рекурсивні функції, алгоритми Маркова, машини Поста і Тьюринга, абстрактні автомати, формальні граматики. Побудова алгоритмів у цих системах, форми їх представлення та доцільний вибір алгоритмічної системи для розв’язання задач певного класу. Алгоритмічні основи ЕОМ.
Тема 4. Класифікація задач і процесів обробки інформації
Науково-технічні задачі, задачі обробки спискових структур, інформаційно-пошукові задачі, задачі моделювання та ділові ігри, економічні задачі, задачі розробки і підтримки діалогового режиму.
Тема 5. Типи алгоритмічних процесів та принципи їх побудови
Лінійні процеси, розгалужені процеси (прості та складні), циклічні процеси (з лічильником, ітераційні та складні).
Тема 6. Алгоритми обробки соціально-економічної інформації
Особливості соціально-економічної інформації та операцій її обробки. Створення та контроль наборів даних, коригування й сортування наборів даних, розрахунки підсумків на основі окремого запису, розрахунки підсумків на основі всіх записів, розрахунки проміжних підсумків на основі частини записів, обробка запитів з використанням довідників, розрахунки підсумків на основі багатьох запитів з використанням декількох вхідних файлів.
Тема 7. Визначення та короткий огляд мов програмування
Визначення та особливості мови програмування, вимоги до мов програмування, класифікація мов програмування й напрямки їх розвитку, питання стандартизації мов програмування та мобільності програмних продуктів, програмні інтерфейси та інструментальні засоби розробки програмних продуктів.
Тема 8. Технологія програмування
Зв’язок технології програмування з вимогами до програмних продуктів, прогресивні технології програмування, поняття життєвого циклу програмного продукту, проектування програми, створення програмного тексту, налагодження програми, інтерактивні методи розробки програм, супроводження програм.
Навчально-методичне забезпечення
ЕМА 1. ВВЕДЕННЯ В ТЕОРІЮ АЛГОРИТМІВ
1.1. Методичні вказівки до вивчення теми
1.1.1. Визначення та властивості алгоритму
Структурну схему понять, які розглядаються у темі, зображено на рис. 1.1.
Поняття алгоритму є одним із основних понять сучасної математики. Щодо методів обчислювальної математики, які
Рис. 1.1. Структурний взаємозв’язок основних понять та елементів, що становлять суть алгоритму
застосовуються при розв’язанні задач обробки інформації з використанням ЕОМ, то алгоритм є тим фундаментом, на якому базується кожний із цих методів.
Студенти повинні зрозуміти, що поки вони не побудують в уяві або на папері чітку послідовність своїх дій у процесі розв’язання будь-якої задачі, вони не зможуть описати цей процес на мові програмування, тобто написати вірогідну програму для виконання її на ЕОМ. Значення цього ствердження зростає разом із підвищенням складності задач.
Визначення алгоритму теж змінювалося у часі залежно від того, за допомогою яких понять формулюється це визначення. Тому використовується значна кількість визначень алгоритму. Наведемо одне з них.
Під алгоритмом розуміють скінченну сукупність правил дій, які виконуються у певному порядку для розв’язання всіх задач даного класу.
Чому це визначення алгоритму не є абсолютно строгим математично? Бо нема чіткого визначення поняття всіх задач даного класу. Які задачі можна віднести до одного класу? Ті, що виникають в одній предметній області? Ті, що використовують інформацію одного типу? Чи операції одного типу?
Для багатьох задач можна побудувати послідовність операцій їх розв’язання. Якщо цю послідовність можна використати для розв’язання подібних задач, то вона наближається до алгоритму. Щоб вона ним стала, необхідно, щоб вона набула властивостей алгоритму:
— дискретність, тобто розчленованість алгоритму на окремі операції;
— детермінованість, тобто однозначна визначеність результату кожної операції, не залежна від виконавця;
— масовість — можливість застосування до будь-яких вхідних даних задач виділеного класу;
— результативність — скінченність процесу перетворення інформації.
Щоб побудувати алгоритм, необхідно дотримуватись певних умов:
— вхідні та вихідні дані задаються у вигляді послідовності слів;
— процес розв’язання задачі це є процес перетворення вхідних даних у вихідні;
— процес перетворення складається із сукупності елементарних припустимих операцій формального характеру;
— припустима елементарна операція — це проста, чисто механічна дія, результат якої не залежить від виконавця (машини чи людини);
— послідовність припустимих операцій не залежить від конкретних вхідних даних;
— порядок виконання припустимих операцій визначений однозначно;
сукупність припустимих операцій визначається класом задач та типом даних.
Отже, кожна елементарна операція для будь-якої вхідної інформації визначає вихідну інформацію за певними правилами. Для того, щоб будувати алгоритми, застосовувати їх, робити їх порівняння, оцінювати і вибирати найбільш прийнятний у кожному окремому випадку, необхідно мати якісь загальні засоби представлення алгоритмів. Для цього вводяться деякі поняття. І, перш за все, — засоби для представлення інформації. Послідовності слів на вході та виході алгоритму складаються з символів. Які символи для цього використовуються? Залежно від того, які символи ми обираємо, інформацію буде неоднаково представлено і операції перетворення інформації будуть різними. Введемо поняття алфавіту.
Абстрактним алфавітом називають будь-яку скінченну сукупність об’єктів, які називають символами (літерами) цього алфавіту.
Ці символи самі по собі не мають ніякого змісту, властивостей та смислу. Це можуть бути літери алфавіту будь-якої природної мови, цифри, малюнки, значки тощо. Отже, абстрактних алфавітів може бути безліч. Більш того, при розв’язанні однієї задачі можна використовувати декілька алфавітів (вхідний, вихідний, проміжний), навіть розширювати їх, об’єднувати. Але серед них є такі, що використовуються для представлення різних типів інформації, — їх називають стандартними. Найбільш поширеним серед них є двійковий алфавіт {0,1}, який набув найбільшого значення з винаходом та використанням електронних обчислювальних машин для розв’язання задач обробки інформації.
Слово в абстрактному алфавіті — це будь-яка скінченна впорядкована послідовність із його символів.
Кількість символів у слові — його довжина. Якщо довжина дорівнює нулю, то слово називають пустим (0).
Для загального позначення операцій перетворення інформації використовують поняття алфавітного оператора.