11 клас
Існує чотири базових структури алгоритмів: лінійні; розгалужені; циклічні; змішані. Найпростіша в написанні та виконанні перша з цих структур — лінійна. До неї відносяться алгоритми, що складаються лише з простих команд. Які ж команди можна назвати простими?
Простими є ті команди, що виконуються безумовно, тобто після першої команди виконується друга, потім третя і тощо.
На відміну від людини, виконавець «комп’ютер» не може відмовитися від виконання команди, він не може подібно недбалому учню сказати «не хочу», «не можу», «в мене болить голова і поганий настрій». Команда, записана в алгоритмі, повинна бути виконаною, тому, якщо знехтувати суто людськими якостями («не хочу», «не можу» і т.д.), лінійним можна назвати алгоритм ранкового збирання до школи:
Прокинутися / зробити ранковий туалет / одягнутися / поснідати / зібрати речі / одягнути верхній одяг, взутися / вийти до школи.
Та навіть у такому простому алгоритмі ви відразу ж знайдете недоліки. Наприклад, що робити, коли я себе погано почуваю (захворів), а якщо я вже зібрав речі звечора, а якщо я не встиг напередодні вивчити всі уроки і мені необхідно щось повторити, а що значить одягнути верхній одяг (залежить від пори року, погоди тощо). Якщо ж спробувати прослідкувати за вашою поведінкою протягом дня, то з’ясується, що майже ніколи ви не дієте за лінійним алгоритмом. Весь час ви аналізуєте ситуацію, змінюєте свою поведінку та свої плани, пристосовуєтеся до обставин.
Тому набагато частіше зустрічається другий тип алгоритму — розгалужений. Цей алгоритм обов’язково містить у собі хоча б одну умову (зазвичай їх значно більше), і виконується він в залежності від цієї умови.
Тепер розглянемо, що ж таке умова з точки зору виконавця. Умовою називається таке речення, на яке можна дати відповідь «так» чи «ні». Як правило, кажуть, що в першому випадку (коли ми відповіли на речення «так») умова є істинною, а в другому — хибною.
Виходячи з цього, речення «Якого кольору твій піджак?» не можна вважати умовою, а речення «Твоє волосся русяве?»—можна.
Завдання: придумати речення та записати в зошит, які можна вважати умовами, а потім перефразувати їх таким чином,, щоб ці речення стали помилковими, і запропонувати знайти помилки.
Дуже часто в житті ми змушені враховувати велику кількість найрізноманітніших умов. Наприклад, ми йдемо гуляти на вулицю, якщо «мама відпустила» та «гарна погода», а ще якщо «подруга покликала». Уроки дехто з учнів робить, якщо знов таки «тато примусив», або «вчителька дуже сувора». Такі умови називаються складеними. Вони містять кілька простих умов і об’єднуються між собою словами «або» чи «та».
Перше з цих слів («або») використовується у тих випадках, коли необхідне виконання хоча б однієї з умов, тобто хоча б одна з умов є істинною. Наприклад, діти залишаються вдома (не йдуть до школи), якщо «сьогодні вихідний», або «сьогодні канікули», або «сьогодні свято», або «дитина хвора». Ясно, що зовсім не обов’язково, щоб сьогодні були одночасно і канікули, і свято, і вихідний, та ще й хвороба, щоб не піти до школи.
Друге слово («та»), навпаки, використовується лише в тих випадках, коли тільки одночасне виконання всіх умов приводить до результату. Наприклад, тільки у випадку вже зроблених домашніх справ та виконаних домашніх завдань та гарної погоди у вас є надія, що вам дозволять погуляти на вулиці з друзями довше, ніж завжди.
Завдання: записати самостійно в зошит «Чи виконається подія, якщо?», кілька умов, що повинні виконуватися одночасно або по черзі.
Однак, навіть маючи в своєму арсеналі команду розгалуження, важко реалізувати алгоритми, що потребують багаторазового повторення деякої послідовності однакових дій. У цих випадках нас виручає циклічний алгоритм. У нашому житті дуже часто зустрічаються алгоритми з повторами, причому чітко визначаються два типи повторів. В одному випадку ми точно знаємо, скільки разів необхідно повторити задану послідовність команд, а в іншому — ні. Наприклад, в першому класі вчителька дає завдання дітям: «Діти, напишіть, будь ласка, в зошитах десять цифр «1», а потім рядочок цифр «2». Чим відрізняються ці два завдання? В першому випадку дитина отримала чітку вказівку написати десять одиниць, а в другому — ця вказівка була неточною (рядочок двійок). Чому другий випадок не такий точний? Тому що кількість написаних кожним учнем цифр буде залежати від їх власного почерку: одні учні пишуть охайно маленькими цифрами, інші — неохайно величезними кривулями.
Залежно від того, чи знаємо ми скільки разів необхідно повторювати якусь послідовність команд, розрізняють цикли з лічильником (кількість повторень відома заздалегідь) та цикли з умовою (цикл повторюється доти, доки не виконається якась умова).
Завдання: пофантазувати і придумати ситуації, коли можна визначити кількість повторень, а коли не можна.
Крім того, в циклах з умовою теж можна виділити два різних випадки:
• цикл з передумовою — коли ми спочатку перевіряємо умову, а потім виконуємо деяку послідовність дій (так, ми спочатку перевіряємо, чи вимита підлога в тій класній кімнаті, де нам потрібно чергувати, а потім починаємо прибирання);
• цикл з післяумовою — спочатку ми виконуємо хоч один раз певну послідовність дій, а потім перевіряємо, чи не досягай ми бажаного результату (коли ми хочемо пити, ми спочатку робимо хоча б ковток води, а потім починаємо контролювати, чи не вгамували ми свою спрагу).
Найчастіше ж у житті ми використовуємо змішані алгоритми. Так, дійсно, зранку ми контролюємо свій стан здоров’я, погоду, розклад уроків (коли збираємо речі), свій одяг і таке інше. Коли ми снідаємо, ми повторюємо одну й ту саму послідовність дій (зачерпнути ложкою їжу, піднести до рота, забрати в рот, прожувати, проковтнути, зачерпнути ложкою їжу, піднести до рота і т.д.), коли ми миємо посуд, ми теж повторюємо одну й ту саму послідовність дій. Навіть коли ми йдемо, ми повторюємо визначені дії (подумайте, які).
Отже, найпоширенішим є змішаний тип алгоритму, в якому поєднуються елементи лінійних, розгалужених та циклічних алгоритмів. Під час складання алгоритмів іноді виникає ситуація, коли необхідно виконати повторювану послідовність дій, але не зовсім ідентичну.
Наприклад, необхідно почистити картоплю, моркву, буряк та цибулю. Всі алгоритми чищення загалом схожі, але все ж таки є деякі відмінності. Щоб не переписувати алгоритми, що суттєво не розрізняються, використовують так звані допоміжні алгоритми, що викликаються і виконуються тільки тоді, коли в них є потреба. Перевага використання допоміжних алгоритмів полягає ще в тому, що склавши їх один раз, ми можемо їх потім використовувати при написанні навіть інших алгоритмів. В цьому випадку вони об’єднуються в так звані бібліотеки і ними можна користуватися так, як в реальному житті ми користуємося справжніми бібліотеками.
Основні елементи схем алгоритму
Найменування |
Позначення |
Функція |
Початок або кінець алгоритму |
|
Елемент відображає вхід із зовнішнього середовища або вихід з неї (найбільш часте застосування – початок і кінець програми). Всередині фігури записується відповідна дія. |
Процес. Обчислення. |
|
Виконання однієї або кількох операцій, обробка даних будь-якого виду (зміна значення даних, форми подання, розташування). Всередині фігури записують безпосередньо самі операції. |
Розгалуження |
|
Показує рішення або функцію перемикального типу з одним входом і двома або більше альтернативними виходами, з яких тільки один може бути обраний після обчислення умов, визначених всередині цього елементу. Вхід в елемент позначається лінією, що входить зазвичай у верхню вершину елементу. Якщо виходів два чи три то зазвичай кожен вихід позначається лінією, що виходить з решти вершин (бічних і нижній). Якщо виходів більше трьох, то їх слід показувати однією лінією, що виходить з вершини (частіше нижній) елемента, яка потім розгалужується. Відповідні результати обчислень можуть записуватися поруч з лініями, що відображають ці шляхи. |
Зумовлений процес. Підпрограма. |
|
Символ відображає виконання процесу, що складається з однієї або кількох операцій, що визначений в іншому місці програми (у підпрограмі, модулі). Всередині символу записується назва процесу і передані в нього дані. |
Введення – ведення. |
|
Перетворення даних у форму, придатну для обробки (введення) або відображення результатів обробки (вивід). Цей символ не визначає носія даних (для вказівки типу носія даних використовуються специфічні символи). |
Межа циклу. Вказівка повторення. |
|
Символ складається з двох частин – відповідно, початок і кінець циклу – операції, що виконуються всередині циклу, розміщуються між ними. Умови циклу і збільшення записуються всередині символу початку або кінця циклу – в залежності від типу організації циклу. Часто для зображення на блок-схемі циклу замість цього символу використовують символ рішення, вказуючи в ньому умову, а одну з ліній виходу замикають вище в блок-схемі (перед операціями циклу). |
|
|
|
Коментар |
|
Використовується для більш детальної інформації про кроки, процесу або групи процесів. Опис поміщається з боку квадратної дужки і охоплюється їй по всій висоті. Пунктирна лінія йде до описуваного елементу, або групі елементів (при цьому група виділяється замкнутої пунктирною лінією). Також символ коментаря слід використовувати в тих випадках, коли обсяг тексту в будь-якому іншому символі (наприклад, символ процесу, символ даних та ін) перевищує його обсяг. |
Домашнє завдання:
1. Опрацювати конспект уроку та відповідний параграф підручника.
2. Виконати завдання в тексті блогу.
Ви маєте увійти, щоб оприлюднити коментар.