Алгоритми з розгалуженнями. Блок-схеми розгалужених алгоритмів.43.15

Матеріал з Фізмат Вікіпедії
Версія від 01:49, 7 червня 2010, створена Mylyanych rs (обговореннявнесок) (перейменував «Алгоритми з розгалуженнями. Блок-схеми розгалужених алгоритмів.» на «[[Алгоритми з розгалуженнями. Блок-схеми розгалужени)
(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Мета: вивчити синтаксис та семантику вказівки розгалуження, повну та скорочену форми вказівки розгалуження; навчитися записувати умову на мові Pascal, перевіряти істинність умови, виконувати вказівку

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

Хід уроку

І. Аналіз тематичної атестації.

Звернути увагу учнів на допущені помилки. Розв'язати задачі та тести, які виявилися проблемними для учнів.

ІІ. Вивчення нового матеріалу.(Лекція)

Розгалуження - це така форма організації дій, при якій в залежності від виконання або невиконання деякої умови здійснюється або одна, або друга послідовність дій.

алг об'їзд небезпечної ділянки

поч

Якщо ремонт закінчено

то проїхати 5 км по відремонтованому шосе

інакше їхати 10 км в об'їзд

Все.

1. Складена команда — це конструкція такого вигляду:

begin

<команда 1>;

……………..;

<команда n>;

end;

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

2. Логічний вираз — це засіб записування умов для відшукання потрібних даних. Логічний вираз може приймати значення true (істинність) або false (хибність). Логічні вирази бувають прості та складені.

Простий — це два арифметичні вирази, з'єднані символом відношення, а складений — це прості логічні вирази, з'єднані назвами логічних операцій: not, and і or.

3. Команда розгалуження if (умовна команда) має два різновиди.

1. Повна команда розгалуження має вигляд

if < логічний вираз > then <команда 1> else < команда 2 >;

1q2.jpg

Дія команди. Якщо логічний вираз істинний, то виконується команда 1, в протилежному випадку — команда 2. Команди 1 та 2 можуть бути простими або складеними. Приклад. Нехай х=9. У результаті виконання команд if x>7 then y:=x*x else y:=sin(x); if x<5 then z:=exp(x) else z:=sqrt(x); отримаємо y=81,z=3.

2. Коротка команда розгалуження має вигляд

if <логічний вираз > then <команда 1>;

11q2.jpg

Дія команди. Якщо логічний вираз істинний, то виконується команда 1, інакше виконується команда, яка знаходиться за даною конструкцією.

Приклад. Нехай х=25. Тоді у результаті виконання команд if x>12 then y:=2*x; z:=10; if x<5 then z:=exp(x); отримаємо y=50,z=10.

3. Команда goto — це команда безумовного переходу, яка змінює послідовність виконання інших команд програми шляхом переходу до виконання команди, що має позначку (мітку):

goto <позначка>;

Позначка може стояти перед довільною командою в програмі. Вона відокремлюється від команди двокрапкою (:)

<позначка> : <команда>;

Позначку треба заздалегідь оголосити на початку програми у розділі label:

label <список позначок>;

Позначка може починатися з букви або бути числом від 0 до 9999.

Зауваження. Не можна передавати керування команді, яка є в середині підпрограми чи в середині складеної команди.

5. Команда вибору (case) має вигляд

case <вираз> of

<список значень 1> : <команда 1>;

……………………………………;

< список значень n> : <команда n> else <команда n+1>

end;

Тут вираз — це проста змінна цілого, символьного, перерахованого або логічного типу; списки значень — сталі або діапазони, тип яких збігається з типом виразу. Якщо список значень складається з декількох елементів,

то вони перераховуються через кому. Складова частина else <команда п+1> може бути відсутня — тоді матимемо коротку форму команди case.

Дія команди. Якщо значення виразу збігається зі значенням з списку і, то виконується команда з номером і, а інші команди цієї конструкції не виконуються. Якщо значення виразу не збігається з жодним значенням з

жодного списку, то виконується команда n+1 або, у випадку короткої форми, наступна команда після команди case.

ІІІ. Закріплення. Розв’язування задач.

Задача 1. Обчислити і вивести значення складеної функції у у деякій заданій користувачем точці х, якщо

2q1.jpg

program Myfunction;

uses Crt;

var x,y:real;

begin

writeln ('Bвeдіть x');

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. Ввести декілька наборів коефіцієнтів квадратного рівняння ax2+bx+c=0 і вивести повідомлення чи рівняння матиме дійсні корені, чи ні.

program Rivnyannya;

label 99,finish;

var a,b,c,d,x,y:real;

begin

99: writeln('Bвeдiть коефіцієнти квадратного рівняння');

readln(a,b,c);

if a=0 then goto finish;

d:=b*b-4*a*c;

if d>=0 then writeln('Данe рівняння має дійсні розв’язки') else

begin

writeln(‘Дaнi введені некоректно');

writeln('Рівняння дійсних розв'язків не має');

goto 99;

end;

finish: readln

end.

Задача 3. Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка до конкретного пункту k визначається так:

2q2.jpg

Скільки коштуватимуть т квитків до населеного пункту, номер якого вводять з клавіатури?

program Kvytky;

var k,m,cina:integer;

begin

writeln('Введіть номер пункту та кількість квитків:');

readln(k,m);

case k of

1  : cina:=22;

2..4  : cina:=25;

5,6  : cina:=30

else cina:=35 end;

write(m, ' квитків до пункту ', k, ' коштують ');

writeln(m*cina);

readln

end.

Якщо під час виконання програми ввести дані так: 3 5, то на ікрині отримаємо: 5 квитків до пунку 3 коштують 125.

ІV. Підсумки уроку.

Домашнє завдання: підручник ст.229-231; 237-239; конспект.