Оператор розгалуження

  • pptx
  • 26.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Urok 34_operatori rozgaluzhennya.pptx

Оператор розгалуження

Урок 34

Розв’яжіть задачу:

Віктор, Роман, Леонід та Сергій зайняли на математичній олімпіаді чотири перших місця. Коли їх запитали про розподіл місць, вони дали три відповіді:
Сергій – перший, Роман – другий;
Сергій – другий, Віктор – третій;
Леонід – другий, Віктор – четвертий.
Відомо, що у кожній відповіді тільки одне твердження вірне. Як розподілилися місця?

Віктор - 4, Роман - 3, Леонід – 2, Сергій - 1

Уявіть собі, що ви за кермом автомобіля і перед вами стоїть вибір дальшого руху:

або їхати поганою, але коротшою дорогою, або ж гарною, але довшою.
Звичайно, що ваш вибір буде залежати від певних умов: по-перше, чи є у вас зайвий час, по-друге, хто господар автомобіля?
Подібну проблему завжди вирішують оператори розгалуження.

Загальний вигляд повної форми оператора умовного переходу:

if <логічний вираз> then P1 else P2,
де логічний вираз - це вираз, який може набувати одного з двох значень true або false, Р1 та Р2 - це оператори або процедури

Умова

Серія 1

Серія 2

так

ні

Загальний вигляд скороченої форми оператора умовного переходу:

if <логічний вираз> then P,
де значення вказаних параметрів такі самі, як і в повній формі

Умова

Серія

так

ні

Відмінність між двома фор­мами умовного оператора:

в повній
незалежно від значення логічного виразу якісь дії обов'язково будуть виконані, а вже потім продовжено виконання алгоритму далі

у скороченій
у випадку, коли логічний вираз набуде значення true, будуть виконані якісь дії, а потім продовжено виконання алгоритму, а у випадку, коли логічний вираз набуде значення false, алгоритм відразу буде продовжено далі

Складений оператор — це конструкція такого вигляду:
begin
<команда 1>;

<команда п>;
end;
Складена команда трактується як одна команда.

Складеним оператором називають послідовність кількох операторів або викликів процедур, розділених символом «;» та взятих в операторні дужки begin ... end.

Знайти найбільше з двох заданих чисел А та В

program z1;
var a, b, max: real;
begin
write ('Задайте два будь-які числа: '); readln (a, b);
if a>b then begin writeln ('Перше число більше за друге.');
max:=а; end else
begin
writeln ('Друге число більше або дорівнює першому.'); max:=b end;
writeln ('Це число -' , max:10:5);
end.

Знайти найбільше з трьох попарно різних величин а, b, с

program z2;
var a, b, c, max: real;
begin
write ('Задайте три будь-які числа: '); readln (a, b, с);
if (a>b) and (a>с) then begin writeln ('Перше число більше за інші два.'); max := а; end else if (b>с) then begin
writeln ('Друге число більше за інші два.'); max := b; end else begin writeln (‘Третє число більше за інші два.');
max := с; end;
writeln ('Це число - ', max:6:2);
end.

Схема цього алгоритму

Внутрішній оператор умовного переходу буде виконано тоді і тільки тоді, коли значення логічного виразу зовнішнього умовного оператора матиме значення false. Це означатиме, що значення змінної а не є найбільшим, тому у вкладеному умовному операторі перевіряється лише значення змінної b. Якщо ж і її значення не є найбільшим, то лишається визнати, що найбільшим є значення змінної с.

Варіант 2. Знайти найбільше з трьох попарно різних величин а, b, с

program max ABC;
var a, b, с, max: real; begin
write ('Задайте три будь-які числа: '); readln (a, b, с);
if (a>b) and (a>с) then begin writeln {'Перше число більше за інші два.'); max:=а; end;
if (b>a) and (b>с) then begin writeln ('Друге число більше за інші два.'); max:=b; end;
if (с>a) and (с>b) then begin writeln (‘Третє число більше за інші два.'); max := с; end;
writeln ('Це число - ', max:6:2);
end.

Висновок

Отже, у першому алгоритмі внутрішній оператор розгалуження виконається тільки тоді, коли нас «пропустить» до нього зовнішній оператор розгалуження. Цей принцип можна порівняти із ситом.
У другому варіанті алгоритму всі оператори розгалуження є послідовними. Тобто всі вони виконуватимуться, перевірятимуть значення своїх логічних виразів і вирішуватимуть, виконувати чи ні вказані в них дії. Крім того, треба зауважити, що використані тут оператори розгалуження мають скорочену форму.

Обчислити і вивести значення складеної функції у

Розв'язання

program z3;
var x,y:real;
begin
writeln('Введіть х'); readln(x);
if x < -1 then y:=ln(abs(x)) else
if (x>=-l) and (xthen y:=sin(x) else y:=cos(x);
writeln('x=',x:5:2,' y=‘,y:5:2);
end.

Задача 4

Визначити, чи є задане тризначне число паліндромом (паліндром читається однаково зліва на право і справа на ліво, наприклад, паліндромами є числа 121, 282, слово «наган»).

Розв'язання

program palindrom;
var х:Integer;
begin
Wrіte ('Уведіть ціле число:'); readln(x) ;
if х mod 10 = х div 100 then
Write('Уведене число є паліндромом') else Write('Уведене число не є паліндромом');
end.

Повторимо

Який алгоритм називається розгалуженим?
Які умови називаються складеними?
Які логічні операції ви знаєте?
Як записують скорочену форму команди розгалуження?
Які операції відношення можна записувати в умові?

Домашнє завдання

1. Уведіть вік користувача і його стать (1 - жіноча, 2 - чоловіча). Складіть програму, за допомогою якої красиво привітайтеся з користувачем залежно від його віку й статі.
2. Уведіть дійсне число х. Складіть програму, за допомогою якої визначите, чи є воно коренем рівняння:
а) 15х + 100 = 0;
б) 105 х - 10,18 = 0;
в) 12 х3 -2х2 + 6х + 1 = 0;
г) 17 х4 -12х2 + 2х-1 = 0.
3. Задано вік двох приятелів. Складіть програму, за допомогою якої визначите, хто з них старший.