- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни Рекомендовано Міністерством освіти України
- •Алгоритмізація і програмування процедур обробки інформації Навчально-методичний посібник для самостійного вивчення дисципліни
- •Тема 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. Запитання для самоконтролю засвоєння теми
8.1.4. Розробка проекту програми
Наступний етап — розробка проекту програми, коли вирішується питання, як саме програма повинна реалізувати функції, що містяться у вихідному описі. Рішення, прийняті на етапі проектування, визначають ступінь складності супроводу. Всі методи проектування програм складаються з двох компонентів: способу розкладу програми на окремі частини та способу документування результатів проектування. Треба зазначити, що поділ розроблюваного об’єкта на складові частини на попередньому етапі виконувався з точки зору постановника задачі. Це не завжди найкраще з точки зору програмної реалізації. Всі методи проектування переслідують одну ціль розкладу: забезпечити простоту розуміння програми на етапах розробки та супроводження, спростити розподіл праці при розробці, підвищити продуктивність праці на етапі тестування та налагодження. Використовують такі методи (або їх комбінації): методи структурного аналізу (функцій та їх середовища), евристичні (на функціональному принципі), структурного проектування (з використанням типових управлінських структур), методи, що базуються на аналізі структур даних. Найчастіше програма буде представлена у вигляді ієрархічної багаторівневої структури модулів.
Складається узагальнений алгоритм, який визначає зв’язок і послідовність виконання програмних модулів, а потім будуються більш детальні алгоритми кожного програмного модуля.
Особливу увагу структуруванню програмного продукту студенти повинні приділити при розробці програмного забезпечення курсового проекту. Необхідно ретельно дотримуватися таких умов:
окремі програмні модулі мають бути чітко визначені, кожний із них можна створювати та налагоджувати окремо;
кожний модуль повинен мати один вхід і один вихід (неприпустимо звертатися до середини або до частини модуля);
модулі не повинні мати великий обсяг;
визначити, як здійснюється зв’язок з кожним модулем (спосіб звертання, склад інформації, що передається модулю при звертанні до нього та при виході з нього);
модулі або викликають один одного, або створюється головна управлінська програма, яка забезпечує послідовність виклику модулів;
кожний модуль може викликати тільки модулі безпосередньо наступного рівня (не дозволяється звертатися до елементів більш низьких рівнів, ніж наступний);
до внутрішньої логіки модуля та внутрішньої використовуваної ним інформації ніяких умов не ставлять;
бажано, щоб один модуль не коригував текст іншого модуля;
крім зв’язків, що здійснюються при звертанні до модуля, можуть існувати зв’язки, зумовлені використанням кількома модулями спільних елементів (областей даних, областей пам’яті, пристроїв). Ці елементи не передбачаються явно при звертанні, тобто зв’язок може бути посереднім, важко дослідити послідовність змін спільних елементів. Більше того, зв’язок може бути випадковим, визначеним уже в процесі експлуатації модуля;
бажано, щоб внесення змін в один модуль не спричиняло зміну багатьох модулів;
кожний модуль повинен бути відновлюваним, тобто результат його роботи не повинен залежати від результатів попередніх звернень до нього;
основна мета всіх цих методів — швидке створення та просте супроводження програми, щоб логіка її роботи була зрозумілою, а правильність легко доводилась.
Способи документування також різні в різних методах проектування, однак завжди дотримується одна вимога: документування проекту здійснюється не після закінчення етапу, а в процесі його виконання.
