Конспект уроку №8
Тема: Алгоритм . Навчальна алгоритмічна мова.
Мета: дати загальне поняття алгоритму;сформулювати способи задання алгоритму; застосувати набуті знання на практиці; показати важливість дотримання певного алгоритму.
Тип уроку: Комбінований.
Хід уроку
І. Актуалізація ЗУН учнів.
ІІ. Вивчення нового матеріалу.
Кожна людина щодня зустрічається з безліччю задач від найпростіших і добре відомих до дуже складних. Для багатьох задач існують визначені правила (інструкції, команди), що пояснюють виконавцю, як розв'язувати дану проблему. Ці правила людина може вивчити чи заздалегідь сформулювати сама в процесі розв'язування задачі. Чим точніше описані правила, тим швидше людина опанує ними і буде ефективніше їх застосовувати. У нашому житті ми постійно складаємо опис деякої послідовності дій для досягнення бажаного результату, тому поняття алгоритму не є для нас чимось новим і незвичайним. Так, ранком мама перед твоїм виходом до школи, дає вказівку: "Коли прийдеш зі школи, відразу пообідай і вимий посуд. Після цього підмети підлогу, сходи в магазин і можеш трохи погуляти. Гуляти дозволяю не більше години, а потім відразу за уроки". Ця інструкція складається з послідовності окремих вказівок, що і визначають твою поведінку після повернення зі школи. Це і є алгоритм. Кожний з нас використовує сотні різних алгоритмів. Давайте спробуємо згадати деякі з них (алгоритми виконання арифметичних дій, розв'язування задач, прибирання квартири, миття посуду, готування їжі - рецепти тощо).
Отже, після обговорення кількох прикладів алгоритмів, давайте спробуємо сформулювати визначення, що ж таке алгоритм. Алгоритм — це скінченна послідовність команд, які потрібно виконати над вхідними даними для отримання результату. Іншими словами, алгоритм — це деяке перетворення (назвемо його А) над вхідними даними, у результаті виконання якого отримуємо певний результат. Те, що алгоритм є скінченною послідовністю команд, запишемо так: А = (А1, А2, А,, ..., Ак). Першою виконується команда А1
Приклад:
Обчислити (301 + 51)/ 92-32 Щоб розв'язати задачу, потрібно виконати алгоритм А = (А1, А2, А3) або В = (А2, А1, А3), що складається з трьох команд: А1: виконати віднімання 92 - 32 і запам'ятати результат (60);
А2: виконати додавання 309 + 51 і запам'ятати результат (360);
А3: виконати ділення 360 : 60 і запам'ятати результат (6).
Як на вашу думку хто є виконавцями і творцями алгоритму ? Звичайно ж самі люди. Окрім людей, виконавцями алгоритмів є інші живі істоти (напри¬клад, свійські тварини), а також роботи та комп'ютерні системи.
Як відомо, комп'ютер використовують для опрацювання великих обсягів інформації. Виконуючи команди користувача чи деякої програ¬ми, він допомагає розв'язати не лише складні інженерні задачі, а може визначити діагноз і порекомендувати ліки хворому, подати довідку з енциклопедичного словника, виправити граматичні помилки в тексті чи перекласти текст іншою мовою, відтворити музику чи відеозображення, надіслати повідомлення в будь-яке місце планети тощо. Кожен виконавець може виконати певну кількість команд. Ці команди називаються допустимими командами виконавця.
З'ясуємо, яким чином можна подати алгоритм виконавцю. Існує кілька методів запису алгоритмів, вибір яких залежить від виконавця та того, хто його задає.
Першій спосіб - це словесний опис алгоритму. Розглянемо загальний вигляд алго¬ритму. Зазначимо, що алгоритм має назву, яку будемо записувати з великої літери, а команди його нумеруватимемо:
Алгоритм Назва
1. Команда А1
2. Команда А2.
3. Команда А3. п. Команда А .
Приклад 2
Складемо алгоритм переходу вулиці.
Алгоритм Перехід
1. Подивитися ліворуч.
2. Якщо немає перешкоди, то йти до середини вулиці, інакше пропустити машини,йти до середини вулиці.
3. Подивитися праворуч.
4. . Якщо немає перешкоди, то завершити перехід, інакше пропустити машини, завершити перехід
Другий спосіб - це подача алгоритму у вигляді таблиць, формул, схем, малюнків тощо. Наприклад, всіх вас вчили в дитячому садочку правилам поведінки на дорозі. І найкраще діти, вочевидь, сприймають алгоритм, що поданий у вигляді схематичних малюнків. Дивлячись на них, дитина, а потім і доросла людина, відпрацьовує ту лінію поведінки, що їй пропонується. Аналогічно можна навести приклади алгоритмів, що записані у вигляді умовних позначок на купленому товарі, щодо його користування (заварювання чаю, прання білизни тощо). В математиці наявність формул дозволяє розв'язати задачу,навіть"не використовуючи слів".
Третій спосіб - запис алгоритмів за допомогою блок-схеми. Цей метод був запропонований в інформатиці для наочності представлення алгоритму за допомогою набору спеціальних блоків.
Четвертий спосіб - навчальні алгоритмічні мови (псевдокоди). Ці мови мають жорстко визначений синтаксис і вже максимально наближені до машинної мови (мови програмування). Але створені вони з навчальною метою, тому мають зрозумілий для людей вигляд. Таких псевдокодів зараз існує велика кількість, починаючи з графічних середовищ "Алгоритміка", "Роботландія", "Лого-світи", "Черепашка" тощо і закінчуючи текстовими "національними" реалізаціями алгоритмічних мов, подібних до Паскаля. Ці псевдокоди мають програмну реалізацію і дуже широко застосовуються на етапі навчання основам програмування. Зупинимось детальніше на навчальній алгоритмічній мові
Структура навчальної алгоритмічної мови:
1. Назва
2. Вхід
3. Результат
4. Початок
{опис самого алгоритму}
5. Кінець
ІІІ. Застосування на практиці
1. Написати алгоритм Евкліда обчислення найбільшого спільного дільника цілих позитивних чисел A і B: НСД(A, B). Алгоритм Евкліда; Вхід A, B;
Вихід: D;
{Коментар: D - найбільший спільний дільник A і B}
Початок
Поки A ≠ B виконувати
Якщо A < B
то Обчислити B = B - A
інакше Обчислити A = A - B;
D присвоїти значення A
Кінець.
2.Написати алгоритм поділу відрізка навпіл за допомогою циркуля і лінійки використовуючи навчальну алгоритмічну мову. Алгоритм Середина відрізку;
Вхід Точки A, B – кінці відрізка АВ;
Вихід Точка Е - середина відрізка AB.
Початок
Побудувати коло O1 з центром A і радіусом AB;
Побудувати коло O2 з центром B і радіусом AB;
Знайти точки С і D перетину кіл O1 і O2;
Побудувати пряму l1 через точки C, D;
Побудувати пряму l2 через точки A, В;
Знайти точку E перетину прямих l1 , l2.
Кінець
3. Написати алгоритм теореми Вієта використовуючи навчальну алгоритмічну мову.
Алгоритм Теорема Вiєта;
Вхід
m1, m2, n1, n2: цілі числа;
Вихід
А, B, C: цілі числа;
Початок
Обчислити A = m1*m2;
Обчислити B = -(n1*m2 + n2*m1);
Обчислити C = n1*n2
Кінець.
ІV. Домашнє завдання.
1. Написати алгоритм додавання двох дробів.