Урок информатики "Программирование разветвляющихся алгоритмов"

Разделы: Информатика


Тип урока: контрольно-обобщающий урок.
Цель урока: закрепить знания о разветвляющихся алгоритмах и умения применять их при решении поставленных задач.

Задачи:

Образовательные Воспитательные Развивающие
Закрепление приобретённых  знаний и умений, усвоение учащимися назначения и правил использования операторов выбора, безусловного перехода и условных операторов,
контроль уровня знаний, умений и навыков по теме «Алгоритмы ветвления».
Развитие познавательного интереса, воспитание самостоятельности при выполнении  заданий,
выработка умения работать в коллективе и индивидуально
Развитие логического мышления, памяти,
формирование творческих способностей, развитие умения  выделять главное и преодолевать трудности

Ход урока:

1. Сообщение темы и целей урока.

2. Письменный опрос:

1) Какой алгоритм называется разветвляющимся? (Ответ - Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно.)
2) Какие операторы используются для реализации разветвляющихся алгоритмов? Перечислите их.
Ответ - Оператор безусловного переходаGoto <метка>;
Условный оператор
If  < условие>  Then <оператор1 >  Else <оператор2 >;
Оператор выбораCase <селектор> of
<список меток варианта > : <оператор1>;
< список меток варианта > : < оператор2>;

Else < операторN>
End;
3) Ниже приведены блок-схемы некоторых алгоритмов.
Укажите, какая из вышеприведенных блок-схем является блок-схемой алгоритма ветвящейся структуры?


Рисунок 1. (Ответ - а)

4) Для реализации алгоритмов ветвящейся структуры используются операторы:
а) GOTO <метка>;
б) If <условие> then  <действие1> else<действие2>;
в) : =
г) case <параметр> of <метка>:<действие 1>:<метка 2>:<действие 2> else <действие> end;
Один из пунктов здесь лишний. Укажите, какой именно. (Ответ - в)
5) Метка в Турбо Паскале – это произвольный идентификатор, позволяющий именовать некоторый оператор программы  и таким образом ссылаться на него.
Верно ли данное высказывание? (Ответ - да)
6) Выберите неправильные операторы из списка:
а) if a>b then;
б) if  x and y then s:= s+1;  else s;= s-1;
в) if  k<> m then k:=m;
г) if 5 then s:=s+5;
д) if (a<b) and c then c:=false;
е) if 2<x or x<5 then d:=0 else d:=1;
ж) if (a=b) and p then p:=p+105;
(Ответ - а, б, г, д, ж)
7) Часть ELSE  <оператор 2> условного оператора не может быть опущена.
Верно ли данное высказывание? (Ответ - нет)
8) Условный оператор при выполнении программы позволяет выбрать одно
из двух возможных действий.
Верно ли данное высказывание? (Ответ - да)
9) Оператор выбора при выполнении программы позволяет выбрать одно из двух возможных действий.
Верно ли данное высказывание? (Ответ - нет)

3. Решение задач ( по группам):
При решении задач используется среда программирования  Borland Pascal 7.0.

1. Вычислить значение функции у по условию:

( использовать условный оператор).

Решение:
Program wetw;
Uses CRT;
var x,y : real;
begin
CLRSCR;
write('x=');
readln(x);
if (x>0) and (x<2) then y:=Sqr(cos(x)) else y:= 1-sin(sqr(x));
writeln('y=', y);
readln;
end.

2. В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старояпонскому  календарю. Известно, что 1996г. – год крысы. ( использовать оператор выбора).
Решение:
program Goroskop;
Uses CRT;
var year : integer;
begin
CLRSCR;
write('год=');
readln(year);
case year mod 12 of
0:writeln('год обезьяны');
1:writeln('год петyxa');
2:writeln('год собаки');
3: writeln('год свиньи');
4:writeln('год крысы');
5:writeln('год коровы');
6: writeln('год тигра');
7: writeln('год зайца');
8: writeln('год дракона');
9: writeln('год змеи');
10: writeln('год лошади');
11:writeln('год овцы');
end;
readln;
end.

3.  В блок-схеме алгоритма, имитирующего работу микрокалькулятора, распознающего 4 арифметических действия( +, - , / , * ), заполните пустые блоки и составьте программу. ( К – знак арифметической операции).
Решение:
Program calc;
Uses CRT;
Var x,y,z:real;
K:char;
Begin
CLRSCR;
Writeln(‘Введите два числа’);
readln(x,y);
Writeln(‘Укажите операцию’);
readln(k);
Case k of
‘+’: z:=x+y;
‘-’: z:=x-y;
‘*’: z:=x*y;
‘/’: z:=x/y;
end;
writeln(z);
readln;
end.

4. Составить программу нахождения действительных корней квадратного уравнения: ах2 +вх+с=0 ( использовать оператор безусловного перехода – Goto).

Решение:
program uravnenie;
uses crt;
var x1, x2, d, a, b, c: real;
label 1, 2, 3, 4;
begin
clrscr;
Writeln('Vvedite znachenie a, b, c');
Readln(a, b, c);
d:=sqr(b)-(4*a*c);
If d>0 then goto 1;
If d=0 then goto 2;
If d<0 then goto 3;
1:begin
x1:=-b+sqrt(d)/(2*a);
x2:=-b-sqrt(d)/(2*a);
Write('x1=', x1,' x2=', x2);
goto 4;
2:begin
x1:=-b/(2*a);
Write('x1=', x1);
goto 4;
3:begin
Write('Resheniy net');
goto 4;
4:end;
end;
end;
readln;
end.

4. Домашнее задание.
Повторить основные циклические структуры и привести примеры для каждой из них.

5. Итоги урока.
Сегодня на уроке вы обобщили имеющиеся у вас сведения о разветвляющихся алгоритмах и применили их при решении математических задачах.
Выставление оценок за урок.