Тема. Алгоритми з розгалуженням.
Мета. Дати поняття про алгоритм з розгалуженням. Навчати школярів розрізняти алгоритмічні структури слідування та розгалуження, створювати та виконувати алгоритми з розгалуженням у визначеному середовищі. Вдосконалювати вміння розв’язувати логічні задачі, складати алгоритми для виконавця. Формувати ІКТ-компетентності учнів та ключові компетентності для реалізації творчого потенціалу дітей. Розвивати увагу, пам’ять і логічне мислення. Розвивати інтерес до здобуття знань. Виховувати інтерес до вивчення предмета, культуру роботи за комп’ютером.
Тип уроку. Урок засвоєння нових знань, навичок та вмінь.
Хід уроку
І. Організаційний момент
Привітання. Перевірка готовності учнів до уроку.
ІІ. Актуалізація опорних знань
Обчислювальний ланцюжок.
Задумайте число. Додайте до нього 6. Зменшити на 4. Якщо можливо, поділіть отримане число на 2. Якщо ні – додайте 1 та поділіть на 2.
Гра «Склади слово»
— Із букв розрізної азбуки складіть слово.
— Що таке алгоритм?
— Слово складається з букв, а з чого тоді складається алгоритм?
— Хто може бути виконавцем алгоритму?
— Які способи представлення алгоритмів ви знаєте?
ІІІ. Вивчення нового матеріалу
Ми з вами виконали алгоритм. Давайте спробуємо його записати.
У нашому алгоритмі в одному місці виникає ситуація, коли ми повинні визначити, чи виконується певна умова, а вже потім діяти далі. Такий варіант
називається розгалуженням.
Де ще ми зустрічаємося з розгалуженнями?
Підійшовши до переходу, треба зупинитися і подивитися на світлофор. Якщо сигнал світлофора зелений, то можна переходити вулицю, інакше (якщо світло червоне), переходити вулицю не можна. Слід обов’язково дочекатися зеленого сигналу світлофора.
Ситуації, коли, залежно від того, чи виконується умова, треба приймати різні рішення або виконувати різні дії, трапляються часто. Таку ситуацію в алгоритмах називають розгалуженням, а на блок-схемах команду перевірки умови записують у блоці, що має форму ромба.
На уроках української мови ви вивчали правило написання префіксів с- або з-. Префікс слід обирати залежно від літери, з якої починається корінь слова. Якщо корінь слова починається з літер к, п, т, ф, х, то пишеться префікс с-. В іншому разі пишеться префікс з-. А от як виглядатиме блок-схема цього алгоритму:
Команди розгалуження — це складові командами, у яких на відміну від простих команд присутні умови, в залежності від істинності яких виконуються або не виконуються оператори, що входять до складу команди розгалуження.
Повне та неповне розгалуження. У Паскалі реалізовано повне та неповне галуження, а також команда вибору, що реалізована як послідовне виконання декількох структур галуження і яка передбачає вибір з декількох можливих варіантів дій.
1. Конструкція «If — Then» — неповне галуження використовується в тому випадку, коли визначені дії тільки у разі виконання умови.
IF <умова> THEN <оператор>;
Конструкція «If — Then — Else» — повне галуження використовується в тому випадку, коли визначені різні дії в разі виконання та невиконання умови.
IF <умова> THEN <оператор> ELSE <оператор>;
2. Конструкції «Case — Of» неповний вибір або «Case — Of — Else» — повний вибірвикористовуються в тому випадку, коли визначені різні дії в разі декількох виходів (замінюють конструкції із вкладених операторів if).
CASE <порядкова змінна> OF
<значення>: <оператори>
ELSE <оператор>;
END.
Прості та складені умови. Висловлювання, яке може бути істинним (правильним) або хибним (неправильним) називається умовою.
Проста умова — це висловлювання, в якому два вирази з’єднані знаком операції відношення.
Складена умова — це висловлювання, в якому дві або більше простих умов з’єднані знаками логічних операцій.
У мові програмування Паскаль реалізовані операції відношеня: > — «більше»; < — «менше»; = — «дорівнює»; <> — «не дорівнює»; >= — «не менше»; <= — «не більше»; та логічні операції: not — «ні»; and — «і»; or — «або».
Висловлювання — це деяке твердження, відносно якого можна сказати, що воно або істинне, або хибне. Таким чином, кожному висловлюванню можна приписати «0» (хибне) або «1» (істинне). Приклад: «5 — просте число» — істинне, «2 = 3 + 5» — хибне висловлювання.
За допомогою логічних операцій можна будувати з одного висловлювання інші. Побудова з даного (даних) висловлювання нового висловлювання називається логічною операцією. Знаки логічних операцій називають логічними зв’язками. Логічні операції частіше за все описуються за допомогою таблиць істинності.
Таблиці істинності для операцій «інверсії» (заперечення), «кон’юнкції» (логічне множення, або логічне «і»), диз’юнкції (логічне додавання, або логічне «або»).
А |
B |
A and B («і») |
A or B («або») |
not A («ні») |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
Логічні вирази — це вирази, що складаються з висловлювань, які можуть бути з’єднані логічними зв’язками. Ці вирази набувають логічного значення («хибне» або «істинне»). Логічні вирази можуть бути простими та складеними.
У простому логічному виразі використовуються змінні та константи логічного типу, операції порівняння. Зв’язка простих логічних виразів за допомогою логічних операцій утворює складений логічний вираз. Прості вирази записуються в складених виразах у круглих дужках.
В умовному виразі задається умова розгалуження. При виконанні оператора IF цей вираз обчислюється з отриманням логічного результату. Якщо результат True, то виконується простий або складний оператор після слова Then. Якщо результат False, то виконується оператор після Else.
Наприклад:
If A<7.2 then Y:=5*A else Y:=5/A;
Частину оператора Else … можна не вживати:
If X>0 then K:=K+1;
Це означає, що у випадку, коли число Х більше нуля, буде виконано оператор K:=K+1. Якщо така умова для конкретного числа хибна, то змінення К не відбувається, а управління передається на оператор, який в програмі записано після оператора If.
Складений оператор Begin…End суттєво розширює можливості If:
If A<0 then begin
K:=K+1;
R:=a;
End
Else begin
L:=L+1;
Q:=A;
End;
У складному операторі записують будь-яку кількість операторів. Вони виконуються “як одне ціле”. Тут можуть бути “свої” If, цикли, тощо.
Після оператора, який стоїть перед Else, не ставиться крапка з комою.
Оператор Case забезпечує розгалуження на декілька напрямків.
Загальний вигляд:
Case індекс вибору of список вибору;
Else…; End;
де індекс вибору– проста змінна цілого, символічного, перелічуваного або логічного типу;
список вибору – сукупність простих або складних операторів, перед кожним з яких стоїть константа вибору, тип якої співпадає з типом індексу вибору.
Після слова Else може стояти простий або складний оператор (ця конструкція може бути відсутня).
Приклад:
Case Kit of
1: Y:=sin(x);
2: Y:=cos(x);
3: Y:=sin(x)+cos(x);
Else Y:=0;
End; {case}
Змінна Kit (цілого типу) повинна бути визначеною до виконання оператора Case. Якщо Kit дорівнює 1, обчислюється функція Y:=sin(x), якщо вона дорівнює 2, то : Y:=cos(x). У тому випадку, коли Kit відрізняється від 1, 2 або 3, буде виконано оператор Y:=0.
У списку вибору можна вживати складний оператор Вegin… End.
Приклад: скласти програму обчислення функції
Програма:
Var X, Y, Z, F : Real;
Begin
Write(‘Введіть Y, Z :’);
ReadLn(Y,Z);
Write(‘Введіть X :’);
ReadLn(X);
IF (X>=Y) THEN F:=SQR(X)+EXP(Z)/COS(Y)
ELSE F:=SIN(X)+COS(Z);
WriteLn(‘Значення F=’,F);
End.
IV. Робота за комп’ютером
Робота за комп’ютером в середовищі програмування Lazarus (практичне завдання після параграфа у підручнику).
Хвилинка релаксації
1. Щільно заплющити й розплющити очі (10 р.).
2. Виставити вперед великий палець руки. Не повертаючи голови, слідкувати очима за рухами пальця максимально вгору-вниз, праворуч-ліворуч (10 р.).
3. Виставити вперед великий палець руки. Намалювати в повітрі цифру «8». При цьому слідкувати очима за рухами пальця (10 р.).
4. Покліпати очима (10 р.).
V. Закріплення вивченого матеріалу
Тести на тему Алгоритми з розгалуженнями для опрацювання величин
Завдання #1
Запитання:
Який оператор відповідає поданій блок-схемі?
Виберіть один з 4 варіантів відповіді:
1) If A<5 Then A := A-1 Else A := A+1;
2) If A<5 Then A := A+1;
3) If A<5 Then A := A+1 Else A := A-1;
4) If A<5 Then A := A-1;
Завдання #2
Запитання:
Який оператор відповідає поданій блок-схемі?
Виберіть один з 4 варіантів відповіді:
1) If A<5 Then A := A-1 Else A := A+1;
2) If A<5 Then A := A+1;
3) If A<5 Then A := A+1 Else A := A-1;
4) If A<5 Then A := A-1;
Завдання #3
Запитання:
Який оператор реалізує дію:
Змінній К: Boolean присвоїти значення True, якщо числа А, В, С упорядковані за зростанням, і значення False в протилежному випадку?
Виберіть декілька з 4 варіантів відповіді:
1) K := (A < B) And (B < C);
2) K := (A < B) Or (B < C);
3) If (A < B) And (B < C) Then K := True Else K := False;
4) If (A < B< C) Then K := True Else K := False;
Завдання #4
Запитання:
Який оператор реалізує дію:
Якщо А – від’ємне число, змінити його знак на протилежний.
Виберіть декілька з 4 варіантів відповіді:
1) If A < 0 Then A := Abs(A);
2) If A < 0 Then A := -A; 3) If A > 0 Then A := -A;
4) If A < 0 Then A := -A Else A := 0; Завдання #5 Запитання: Встановіть порядок виконання операторів програми для визначення більшого з трьох чисел а, b, с. Вкажіть послідовність всіх 4 варіантів відповіді: __ a := StrToInt(Edit1.Text); b := StrToInt(Edit2.Text); c := StrToInt(Edit3.Text); __ If a > b Then Мax := a Else Мax := b;
__ If c > max Then max := c;
__ Edit4.Text := IntToStr(max);
Завдання #6
Запитання:
Встановіть відповідність між операторами і діями, які вони реалізують
Вкажіть відповідність для всіх 4 варіантів відповіді:
1) Від більшого з чисел А і В відняти менше.
2) Змінній Мах присвоїти значення більшого з чисел А і В.
3) Якщо ціле число А парне, поділити його на 2.
4) Якщо ціле число А парне, поділити його на 2, в протилежному випадку помножити на 10.
__ If A mod 2 = 0 Then A := A div 2 Else A := 10*A;
__ If A mod 2 = 0 Then A := A div 2;
__ If A > B Then A := A-B Else B := B-A;
__ If A > B Then Мах := A Else Мах:= B;
Завдання #7
Запитання:
Визначте, якого значення набуває змінна В після виконання фрагмента програми.
var A, B, C, Max: Integer;
begin
A := 13; B := 12;
If A > B*B Then B := A-B;
If B > A-1 Then begin B := B-A;
A:= A-B end
Else begin A := A-B;
B := B-A end;
{…}
VІ. Підсумки уроку
VІІ. Домашнє завдання
Опрацювати відповідний параграф підручника, скласти блок схему до алгоритму з розгалуженням