Methods_AP_PZ
.pdfМІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ
«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»
Електронне видання
Програмування – 1. Алгоритмічне програмування
Методичні вказівки до виконання практичних занять Для студентів напряму підготовки
6.050201 «Системна інженерія» кафедри автоматики та управління в технічних системах
денної форми навчання
Рекомендовано Вченою радою факультету
інформатики та обчислювальної техніки НТУУ «КПІ» Протокол №__ від «__»___20__ р.
Київ НТУУ «КПІ»
2012
Програмування – 1. Алгоритмічне програмування. Методичні вказівки до виконання практичних занять. [Електронне видання] / Уклад.: Я.Ю.
Дорогий, О.М. Борцова. – К.: НТУУ «КПІ», 2012. – 76 с.
Методичні вказівки призначені для студентів напряму підготовки
6.050201 «Системна інженерія» кафедри автоматики та управління в технічних системах денної форми навчання. В посібнику наведена тематика практичних робіт, теоретичні відомості, завдання для виконання робіт,
список літератури.
Укладачі |
Я.Ю. Дорогий, асистент |
|
О.М. Борцова, асистент |
Відповідальний редактор |
С.Ф. Теленик, д.т.н., проф. |
Рецензент |
М.М. Ткач, к.т.н., доцент |
|
кафедри технічної кібернетики |
За редакцією укладачів
2
|
ЗМІСТ |
|
ВСТУП.................................................................................................................. |
5 |
|
1 Мета та завдання дисципліни ........................................................................... |
6 |
|
2 Практичні роботи .............................................................................................. |
8 |
|
Практична робота № 1 ......................................................................................... |
8 |
|
1.1 |
Теоретичні відомості................................................................................... |
8 |
1.2 |
Завдання на практичну роботу ................................................................. |
10 |
Практична робота № 2 ....................................................................................... |
13 |
|
2.1 |
Теоретичні відомості................................................................................. |
13 |
2.2 |
Завдання на практичну роботу ................................................................. |
16 |
Практична робота № 3 ....................................................................................... |
19 |
|
3.1 |
Теоретичні відомості................................................................................. |
19 |
3.2 |
Завдання на практичну роботу ................................................................. |
25 |
Практична робота № 4. ...................................................................................... |
29 |
|
4.1 |
Теоретичні відомості................................................................................. |
29 |
4.2 |
Завдання на практичне завдання .............................................................. |
30 |
Практична робота № 5 ....................................................................................... |
31 |
|
5.1 |
Теоретичні відомості................................................................................. |
31 |
5.2 |
Завдання на практичну роботу ................................................................. |
35 |
Практична робота № 6 ....................................................................................... |
40 |
|
6.1 |
Теоретичні відомості................................................................................. |
40 |
|
|
3 |
6.2 |
Завдання на практичну роботу ................................................................. |
43 |
Практична робота № 7 ....................................................................................... |
48 |
|
7.1 |
Теоретичні відомості................................................................................. |
48 |
7.2 |
Завдання на практичну роботу ................................................................. |
52 |
Практична робота № 8 ....................................................................................... |
54 |
|
8.1 |
Теоретичні відомості................................................................................. |
54 |
8.2 |
Завдання на практичну роботу ................................................................. |
65 |
Практична робота №9 ........................................................................................ |
67 |
|
9.1 |
Теоретичні відомості................................................................................. |
67 |
9.2 |
Завдання на практичну роботу ................................................................. |
70 |
3 Загальні рекомендації та вимоги до роботи................................................... |
72 |
|
3.1 |
Загальні рекомендації до виконання роботи............................................ |
72 |
3.2 |
Вимоги до виконання практичних робіт .................................................. |
72 |
СПИСОК РЕКОМЕНДОВАНОЇ ЛІТЕРАТУРИ............................................... |
73 |
|
ПРИМІТКИ......................................................................................................... |
74 |
4
ВСТУП
Методичні вказівки до виконання практичних робіт використовуються при вивченні кредитного модуля «Програмування – 1. Алгоритмічне програмування» студентами всіх форм навчання і включають додаткові практичні завдання, що стосуються саме алгоритмізації, а також вимоги до оформлення цих робіт.
5
1 Мета та завдання дисципліни
Навчальна дисципліна МПН 05 «Програмування» (ПРОГ-1. АП)
відноситься до циклу математичної природничо-наукової підготовки нормативної частини навчальної програми бакалавра напряму підготовки
6.050201 «Системна інженерія».
Основна мета дисципліни – придбання знань, навичок і умінь застосування методів і засобів сучасного програмування для подальшого використання в задачах дослідження і формалізації об'єктів управління в автоматичних та/або автоматизованих системах управління технічними об'єктами, аналізу і синтезу цих систем, а також організації робочого місця інженера (конструювання, проектування, менеджмент і маркетинг систем автоматичного (автоматизованого) управління в технічних системах).
Курс «Програмування – 1. Алгоритмічне програмування» забезпечує засвоєння студентами наступних дисциплін бакалаврату:
–ПП 15 «Математичне програмування та дослідження операцій».
–ПП 20 «Основи теорії інформаційних процесів»;
–ПП 17 «Цифрова обробка сигналів та зображень»;
–ПП 26 «Комп’ютерна криптографія»;
–ПП 04 «Операційні системи»;
–ПП 06 «Архітектура комп’ютерних систем»;
–ПП 07 «Комп’ютерні мережі»;
–ПП 08 «Системи управління базами даних»;
–ПП 09 «Теорія систем та системний аналіз».
Цей курс забезпечує засвоєння студентами наступних дисциплін
спеціальності та спеціалізації:
–«Методи створення інформаційно-телекомунікаційних систем та мереж»;
–«Проектування комп’ютеризованих систем управління»;
–«Управління інформаційно-телекомунікаційними системами»;
–«Інтегровані корпоративні інформаційно-управляючі системи»;
6
– «Технології штучного інтелекту в управлінні».
Цей курс також забезпечує засвоєння студентами таких дисциплін
магістерської підготовки:
–«Методи створення інформаційно-телекомунікаційних систем та мереж»;
–«Проектування комп'ютеризованих систем управління»;
–«Сучасні технології створення програмних систем»;
–«Сучасні технології програмування».
Для засвоєння дисципліни необхідні знання математики на рівні основної школи, основ програмування, алгоритмічних мов в обсязі,
передбаченому програмою випускних класів школи.
В результаті вивчення дисципліни студенти повинні
ЗНАТИ:
–роль та місце ПРОГ1 в задачах управління технічними системами;
–основні етапи розробки програм;
–мови представлення алгоритмів;
–методи проектування програм;
–основні елементи мови;
–структуру програм;
–основи об’єктно-орієнтованого аналізу.
ВМІТИ:
–вибирати та застосовувати адекватні та ефективні алгоритми та програмні продукти;
–розробляти власні програми з використанням процедурної парадигми;
–розробляти власні програми з використанням об’єктної парадигми;
–виконувати об’єктно-орієнтований аналіз;
–виконувати декомпозицію систем;
–супроводжувати свої та куповані програмні продукти.
7
2 Практичні роботи Практична робота № 1
Структурне програмування. Розробка та аналіз алгоритмів
1.1 Теоретичні відомості
Структурне програмування зверху вниз (СПЗВ) – це така методологія проектування програм, яка передбачає вирішення завдання від загального до конкретного з використанням тільки типових (композиції, вибору і циклу)
елементарних структурних елементів алгоритму. Іншими словами, в СПЗВ твердження "зверху вниз" припускає послідовну декомпозицію задачі на все більш дрібні смислові частини модулів, блоків, кроків і т.д. до тих пір, поки досягнутий ступінь деталізації рішення забезпечить для кожного окремого кроку очевидність і однозначність, з одного боку, призначення, структуру та логіку роботи цього кроку і, з іншого боку, способу кодування
(програмування) цього кроку на вибраній або заданій алгоритмічній мові.
Сенс першого твердження "структурне програмування" в СПЗВ відображає правило "один вхід один вихід", що вимагає щоб в будь-якому модулі, блоці або кроці алгоритму і у всьому алгоритмі в цілому зберігався природний порядок виконання команд і операторів.
В рамках СПЗВ розроблено дві схеми підготовки завдання до вирішення на ЕОМ: узагальнена і скорочена.
Узагальнена схема підготовки завдання до рішення:
1.Постановка завдання.
2.Розробка логіко-математичної моделі.
3.Вибір методу обчислення.
4.Розробка алгоритмів.
5.Перевірка правильності та оцінки ефективності алгоритмів.
6.Кодування алгоритмів і перевірка правильності програми.
7.Складання документації.
8.Підготовка вихідних даних.
8
9.Оформлення завдання або підготовка ЕОМ до виконання програми.
10.Супровід програми.
11.Змістовна інтерпретація отриманих результатів.
Структурне програмування - це метод програмування, що передбачає створення зрозумілих, простих та зручних для прочитання програмних модулів та програмних комплексів на мовах програмування.
Для кодування програмних модулів використовуються уніфіковані
(базові) структури. Доведено, что будь-яка программа може бути написана з використанням лише трьох канонічних структур (лінійна, розгалужена,
циклічна).
Технології структурного програмування зверху вниз:
1)структурований алгоритм складається з двох логічних частин:
шапки, тобто керуючого модуля (диспетчера, збирача), що підтримує інтерфейс з користувачем і викликає (включає) в
роботу інші (виконувані) модулі;
виконуваних модулів, що вирішують окремі задачі, підзадачі і т.д. у відповідності з призначенням і логікою роботи даного алгоритму;
2)у структурованому алгоритм модуль будь-якої складності і призначення, в тому числі керуючий має тільки один вхід і тільки один вихід;
3)у структурованому алгоритмі будь-який модуль, в тому числі і керуючий має структуру відповідно 1) і 2) і розробляється зверху вниз,
тобто від загального до приватного шляхом декомпозиції (розбиття)
загальної задачі на приватні задачі, підзадачі і т. д.; 4) у структурованому алгоритм будь-якої його модуль повинен бути
правильним, доступним для огляду і зрозумілим.
Приклад 1.1. Потрібно обчислити A0 + A1 * X + A2 * X2+ A3 * X3.
Рішення.
9
1) рішення "в лоб" – це безпосереднє програмування полінома A0 + A1 * X + A2 * X2 + A3 * X3, яке, однак, ігнорує питання систематичних
(логарифмування і потенціювання при обчисленні степенів) та операційних помилок і помилок округлення, а також трудомісткість алгоритму (по 3
операції додавання і множення і 2 операції піднесення до степеня). Крім того,
це рішення не універсальна і не придатне для обчислення полінома,
наприклад, 2-й або 5-го ступеня;
2) варіант програмування A0 + A1 * X + A2 * X * X + A3 * X * X * X
усуває систематичні, але не мінімізуються операційні помилки і помилки округлення (6 операцій множення та 3 операції додавання). Крім того,
проблема універсальності алгоритму як і раніше не вирішується;
3) рішення по схемі Горнера x (x (ax + b) + c) + d мінімізує помилки і трудомісткість (по 3 операції додавання і множення), виключає операції піднесення до степеня і забезпечує універсальність алгоритму.
1.2 Завдання на практичну роботу
Порахувати та вивести на екран у вигляді таблиці значення функції,
заданої за допомогою ряду Тейлора на інтервалі від хпоч до хкін з кроком dx=0.1 з точністю =0.001 згідно свого варіанту (таблиця 1.1).
Таблиця 1.1 – Варіанти завдань
№вар. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Завдання |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
x 1 |
|
|
|
1 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
1 |
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
ln |
|
|
2 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
x |
|
1 |
||||||||
|
x 1 |
|
(2n 1)x2n 1 |
|
|
|
|
|
|
3x3 |
|
5x5 |
||||||||||||||||||||||||||||||||
|
|
|
|
n 0 |
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
2 |
|
|
( 1)n xn |
x2 |
|
|
|
|
x3 |
|
|
|
|
|
x4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
e x |
|
|
|
|
1 x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
x |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
n 0 |
|
n! |
2! |
|
|
|
|
3! |
|
|
|
|
4! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
3 |
|
|
|
|
|
|
( 1)n xn 1 |
|
|
|
x2 |
|
|
|
|
x3 |
|
x4 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
ln(x 1) |
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... 1 x 1 |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
n 0 |
|
n 1 |
|
|
2 |
|
|
|
|
|
|
|
3 |
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
4 |
|
1 x |
|
|
|
|
x2n 1 |
|
x3 |
|
|
|
|
|
x5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
ln |
|
|
2 |
|
|
|
|
2(x |
|
|
|
|
|
|
|
|
|
|
|
...) |
x |
1 |
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
1 x |
|
|
n 0 |
|
2n 1 |
|
3 |
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10