- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни Рекомендовано Міністерством освіти України
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни
- •Тема 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. Запитання для самоконтролю засвоєння теми
7.1.5. Програмні інтерфейси та інструментальні засоби розробки програмних продуктів
Щоб програма була надійною, вона повинна мати просту структуру, легко читатись, використовуватись та опрацьовуватись. Для цього необхідно розбити її на менші модулі, кожний з яких є реалізацією деякого самостійного етапу обробки інформації, визначити інтерфейси (зв’язки) між ними, виконати ретельну синтаксичну перевірку відповідності модулів тим вимогам, що на них покладені. Перед виконанням модуля здійснюється перевірка його на актуальність та узгодженість з іншими модулями в процесі їх виконання.
Методологія програмування стверджує, що поділ програми на окремі модулі є дуже ефективним, оскільки кожний модуль розглядатиметься незалежно від інших. За таких умов можна як завгодно змінювати внутрішню логіку роботи окремого модуля, якщо ці зміни не зачіпають його інтерфейсів. На спільну працездатність програмної системи це жодним чином не впливає.
Інтерфейс модуля складається з двох компонент: статичний інтерфейс та динамічний інтерфейс.
Статичний інтерфейс містить текстуальні властивості модуля. Статичний інтерфейс явно описано мовою програмування, тобто він явно присутній у програмному модулі, і компілятор перевіряє його узгодженість з модулем.
Динамічний інтерфейс містить характеристики поведінки модуля під час його виконання. Його не можна описати явно мовою програмування і перевірити за допомогою компілятора. Отже, необхідно мати деякі позамовні засоби, які б виконували динамічну перевірку модуля. Звідси випливає, що для промислового виробництва програмного забезпечення недостатньо мати мову програмування, потрібна ще велика кількість взаємопов’язаних інструментів, які не тільки полегшать взаємодію програмістів з програмним комплексом, але й дозволять проводити різноманітні перевірки комплексу та його окремих частин з метою отримання гарантованих характеристик якості всього програмного проекту.
Позамовні засоби називають оточенням мови програмування або системою підтримки розробок програмного забезпечення (ПЗ).
Система підтримки повинна забезпечувати підтримку розробки ПЗ упродовж усього його життєвого циклу. Вона складається із сукупності взаємопов’язаних програмних засобів, яка забезпечує комплексну автоматизацію всіх етапів життєвого циклу ПЗ, а не фрагментарну автоматизацію її окремих етапів.
Функціонально система складається з трьох частин: база даних (БД), інтерфейси та сукупність інструментальних засобів.
БД призначена для централізованого збереження всіх даних, пов’язаних з проектом (дані контрольних прикладів, обмеження, умови...)
Інтерфейсами є сукупність уніфікованих засобів, які забезпечують взаємодію з БД, інструментальними засобами та користувачами.
Інструментальні засоби прислуговують для розробки програм, їх супроводження, керування проектом і т. ін.
Повний набір інструментальних засобів програмування містить:
компілятор;
редактор текстів;
редактор зв’язків;
процесор візуального виводу;
формувач перехресних посилань;
аналізатор передач управління в програмному комплексі;
інтерактивний динамічний налагоджувач;
користувацький інтерфейс;
засоби конфігураційного управління проектом;
мовно орієнтований редактор;
розвинутий мовний інтерфейс;
засоби автоматизації верифікації ПЗ;
засоби автоматизації проектування ПЗ;
оптимізатори та кодогенератори для різних ЕОМ;
засоби обліку та контролю процесу розробки ПЗ;
спеціалізовані проблемно орієнтовані засоби;
графічні засоби планування та контролю розробки ПЗ.
Такий стандарт забезпечує мобільність самої системи підтримки розробок на рівні вхідних текстів. Оскільки система програмування на базі будь-якої мови повинна легко переноситись на будь-яку ЕОМ, операційну систему, в межах яких реалізовано ядро мови, реалізація програм системи має виконуватись тільки з використанням пакетів, які описують набір інтерфейсів:
1. Ієрархічне середовище розробки. Кожен рівень середовища відповідає певному користувачу або процесору. Для кожного рівня визначається зміст: атрибути, взаємозв’язки вузлів, базові функції, що забезпечують санкціонований доступ до інформації вузлів.
2. Процеси. Описані функції, пов’язані із запуском та управлінням програми.
3. Ввід/вивід. Визначені функції вводу-виводу на рівні файлів, базовий ввід/вивід на рівні пристроїв та засоби зв’язку між процесами.
4. Програми-утиліти. Визначені допоміжні функції, що допомагають у роботі зі значеннями параметрів та атрибутів.
