Питання про iнфекцii стригучого лишаю
Автор: Данило Андрійович Бодня • Октябрь 31, 2022 • Курсовая работа • 3,413 Слов (14 Страниц) • 136 Просмотры
[pic 1]
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Циклова комісія:
Дисциплін програмної інженерії
Затверджую:
Голова циклової комісії
_________ /
“___” __________ 2019 р.
КУРСОВА РОБОТА
з дисципліни: “Основи програмування та алгоритмічні мови”
Тема: “ ПИТАННЯ ПРО ІНФЕКЦІЇ СТРИГУЧОГО ЛИШАЮ” .
Виконав:
здобувач освіти
__________
Перевірив:
__________
__________ ____________
__________ _____________
Полтава – 2019
ЗМІСТ
ВСТУП 3
1. ПОСТАНОВКА ЗАДАЧІ 4
1.1. Основні вимоги до програми 4
2. ОПИС ПРОЕКТНИХ РІШЕНЬ 6
2.1. Алгоритм програми 6
2.2. Опис програмних засобів та програмного забезпечення 7
2.3. Тестування 9
3. ІНСТРУКЦІЯ КОРИСТУВАЧА 12
ВИСНОВКИ 14
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 15
ДОДАТОК А. ЛІСТИНГ ПРОГРАМИ 16
ВСТУП
Програмування являє собою таке поняття, яке для більшості людей не має абсолютно ніякого значення. Звичайно, майже кожна людина чула це слово, але при цьому багато хто навіть не уявляють собі, чим воно є насправді. Варто відзначити, що насправді програмування являє собою далеко не такий простий предмет, як це багатьом здається на перший погляд, хоча деякі і зовсім сприймають його як хобі. Його складність проявляється в тому, що потрібно забезпечувати серйозну розумову віддачу, що тренує мислення, а також сприяє розвитку логіки. Само по собі програмування є затребуваним практично у всіх сферах нашого життя, внаслідок чого навіть не варто сумніватися в його практичній користі.
Курсова робота демонструє рівень вмінь студента до самостійного пошуку та розв’язування проблемних завдань, котрі поставлені у ній. Курсова робота ґрунтується на теоретичних знаннях та практичних навичках, отриманих студентом протягом навчання і самостійної науково-дослідної роботи, яка свідчить про вміння узагальнювати теоретичний і практичний матеріал.
Завдання курсової роботи:
- закріпити, поглибити та узагальнити базові теоретичні знання з дисципліни «Основи програмування та алгоритмічні мови»;
- покращити практичні навички застосування знань до комплексного вирішення конкретного завдання;
- реалізувати розв’язання задачі про «Питання інфекції стригучого лишаю».
- ПОСТАНОВКА ЗАДАЧІ
«Питання про iнфекцiю стригучого лишаю»
Промоделювати процес поширення iнфекцiю – стригучого лишаю по дiлянцi шкiри розмiром n X n (n – непарне) клiтин. Передбачається, що вихiдною зараженою клітиною шкiри є центральна. У кожен iнтервал часу уражена iнфекцiєю клiтина може з ймовiрнiстю 0,5 заразити будь яку з сусiднiх здорових клiтин. Пiсля шести одиниць часу заражена клiтина стає несприйнятливою до iнфекцii, iмунiтет, що виник дiє протягом наступних чотирьох одиниць часу, а потiм клiтина виявляється здоровою. В ходi моделювання описаного процесу видавати поточний стан модельованого дiлянки шкiри в кожному iнтервалi часу, вiдзначаючи зараженi, несприйнятливi до iнфекцii i здоровi клiтини.
Вхідні дані: розмір ділянки шкіри (кількість клітин).
Вихідні дані: моделювання зараження шкіри, під час інфекції стригучого лишаю.
1.1. Основні вимоги до програми
Програма повинна бути написана на одній з мов програмування: С або С++.
Враховуючи вимоги до виконання роботи, прийнято рішення реалізувати програму на мові С, використовуючи IDE Code::Blocks.
Програма повинна відповідати таким вимогам:
- вказати розмір шкіри, яка складається з n клітин;
- визначати вихідною зараженою клітиною - центральну;
- заражати, ураженими інфекцією клітинами, з ймовірністю 0,5 сусідні здорові клітини;
- наділяти клітинам імунітет, які протягом 6 умовних одиниць часу були заражені;
- повертати клітині статус здорової, яка протягом 4 умовних одиниць часу мали імунітет;
- видавати поточний стан модельованої ділянки шкіри, визначаючи здорові, імунітетні та заражені клітини.
- ОПИС ПРОЕКТНИХ РІШЕНЬ
2.1. Алгоритм програми
Для реалізації програми було вирішено використовувати такий алгоритм програми:
- вказується розмір шкіри;
- заповнюються необхідні для програми двовимірні масиви нулями;
- знаходяться центральні клітини шкіри та призначається їм статус зараженої в масивах leather та leather1 (основний масив та допоміжний для запису і збереження інформації з основного);
- на екран виводиться символьний двовимірний масив, де '.' – здорова клітина, '*' – заражена клітина, '#' – імунітетна клітина;
- створюється цикл, який перебирає кожен елемент основного масиву;
- якщо клітина уражена інфекцією (==1) – додається одиниця відповідному елементу масиву imun одиницю (для перевірки клітини на кількість одиниць часу в зараженому стані) та при умові що клітина не заражена (==0) і не виходить за межі масиву, вказується відповідній клітині в допоміжному масиву leather1 новий статус клітини (зараженої чи здорової з ймовірністю 50%, за допомогою функції rand());
- якщо клітина основного масиву leather має статус імунітету (==8), до відповідного елементу додаткового масиву imun1 (для перевірки клітини на кількість одиниць часу в імунному стані), додається одиниця.
- переносяться всі значення елементів масиву leather1 в основний масив leather;
- якщо елемент масиву imun дорівнює 6 (клітина в стані зараження пробула 6 одиниць часу), змінюється статус відповідної клітини в основному масиві на імунітетну, а значення цього елемента в масиві imun прирівнюється до нуля;
- аналогічно, якщо елемент масиву imun1 дорівнює 4 (клітина в стані імунітету пробула 4 одиниці часу), змінюється відповідний статус клітини в основному масиві на здорову а значення цього елемента в масиві imun1 прирівнюється до нуля;
- виконується перевірка, в результаті якої всі елементи основного масиву сумуються в змінну end, і якщо end дорівнюватиме нулю (всі елементи основного масиву дорівнюють нулю, тобто всі клітини здорові), виводимо відповідне повідомлення про відсутність інфекції на екран;
- дані дії повторюються по нажиманні клавіши Enter;
- для виведення меню програми на екран, використовується функція instruction();
- для виведення умови задачі на екран, використовується функція condition();
- для моделювання інфекції стригучого лишаю на ділянці шкіри, використовується функція body().
- для генерації випадкового числа (0 чи 1) використовується функція rand()
Загальна блок-схема роботи програми представлена на рисунку 2.1.
...