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

Матеріал з Фізмат Вікіпедії
Перейти до: навігація, пошук
(Створена сторінка: Тема: Алгоритми з розгалуженнями. Блок-схеми розгалужених алгоритмів. Опис розгалуження …)
 
Рядок 1: Рядок 1:
Тема: Алгоритми з розгалуженнями. Блок-схеми розгалужених алгоритмів. Опис розгалуження мовою програмування. Розв’язання задач з використанням розгалужених алгоритмів.
+
'''Мета:''' вивчити синтаксис та семантику вказівки розгалуження, повну та скорочену форми вказівки розгалуження; навчитися записувати умову на мові Pascal, перевіряти істинність умови, виконувати вказівку  
Мета: вивчити синтаксис та семантику вказівки розгалуження, повну та скорочену форми вказівки розгалуження; навчитися записувати умову на мові Pascal, перевіряти істинність умови, виконувати вказівку розгалуження, підбирати значення для перевірки вказівки розгалуження, складати та виконувати алгоритми з розгалуженнями.
+
 
Хід уроку
+
розгалуження, підбирати значення для перевірки вказівки розгалуження, складати та виконувати алгоритми з розгалуженнями.
І.  Аналіз тематичної атестації.
+
 
 +
'''Хід уроку'''
 +
 
 +
'''І.  Аналіз тематичної атестації.'''
 +
 
 
Звернути увагу учнів на допущені помилки. Розв'язати задачі та тести, які виявилися проблемними для учнів.
 
Звернути увагу учнів на допущені помилки. Розв'язати задачі та тести, які виявилися проблемними для учнів.
ІІ.  Вивчення нового матеріалу.(Лекція)
+
 
Розгалуження - це така форма організації дій, при якій в залежності від виконання або невиконання деякої умови здійснюється або одна, або друга послідовність дій.
+
'''ІІ.  Вивчення нового матеріалу.(Лекція)'''
 +
 
 +
'''Розгалуження''' - це така форма організації дій, при якій в залежності від виконання або невиконання деякої умови здійснюється або одна, або друга послідовність дій.
 +
 
 
алг  об'їзд небезпечної ділянки
 
алг  об'їзд небезпечної ділянки
 +
 
поч   
 
поч   
 +
 
Якщо    ремонт закінчено
 
Якщо    ремонт закінчено
 +
 
то  проїхати 5 км по відремонтованому шосе
 
то  проїхати 5 км по відремонтованому шосе
 +
 
інакше  їхати 10 км в об'їзд
 
інакше  їхати 10 км в об'їзд
 +
 
Все.
 
Все.
  
1. Складена команда — це конструкція такого вигляду:
+
'''1. Складена команда''' — це конструкція такого вигляду:
 +
 
 
begin
 
begin
 +
 
<команда 1>;
 
<команда 1>;
 +
 
……………..;
 
……………..;
 +
 
<команда n>;
 
<команда n>;
 +
 
end;
 
end;
 +
 
Складена команда трактується як одна команда.
 
Складена команда трактується як одна команда.
2. Логічний вираз — це засіб записування умов для відшукання потрібних даних. Логічний вираз може приймати значення true (істинність) або false (хибність). Логічні вирази бувають прості та складені. Простий — це два арифметичні вирази, з'єднані символом відношення, а складений — це прості логічні вирази, з'єднані назвами логічних операцій: not, and і or.
+
 
3. Команда розгалуження if (умовна команда) має два різновиди.
+
'''2. Логічний вираз''' — це засіб записування умов для відшукання потрібних даних. Логічний вираз може приймати значення true (істинність) або false (хибність). Логічні вирази бувають прості та складені.  
1. Повна команда розгалуження має вигляд
+
 
 +
Простий — це два арифметичні вирази, з'єднані символом відношення, а складений — це прості логічні вирази, з'єднані назвами логічних операцій: not, and і or.
 +
 
 +
'''3. Команда розгалуження if (умовна команда)''' має два різновиди.
 +
'''1. Повна''' команда розгалуження має вигляд
 
if < логічний вираз > then <команда 1> else < команда 2 >;
 
if < логічний вираз > then <команда 1> else < команда 2 >;
  
Рядок 29: Рядок 51:
 
Приклад. Нехай х=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.
 
Приклад. Нехай х=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. Коротка команда розгалуження має вигляд
+
'''2. Коротка''' команда розгалуження має вигляд
 +
 
 
if <логічний вираз > then <команда 1>;
 
if <логічний вираз > then <команда 1>;
  
 
   
 
   
 
Дія команди. Якщо логічний вираз істинний, то виконується команда 1, інакше виконується команда, яка знаходиться за даною конструкцією.
 
Дія команди. Якщо логічний вираз істинний, то виконується команда 1, інакше виконується команда, яка знаходиться за даною конструкцією.
 +
 
Приклад. Нехай х=25. Тоді у результаті виконання команд if x>12 then y:=2*x; z:=10; if x<5 then z:=exp(x); отримаємо y=50,z=10.
 
Приклад. Нехай х=25. Тоді у результаті виконання команд if x>12 then y:=2*x; z:=10; if x<5 then z:=exp(x); отримаємо y=50,z=10.
4. Команда goto — це команда безумовного переходу, яка змінює послідовність виконання інших команд програми шляхом переходу до виконання команди, що має позначку (мітку):
+
 
 +
'''3. Команда''' goto — це команда безумовного переходу, яка змінює послідовність виконання інших команд програми шляхом переходу до виконання команди, що має позначку (мітку):
 +
 
 
goto <позначка>;
 
goto <позначка>;
 +
 
Позначка може стояти перед довільною командою в програмі. Вона відокремлюється від команди двокрапкою (:)
 
Позначка може стояти перед довільною командою в програмі. Вона відокремлюється від команди двокрапкою (:)
 +
 
<позначка> : <команда>;
 
<позначка> : <команда>;
 +
 
Позначку треба заздалегідь оголосити на початку програми у розділі label:
 
Позначку треба заздалегідь оголосити на початку програми у розділі label:
 +
 
label <список позначок>;
 
label <список позначок>;
 +
 
Позначка може починатися з букви або бути числом від 0 до 9999.
 
Позначка може починатися з букви або бути числом від 0 до 9999.
 +
 
Зауваження. Не можна передавати керування команді, яка є в середині підпрограми чи в середині складеної команди.  
 
Зауваження. Не можна передавати керування команді, яка є в середині підпрограми чи в середині складеної команди.  
5. Команда вибору (case) має вигляд
+
 
 +
'''5. Команда''' вибору (case) має вигляд
 +
 
 
case  <вираз>  of
 
case  <вираз>  of
 +
 
<список значень 1> : <команда 1>;
 
<список значень 1> : <команда 1>;
 +
 
……………………………………;
 
……………………………………;
 +
 
< список значень n> : <команда n> else  <команда n+1>  
 
< список значень n> : <команда n> else  <команда n+1>  
 +
 
end;
 
end;
Тут вираз — це проста змінна цілого, символьного, перерахованого або логічного типу; списки значень — сталі або діапазони, тип яких збігається з типом виразу. Якщо список значень складається з декількох елементів, то вони перераховуються через кому. Складова частина else <команда п+1> може бути відсутня — тоді матимемо коротку форму команди case.
+
 
Дія команди. Якщо значення виразу збігається зі значенням з списку і, то виконується команда з номером і, а інші команди цієї конструкції не виконуються. Якщо значення виразу не збігається з жодним значенням з жодного списку, то виконується команда n+1 або, у випадку короткої форми, наступна команда після команди case.
+
Тут вираз — це проста змінна цілого, символьного, перерахованого або логічного типу; списки значень — сталі або діапазони, тип яких збігається з типом виразу. Якщо список значень складається з декількох елементів,  
ІІІ. Закріплення. Розв’язування задач.
+
 
Задача 1. Обчислити і вивести значення складеної функції у у деякій заданій користувачем точці х, якщо
+
то вони перераховуються через кому. Складова частина else <команда п+1> може бути відсутня — тоді матимемо коротку форму команди case.
 +
 
 +
Дія команди. Якщо значення виразу збігається зі значенням з списку і, то виконується команда з номером і, а інші команди цієї конструкції не виконуються. Якщо значення виразу не збігається з жодним значенням з  
 +
 
 +
жодного списку, то виконується команда n+1 або, у випадку короткої форми, наступна команда після команди case.
 +
 
 +
'''ІІІ. Закріплення. Розв’язування задач.'''
 +
 
 +
''Задача 1.'' Обчислити і вивести значення складеної функції у у деякій заданій користувачем точці х, якщо
 
   
 
   
 
program Myfunction;
 
program Myfunction;
 +
 
uses Crt;  
 
uses Crt;  
 +
 
var x,y:real;
 
var x,y:real;
 +
 
begin
 
begin
 +
 
writeln ('Bвeдіть x');  
 
writeln ('Bвeдіть x');  
 +
 
readln(x);  
 
readln(x);  
 +
 
if x < -1 then y:=ln(abs(x)) else
 
if x < -1 then y:=ln(abs(x)) else
 +
 
if (x>=-l) and (x<l) then y:=sin(x) else y:=cos(x);  
 
if (x>=-l) and (x<l) then y:=sin(x) else y:=cos(x);  
 +
 
writeln('x=',x:5:2,'      y=',y:5:2);   
 
writeln('x=',x:5:2,'      y=',y:5:2);   
 +
 
readln;
 
readln;
 +
 
end.  
 
end.  
  
Задача 2. Ввести декілька наборів коефіцієнтів квадратного рівняння ax2+bx+c=0  і вивести повідомлення чи рівняння матиме дійсні корені, чи ні.
+
''Задача 2.'' Ввести декілька наборів коефіцієнтів квадратного рівняння ax2+bx+c=0  і вивести повідомлення чи рівняння матиме дійсні корені, чи ні.
 +
 
 
program Rivnyannya;
 
program Rivnyannya;
 +
 
label 99,finish;
 
label 99,finish;
 +
 
var a,b,c,d,x,y:real;
 
var a,b,c,d,x,y:real;
 +
 
begin
 
begin
 +
 
99: writeln('Bвeдiть коефіцієнти квадратного рівняння');
 
99: writeln('Bвeдiть коефіцієнти квадратного рівняння');
 +
 
readln(a,b,c);
 
readln(a,b,c);
 +
 
if a=0 then goto finish;
 
if a=0 then goto finish;
 +
 
d:=b*b-4*a*c;
 
d:=b*b-4*a*c;
 +
 
if d>=0 then writeln('Данe рівняння має дійсні розв’язки') else
 
if d>=0 then writeln('Данe рівняння має дійсні розв’язки') else
 +
 
begin
 
begin
 +
 
writeln(‘Дaнi введені некоректно');
 
writeln(‘Дaнi введені некоректно');
 +
 
writeln('Рівняння дійсних розв'язків не має');
 
writeln('Рівняння дійсних розв'язків не має');
 +
 
goto 99;
 
goto 99;
 +
 
end;
 
end;
 +
 
finish: readln
 
finish: readln
 +
 
end.
 
end.
  
Задача 3. Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка до конкретного пункту k визначається так:
+
''Задача 3.'' Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка до конкретного пункту k визначається так:
 
   
 
   
 
Скільки коштуватимуть т квитків до населеного пункту, номер якого вводять з клавіатури?  
 
Скільки коштуватимуть т квитків до населеного пункту, номер якого вводять з клавіатури?  
 +
 
program Kvytky;
 
program Kvytky;
 +
 
var k,m,cina:integer;  
 
var k,m,cina:integer;  
 +
 
begin
 
begin
 +
 
writeln('Введіть номер пункту та кількість квитків:');
 
writeln('Введіть номер пункту та кількість квитків:');
 +
 
readln(k,m);
 
readln(k,m);
 +
 
case k of
 
case k of
 +
 
1        : cina:=22;
 
1        : cina:=22;
 +
 
2..4  : cina:=25;  
 
2..4  : cina:=25;  
 +
 
5,6  : cina:=30  
 
5,6  : cina:=30  
 +
 
else      cina:=35
 
else      cina:=35
 
end;
 
end;
 +
 
write(m, ' квитків до пункту ', k, ' коштують ');  
 
write(m, ' квитків до пункту ', k, ' коштують ');  
 +
 
writeln(m*cina);  
 
writeln(m*cina);  
 +
 
readln  
 
readln  
 +
 
end.  
 
end.  
  
 
Якщо під час виконання програми ввести дані так:  3    5,  то на ікрині отримаємо: 5 квитків до пунку 3 коштують 125.
 
Якщо під час виконання програми ввести дані так:  3    5,  то на ікрині отримаємо: 5 квитків до пунку 3 коштують 125.
  
ІV. Підсумки уроку.
+
'''ІV. Підсумки уроку.'''
 +
 
 
Домашнє завдання: підручник ст.229-231; 237-239; конспект.
 
Домашнє завдання: підручник ст.229-231; 237-239; конспект.
  
[[Категорія:Інформатика]][[Категорія:Бази даних Конспекти уроків]]
+
[[Категорія:Інформатика]]
 +
[[Категорія:Бази даних Конспекти уроків]]

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

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

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

Хід уроку

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

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

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

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

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

поч

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

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

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

Все.

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

begin

<команда 1>;

……………..;

<команда n>;

end;

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

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

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

3. Команда розгалуження if (умовна команда) має два різновиди. 1. Повна команда розгалуження має вигляд if < логічний вираз > then <команда 1> else < команда 2 >;


Дія команди. Якщо логічний вираз істинний, то виконується команда 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>;


Дія команди. Якщо логічний вираз істинний, то виконується команда 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; конспект.