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

Матеріал з Фізмат Вікіпедії
Перейти до: навігація, пошук
Рядок 58: Рядок 58:
 
if <логічний вираз > then <команда 1>;
 
if <логічний вираз > then <команда 1>;
  
 +
[[зображення:11q2.jpg]]
 
   
 
   
 
Дія команди. Якщо логічний вираз істинний, то виконується команда 1, інакше виконується команда, яка знаходиться за даною конструкцією.
 
Дія команди. Якщо логічний вираз істинний, то виконується команда 1, інакше виконується команда, яка знаходиться за даною конструкцією.

Версія за 01:45, 7 червня 2010

Мета: вивчити синтаксис та семантику вказівки розгалуження, повну та скорочену форми вказівки розгалуження; навчитися записувати умову на мові 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. Обчислити і вивести значення складеної функції у у деякій заданій користувачем точці х, якщо

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 визначається так:

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

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; конспект.