Урок 3 Інформатика 10 (АП)
Базові алгоритмічні структури
Мета.
Навчальна. Ввести поняття базові алгоритмічні структури, аргументи, результати, проміжні величини. Навчитися конструювати алгоритми за допомогою блок-схем. Ввести поняття команд розгалуження та повторення. Навчити учнів створювати алгоритми із використанням базових алгоритмічних структур.
Розвиваюча. Розвивати логічне мислення, практичні навички складати алгоритм різними способами.
Виховна. Виховувати естетичні смаки, культуру оформлення.
План
Хід уроку
І. Актуалізація опорних знань.
Опитування:
1. Щотаке алгоритм?
2. Назвіть і поясніть властивості алгоритмів.
3. Назвіть відомі вам елементи блок-схеми алгоритму і поясніть їхнє призначення.
4. Чим відрізняється словесне подання алгоритму від блок-схеми алгоритму?
ІІ. Вивчення нового матеріалу
Формальне виконання алгоритму
Під формальним виконанням алгоритму розуміється таке його виконання, коли сам виконавець не знає ні постановки задачі, ні змісту отриманих результатів, але, чітко виконуючи усі дії, записані в алгоритмі, досягає результату.
Найчастіше алгоритми виконуються саме формальним чином. Формальними виконавцями є користувачі різноманітних побутових електричних приладів, учасники спортивних ігор, які дотримуються правил цих ігор, учні, що застосовують у своїх творчих роботах мовні правила, виконують завдання з математики чи фізики, використовуючи відомі формули, закони та методи розв'язування різних типів задач. Продовжуючи цю думку, комп'ютер також слід вважати формальним виконавцем алгоритмів при виконанні ним програм.
Аргументи, результати, проміжні величини
Для роботи багатьох алгоритмів треба задавати початкові значення. Ці значення передаються в алгоритм за допомогою аргументів.
Аргумент - це величина, значення якої необхідно задати для виконання алгоритму.
Проте є алгоритми, що не потребують жодних початкових значень для свого виконання. Пізніше ми ознайомимося з такими алгоритмами. Однак немає жодного алгоритму, що не дає ніякого результату. Справді, яка ж потреба в такому алгоритмі? Прикладом різноманітності результатів роботи програм є ігрові комп'ютерні програми. У цих програмах дані обробляються та певним чином перетворюються у графічні і звукові образи.
Результат - це величина, значення якої отримується внаслідок виконання алгоритму.
Під час складання багатьох алгоритмів виникає необхідність крім аргументів і результатів використовувати ще й додаткові величини. Введення в алгоритм таких величин задає автор алгоритму.
Проміжна величина - це величина, яка додатково вводиться в процесі розробки алгоритму.
Базові алгоритмічні структури
Базові структури алгоритму — це структури, за допомогою яких створюється алгоритм для розв’язання певної задачі. Існують три основні (базові) алгоритмічні структури: слідування, розгалуження та повторення.
Слідування
Команда подається у вигляді послідовності двох (або більше) виконуваних одна за одною простіших команд.
Приклад. Алгоритм Ранок.
1. Встати о 7-й год.
2. Виконати гімнастичні вправи.
3. Умитися.
4. Поснідати.
5. Піти в школу.
Розглянемо приклад - задачу на обчислення значення арифметичного виразу і складемо алгоритм її розв'язування.
Задача 1. Обчислити значення виразу (a-b)*(c-d), де а, b, с, d- дійсні числа (символом * в інформатиці позначається операція множення).
Розглянемо виконавця, який уміє отримувати значення змінних, виконувати арифметичні операції над дійсними числами, запам'ятовувати результати виконання цих операцій і повідомляти ці результати. Передавання даних виконавцеві називається введенням даних, а повідомлення виконавцем результатів виконання алгоритму - виведенням даних (результатів).
Запишемо алгоритм розв'язування цієї задачі для такого виконавця в словесній формі.
1. Увести значення змінних а, b, с, d (у результаті виконання цієї команди виконавець запам'ятовує введені дані як значення відповідних змінних).
2. Обчислити значення виразу а-b і результат присвоїти змінній х (запам'ятати як значення цієї змінної).
3. Обчислити значення виразу с-d і результат присвоїти змінній у.
4. Обчислити значення виразу х*у і результат присвоїти змінній z.
5. Вивести значення змінної z.
У командах 2, 3 і 4 обчислюється значення виразу і результат обчислення присвоюється певній змінній (запам'ятовується як значення певної змінної). Такі команди називаються командами присвоювання. Для них зручно використовувати таку форму запису:
2. х := а - b (читається: змінній х присвоїти значення виразу а - b)
3. у := с - d
4. z := х*у
Знак := називається знаком присвоювання і складається з двох символів: двокрапки і дорівнює, які записуються без пропуску між ними.
Завдання. Написати блок-схему цього алгоритму.
Характерними рисами цього алгоритму є те, що всі його команди виконуються в записаній послідовності, кожна команда алгоритму обов'язково виконується, причому тільки один раз.
Такі алгоритми (або фрагменти алгоритму) називаються лінійними.
Задача 2. Обчислити значення виразу (а - b) / (с - dі), де а, b, с, dі - дійсні числа (символом / в інформатиці позначається операція ділення).
Цей вираз містить дію ділення на вираз зі змінними, який може дорівнювати нулю. Тобто якщо значення різниці с - d дорівнює нулю, то значення виразу (а - b) / (с - d) обчислити не можна, а якщо не дорівнює, то можна.
Це означає, що попередній виконавець не зможе виконати алгоритм розв'язування цієї задачі, оскільки його система команд не містить, наприклад, команди порівняння двох чисел.
Додамо до системи команд попереднього виконавця команду порівняння двох чисел «s = t», де s і t - або числа, або змінні, які мають певні числові значення. Така команда є прикладом команди перевірки умови. Результатом виконання команди перевірки умови може бути або істина (умова виконується), або хиба (умова не виконується).
Тоді для нового виконавця алгоритм розв'язування задачі 2 виглядатиме так:
1. Увести значення змінних а, b, с, d.
2. х := с - d.
3. Якщо х = 0? - істина, то вивести: «Вираз значення не має: ділення на нуль», після чого виконати команду 7, якщо хиба - то виконати команду 4.
4. у := а-b.
5. z := у/х.
6. Вивести значення змінної z.
7. Закінчити виконання алгоритму.
Завдання. Написати блок-схему цього алгоритму.
Характерною рисою цього фрагмента алгоритму є те, що при кожному його виконанні деякі команди будуть виконуватися, причому кожна по одному разу, а деякі — виконуватися не будуть. Це залежить від результату виконання команди перевірки умови.
Такі фрагменти алгоритму називаються розгалуженням.
Розгалуження алгоритм (умова, структура вибору) — у класичному варіанті ця структура розглядається як вибір дій у разі виконання або невиконання заданої умови. Розгалуження бувають повними і неповними.
Повне розгалуження — це галуження, в якому певні дії визначені й у разі виконання, і в разі невиконання умови.
Неповне галуження — це розгалуження, в якому дії визначені тільки у разі виконання (або у разі невиконання) умови.
Приклад. Алгоритм Вечір.
1. Прийти додому зі школи.
2. Пообідати.
3. Якщо в щоденнику є двійка , то сідати за уроки, інакше можна піти на дискотеку.
4. Лягти спати.
Алгоритм складається з чотирьох команд , третя є командою розгалуження
Повторення
Розрізняють два типи циклів — цикл з передумовою (цикл-ПОКИ)
і цикл з післяумовою (цикл-ДО).
а) У структурі цикл-Поки для виконання команди спочатку треба визначити, істинне чи хибне твердження. Якщо твердження істинне, то виконується вказівка Дія і знову повертаються до визначення істинності твердження. Якщо ж твердження хибне, то виконання команди вважається закінченим.
б) У структурі цикл-ДО спочатку виконується команда, а потім визначається істинність твердження. Якщо твердження хибне, то знову виконується команда і визначається істинність твердження. Якщо ж твердження істинне, то виконання команди вважається закінченим.
Задача 3. Є дев'ять однакових на вигляд монет, одна з яких фальшива і легша за інші. Двома зважуваннями на терезах без важків визначити фальшиву монету.
Складемо алгоритм для виконавця з такою системою команд:
1. Узяти вказану купку монет.
2. Розділити вказану купку монет на три рівні купки.
3. Покласти на терези вказані купки монет.
4. Виконати перевірку умови Терези в рівновазі?.
5. Указати фальшиву монету.
Для цього виконавця алгоритм розв'язування цієї задачі такий:
1. Узяти дану купку з дев'яти монет.
2. Розділити взяту купку монет на три рівні купки.
3. Покласти на терези першу і другу купки монет.
4. Якщо Терези в рівновазі? - істина, взяти третю купку монет, якщо хиба, взяти легшу купку.
5. Розділити взяту купку монет на три рівні купки.
6. Покласти на терези першу і другу купки монет.
7. Якщо Терези в рівновазі? -істина, то фальшивою є монета, що залишилася не покладеною на терези, якщо хиба - фальшивою є легша монета.
Завдання. Написати блок-схему цього алгоритму.
Цикли в алгоритмах
Розглянемо ще одну задачу.
Задача 4. Є порожні діжка і відро, Використовуючи відро, наповнити діжку водою з колодязя.
Розглянемо виконавця з такою системою команд
1. Наповнити відро водою.
2. Вилити воду з відра в діжку.
3. Виконати перевірку умови Діжка повна?.
Складемо алгоритм розв'язування цієї задачі для розглянутого виконавця в словесній формі.:
1. Наповнити відро водою.
2. Вилити воду з відра в діжку.
3. Якщо Діжка повна? - істина, то закінчити виконання алгоритму, якщо хиба, то виконати команду 1.
Повторення алгоритм (цикл, структура повторення) — це алгоритм, у якому передбачено повторення деякої серії команд. За допомогою цієї структури описуються однотипні дії, що повторюються декілька разів. Такі алгоритми забезпечують виконання довгої послідовності дій, записаних порівняно короткою послідовністю команд. Саме використання циклів дозволяє у повній мірі реалізувати швидкодію комп’ютерів.
Основна особливість базових алгоритмічних структур — це їх повнота, тобто цих структур достатньо для створення найскладнішого алгоритму.
Фрагмент алгоритму, що складається з команд, які можуть виконуватися більше одного разу, називається циклом. Алгоритми, які містять цикли, називаються алгоритмами із циклами.
В алгоритмі, що розглядався, цикл складається з трьох команд: двох команд (1 і 2), які утворюють тіло циклу, і команди перевірки умови.
ІІІ Розв’язування задач
Презентація “Лінійні алгоритми”
Задача 1. Записати у вигляді блок-схеми алгоритм переходу вулиці, де не встановлено світлофор. Визначити його тип.
Задача 2. Записати у вигляді блок-схеми алгоритм обчислення значення виразу:(a+b)-c*a . Виконайте його при різних значеннях а, b, с. Підберіть числа так, щоб кожного разу виконання алгоритму відбувалося по-різному.
Задача 3*. Складіть блок-схему алгоритму знаходження х з рівняння ax+b=c. Виконайте його при а=2, b=-8, c=18.
.
IV. Запитання до уроку
1. Який алгоритм (фрагмент алгоритму) називається лінійним?
2. Що може бути результатом виконання команди перевірки умови? Наведіть приклади.
З. Який блок позначає в блок-схемі команду перевірки умови? Наведіть приклади його використання.
4. Назвіть характерні риси розгалуження.
5. Чи можуть команди тіла циклу не виконуватися жодного разу? Поясніть свою відповідь. Наведіть приклади.
6. Чи може виконання циклу ніколи не закінчитися? Поясніть свою відповідь. Наведіть приклади.
V. ДОМАШНЄ ЗАВДАННЯ.
1. Вивчити конспект.
2. Задача 1. Записати у вигляді блок-схеми алгоритм переходу вулиці, де встановлено світлофор. Визначити його тип.
Задача 2о. Записати у вигляді блок-схеми алгоритм обчислення значення виразу:(a+b)-c/a. Виконайте його при різних значеннях а, b, с. Підберіть числа так, щоб кожного разу виконання алгоритму відбувалося по-різному.
Задача 3*. Складіть блок-схему алгоритму розв’язування квадратного рівняння.
3. Підготуватись до практичної роботи № 2.