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

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

Оценка 4.7
docx
26.11.2021
Оператор розгалуження
urok 34_operator rozgaluzhennya.docx

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

Мета уроку: ознайомити учнів з поняттями про структурні оператори, вказівку розгалуження (повну та скорочену форми) і поняттями про прості і складені умови; формувати навички використання вказівки розгалуження; виховувати інформаційну культуру учнів.

Тип уроку: вивчення нового матеріалу.

Обладнання: презентація – супровід уроку.

 

Хід уроку

І. Організаційний момент

ІІ. Перевірка домашнього завдання

ІІІ. Актуалізація опорних знань учнів

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

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

- Сергій – перший, Роман – другий;

- Сергій – другий, Віктор – третій;

- Леонід – другий, Віктор – четвертий.

Відомо, що у кожній відповіді тільки одне твердження вірне. Як розподілилися місця? (Віктор - 4, Роман - 3, Леонід – 2, Сергій - 1)

ІV. Викладання нового навчального матеріалу

1. Оператор умовного переходу. Повна та скорочена форми

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

Подібну проблему завжди вирішують оператори розгалуження.

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

if <логічний вираз> then P1 else P2,

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

Робота оператора умовного переходу не викликає ніяких труднощів. Цей оператор використовує результат обчислення логічного виразу для вибору того чи іншого шляху наступного ви­конання алгоритму - виконання оператора Р1 або оператора Р2. Після цього робота алгоритму продовжується далі за вказаними операторами.

Після аналізу значення логічного виразу буде вибраний лише один з наступних напрямків виконання алгоритму (Р1 або Р2), після чого цей алгоритм буде виконуватися далі.

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

if <логічний вираз> then P,

де значення вказаних параметрів такі самі, як і в повній формі.

Відмінність між двома фор­мами умовного оператора: в першій - повній - незалежно від значення логічного виразу якісь дії обов'язково будуть виконані, а вже потім продовжено виконання алгоритму далі, у другій - скороченій - у випадку, коли логічний вираз набуде значення true, будуть виконані якісь дії, а потім продовжено виконання алгоритму, а у випадку, коли логічний вираз набуде значення false, алгоритм відразу буде продовжено далі.

2. Складений оператор

Розширимо поняття оператора в Pascal. Справа в тому, що ми з вами поки що мали справу лише з простими операторами - присвоювання і умовного переходу. А що робити, коли після службових слів then або else нам потрібно вказати не один такий оператор, а кілька? Для такого випадку в Pascal введене поняття складеного оператора.

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

Складений оператор це конструкція такого вигляду:

begin

<команда 1>;

<команда п>;

end;

Складена команда трактується як одна команда.

V. Фізкультхвилинка для очей

VІ. Формування практичних навичок

Розглянемо алгоритм пошуку найбільшого з двох заданих чисел А та В.

program max_А_В;

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);

readln

end.

Розглянемо детальніше наведену програму. По-перше, у ній чітко спостерігається принцип «вкладеності» операторів, тобто сходинкова структура. Наочність такої програми явно виграє! Для цього в ній навіть з'єднані вертикальними лініями оператори різного рівня. По-друге, перед закриваючою операторного дужкою (end) не стоїть символ «;». І справді, ви ж не ставите кому в тексті перед закриваючою дужкою, коли перелічуєте в ньому в дужках декілька слів. Хоча в Pascal це є помилкою. Саме через це не поставлено і символ «;» після останньої процедури readln.

Спробуйте відповісти на запитання: при виконанні якої умови буде виконано оператор max:= b? Дійсно, за умовою, протилежною а > b, тобто при виконанні умови а <= b!

Розглянемо пошук найбільшої з трьох попарно різних величин а, b, с

program max_A_B_С;

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:10:5); readln

end.

У цьому прикладі ми бачимо використання двох вкладених умовних операторів.

Внутрішній оператор умовного переходу буде виконано тоді і тільки тоді, коли значення логічного виразу зовнішнього умовного оператора матиме значення false. Це означатиме, що значення змінної а не є найбільшим, тому у вкладеному умовному операторі перевіряється лише значення змінної 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:10:5);

readln

end.

Отже, у першому алгоритмі внутрішній оператор розгалуження виконається тільки тоді, коли нас «пропустить» до нього зовнішній оператор розгалуження. Цей принцип можна порівняти із ситом.

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

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

Розглянемо приклад. 1.

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

program Myfunction;

uses Crt;

var x,y:real;

begin clrscr; writeln('Введіть х'); readln(x);

if x < -1 then y:=ln(abs(x)) else

if (x>=-l) and (x<l) then y:=sin(x) else y:=cos(x);

writeln('x=',x:5:2,'     y=",y:5:2); 

readln

 end.

2. Визначити, чи є задане тризначне число паліндромом (паліндром читається однаково зліва на право і справа на ліво, наприклад,  паліндромами є числа 121, 282, слово «наган»). Для розв’язання  цієї задачі можна використати просту умову - перша цифра числа повинна рівнятися останній:

program palindrom;

var х:Integer;

begin

Wrіte ('Уведіть ціле число:');

readln(x) ;     {Уведення числа  х}

if  х mod  10 = х div  100    then

Write('Уведене число  є паліндромом')

else    Write('Уведене  число  не

є  паліндромом');                           

end.

VІІ. Підбиття підсумків уроку

1.     Підсумки роботи учнів на уроці, оголошуються та виставляються в журнал оцінки.

2.     Чи навчилися того, що планували.

3.     Запитання для перевірки засвоєння знань

1) Який алгоритм називається розгалуженим?

 2) Які умови називаються складеними?

 3) Які логічні операції ви знаєте?

 4) Як записують скорочену форму команди розгалуження?

 5) Які операції відношення можна записувати в умові?

VІІІ. Домашнє завдання

Вивчити теоретичний матеріал уроку за конспектом.

Розв’язати задачі:

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.     Задано вік двох приятелів. Складіть програму, за допомогою якої визначите, хто з них старше.


 

4.    

Оператор розгалуження Мета уроку: ознайомити учнів з поняттями про структурні оператори, вказівку розгалуження (повну та скорочену форми) і поняттями про прості і складені умови; формувати…

Оператор розгалуження Мета уроку: ознайомити учнів з поняттями про структурні оператори, вказівку розгалуження (повну та скорочену форми) і поняттями про прості і складені умови; формувати…

Відмінність між двома фор­мами умовного оператора: в першій - повній - незалежно від значення логічного виразу якісь дії обов'язково будуть виконані, а вже потім продовжено…

Відмінність між двома фор­мами умовного оператора: в першій - повній - незалежно від значення логічного виразу якісь дії обов'язково будуть виконані, а вже потім продовжено…

Хоча в Pascal це є помилкою

Хоча в Pascal це є помилкою

Друге число більше за інші два

Друге число більше за інші два

Integer; begin Wrіte ('Уведіть ціле число:'); readln(x) ; {Уведення числа х} if х mod 10 = х div 100 then

Integer; begin Wrіte ('Уведіть ціле число:'); readln(x) ; {Уведення числа х} if х mod 10 = х div 100 then
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.