Алгоритми з розгалуженнями. Команда IF
- Розглянути команду розгалуження в мові Паскаль та її застосування під час складання простих програм з розгалуженями;
- розвивати алгоритмічне та логічне мислення на прикладах конкретних задач;
- виховувати інформаційну культуру, культуру алгоритмічного запису.
Обладнання: переносна дошка.
Хід уроку
I Перевірка домашньОго завдання.
вибірково перевіряється домашнє завдання у окремих учнів.
ІІ Актуалізація опорних знань.
Усно розглядаються завдання, записані на переносній дошці:
1 Яке призначення функцій trunk; round; операцій mod, div?
2 Що буде результатом виконання таких операцій:
А 10div52;
B 5+9mod53;
C round5/3;
E sqrt36
F abs-5;
G abs2-sqrt9;
H cos1div2
I sqr5-3;
J sqrtabs-9;
K pred12;
L succ23;
M odd100.
3 Чи правильно записані вирази:
А м1+м2/м3; b sin2x+cosx?
4 Як записати ?
5 Записати вираз для обчислення суми цифр трьохзначного числа А.
ІІІ Оголошення теми і мети уроку.
ІV Вивчення нового матеріалу.
1. Коротко розповідається історія виникнення алгоритмів з розгалуженнями: команду розгалуження для зміни порядку дій у алгоритмі запропонувала ще 150 років тому дочка Дж. Байрона, Ада Лавлейс, яка вважається першою програміст кою в світі. Її ідеї реалізували лише через 100 років. Так виникли алгоритми з розгалуженнями.
2. Розгалуження – це алгоритмічна конструкція, де перевіряється умова і залежно від її істинності чи хибності виконується та чи інша серія команд.
Розгалуження бувають кілька видів:
1 повне; 2 неповне; 3 вибір.
На даному уроці розглядаємо перші 2 види розгалужень.
Повне розгалуження.
Задачу формулюють так: потрібно виконати або команду 1, якщо умова істинна, або команду 2 якщо умова хибна.
У НАМ, повна команда розгалуження має такий вигляд:
Якщо умова
То серія команд 1
Інакше серія команд 2
Все
Відповідно блок-схема повної команди розгалуження має вигляд:
У мові Паскаль повний умовний оператор записують так;
IF логічний вираз then команда 1 else команда 2
На місці команди 1 чи команди 2 може бути також команда розгалуження IF.
Якщо після слів then чи else треба записати не один, а кілька операторів то ці оператори беруться в так звані операторні дужки begin, end.
Приклад Обчислити значення складної функції Y для заданого значення Х формулою:
Алгоритм
Алг Функція
арг дійсн х
рез дійсн Y
поч ввести х
якщо х0
то Y:=x+3
інакше y:=x-5
Все
PROGRAM F1;
Var x, y:real;
Begin
Writeln‘Введіть х:’
Readln x;
If x0 then y:=x+3
Else y:=x-5;
Wrieteln‘y=’,y;
End.
Неповне розгалуження.
Неповне розгалуження є частковим випадком повного. Відповідну задачу формулюють так: виконати серію операторів, якщо справджується деяка умова
Якщо Умова
То Серія команд
Все
Блок схема повного розгалуження
У мові Паскаль неповний умовний оператор записують так:
IF логічний вираз then команда
Приклад 1. Квадратний корінь величини В з урахуванням умови існування обчислюють так: if В=0 then d:=sgrtВ.
Приклада 2. Розглянемо операцію ділення числа А на В. Результат позначимо D. Ділення можна виконати, якщо В 0, тобто if В0 then D:=A/в.
V. Розв’язування задач.
1. Усно розв’язати задачу, записану на переносній дошці:
Який результат виконання програми Ех1, якщо ввести значення К Так: 3; 0?
PROGRAM Ex1;
Var k, m:integer;
Begin writeln ‘Введіть К’;
Readln k;
m:=7;
if k2 then m:=kk;
if k2 then m:=k+7;
writelnm;
End.
2. Розв’язати квадратне рівняння А 0
Ах +BХ+с=0
учень біля дошки
PROGRAM Equation;
Var a, b, c, x1, x2, d:real:
Begin writeln ‘Введіть коефіцієнти:’;
Readln a, b, c,;
D:=bb-4ac;
If d0 then writeln ‘коренів немає’ else
Begin
X1:=-b+sqrtd/2a;
X2:=-b-sgrtd/2a;
Writeln‘корені є’:x1: 6:2, x2:6:2;
End.
End.
Удосконалюємо програму зменшивши кількість операцій. Внаслідок цього у внутрішніх операторних дужках запишемо так:
d:=sgrtd;
A:=2a;
X1:=-b+d/a;
X2:=-b-d/a;
Виконуємо трасування програми для деяких вхідних даних, щоб впевнитися у правильності програми.
3. Увести ціле число. Вивести повідомлення чи число парне, чи непарне.
учень біля дошки
PROGRAM chyslo;
Var a:integer;
Begin writeln‘Введіть ціле число:’;
Readln a;
If 2rounda/2=a then writeln ‘число парне’ else writeln ‘число непарне’;
End.
Як записати умову, використовуючи операції mod; div?
самостійно
4. Скласти програму, яка дає довідку про назву столиці st та кількість населення nas, в мільйонах деякої країни kr з такого переліку: Угорщина, Італія, Греція, Туреччина, Єгипет, Бельгія, Росія.
PROGRAM Countries;
Var kr, st:string; nas:integer;
Begin
Write‘Уведіть назву країни’; readlnkr;
If kr=’Угорщина’ then begin st:=’Будапешт’;nas:=11 end;
If kr=’Італія’ then begin st:=’Рим’;nas:=60 end;
If kr=’Греція’ then begin st:=’Афіни’;nas:=10 end;
If kr=’Туреччина’ then begin st:=’Анкара’;nas:=55 end;
If kr=’Єгипет’ then begin st:=’Каїр’;nas:=53 end;
If kr=’Бельгія then begin st:=’Брюссель’;nas:=10 end;
If kr=’Росія’ then begin st:=’Москва’;nas:=85 end;
Writeln ‘Столиця-’st,’населення-’,nas, ‘млн. осіб’
End.
Завдання. Доповнити програму інформацією про Україну.
VI Підсумок уроку.
Питання до класу
1 Яка дія команди повного розгалуження?
2 Яка дія команди неповного розгалуження?
3 Чи можна ставити перед else знак ’;’?
4 Що означає удосконалити програму?
VII Виставляються оцінки за урок окремим учням. Учні записують домашнє завдання: п.2.5, №15.