Тема
урока: Организация выбора
Класс: 9 класс
Дата: 4.12.2014
Предмет: Информатика (ОИВТ)
Учитель: Тайганов Даулет Тулеубаевич
Школа: ГУ «Школа-гимназия №7 имени Гали Орманова» г.Астана
Цель урока:
ü
Познакомить учащихся с организацией выбора в Pascal;
ü
Научить решению задач с использованием оператора CASE.
Учащиеся должны
знать:
ü
Назначение оператора CASE;
ü
Сферы применения оператора выбора в задачах;
ü
Вид блок-схемы для структуры ветвления с организацией
выбора;
ü
Правила использования меток для построения
программы с использованием оператора выбора
Учащиеся должны
уметь:
ü
Программировать алгоритмы ветвления с оператором
выбора CASE
Сопровождение
урока:
урок 13/Блок-схема.doc;
урок 13/Задание.doc; урок 13/A1.pas; урок 13/A2.pas; урок 13/B1.pas; урок 13/B2.pas;
урок 13/C1.pas.
Ход
урока
I Организационный
момент
II Постановка
целей и задач урока
III Проверка
домашнего задания
IV Проверка
знаний
Ученики
отвечают на вопросы теста после 12.
V Актуализация
знаний
Вывожу
на кран фрагмент программы, ученики должны выбрать вариант ответа с верным
результатом. (урок 13/Задание.doc).
Задание
Определите
значение переменной Z, которое будет получено в результате выполнения фрагмента
программы, написанной на языке программирования:
X:=3;
Y:=2;
X:=Y;
Z:=2;
If X>Y then Z:=
Y–1
else Z:= X+1;
Варианты
ответов: 1) 1; 2) 2; 3) 3; 4) 4.
Правильный овтет: 3
VI Изучение
нового материала
Предлагаю ученикам блок-схему задачи (Урок 13/Блок-схема.doc) рис. 31.
в учебнике.
Задача:
Составьте
программу которая выдает реакцию родителей на вашу оценку. Допустим, такая
реакция: 1 – очень плохо, пора мне прийти в школу; 2 – плохо, я тобой
недовольгна; 3 – мог бы и лучше; 4 – хорошо, но пятерка лучше; 5 – молодец, на
выходных пойдешь в кино.
В
программе следует предусмотреть ввод пользователем неверной оценки, например 6
или 15.
По
блок-схеме ученики понимают нерациональность использования условного оператора IF
для составления такой программы. Можно предложить ученикам
сначала составить программу по этой блок-схеме.
Я
объясняю назначение выбора CASE и возможность организации
выбора для некоторых задач.
Использование
в такоцй задаче условного оператора IF нерационально. Для
подобного рода задач используют оператор выбора CASE:
case <переменная> of;
<значение1>: <оператор(группа
операторов)>;
<значение2>: <оператор(группа
операторов)>;
…..
<значениеN>: <оператор(группа
операторов)>;
else <оператор(группа операторов)>;
end;
Прошу
учеников привести примеры задач, в которых целесообразно использовать оператор
выбора. (например, различные перечисления – названия месяцев, школьных
предметов и т.д.).
Оператор
выбора работает следующим образом. Сначала считывается значение переменной,
стоящей после зарезервированного слова CASE, а затем
выполняется оператор (или группа операторов), соответствующий тому значению.
Может
случиться, что в списке выбора не окажется константы, равной значению
переменной. В том случае управление передается оператору, стоящему за словом ELSE.
VI Закрепление
изученного материала
Решение задач из
практическоцй работы
Уровень А.
Задача 1
В восточном
календаре приянт 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых
названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле
годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи,
лошади, овцы, обезьяны, курицы, собаки и свеньи. По номеру года выведите его
название, если 1996 год началом цикла – годом зеленой крысы. (урок 13/A1.pas)
var god, f: integer;
begin
write('введите
год'); readln(god);
if ((god mod 60)>=4)and((god
mod 60)<16) then write('Зелено');
if ((god mod 60)>=16)and((god
mod 60)<28) then write('Красно');
if (god mod 60>=28)and((god
mod 60)<40) then write('Желто');
if (god mod 60>=40)and((god
mod 60)<52) then write('Бело');
if ((god mod 60)>=52)or((god mod
60)<4) then write('Черно');
f:=((god mod 60) mod 12);
case f of
4: write('й крысы');
5: write('й коровы');
6: write('го тигра');
7: write('го зайца');
8: write('го дракона');
9: write('й змеи');
10: write('й лошади');
11: write('й овцы');
0: write('й обезьяны');
1: write('й курицы');
2: write('й собаки');
3: write('й свиньи');
end;
readln;
end.
Задача 2.
Напишите программу,
которая по введеному номеру единицы измерения (1 – дециметр, 2 – километр, 3 –
метр, 4 – миллиметр, 5 - сантиметр) и длине отрезка L выдавала
бы соотвествующее значение отрезка в метрах (урок 13/A2.pas)
Uses crt;
label 1;
var k:integer;
l: real;
Begin
1: Write('Введите
номер единицы измерения от 1 до 5: k=');
Read(k);
if (k<1) or (k>5) then goto 1;
Write('Введите длину
отрезка: l=');
Read(l);
case k of
1: l:=l/10;
2: l:=l*1000;
4: l:=l/1000;
5: l:=l/100;
end;
Writeln('величина отрезка
',l:3:3,' м.');
ReadLn;
end.
Уровень В
Зачада 1
Составьте
программу, которая по заданному году и номеру месяца определаяет количесвто
дней в том месяце. (урок 13/В1.pas)
var f,kd,god,mes:integer;
Begin
Write('Введите год god=');
Read(god);
Write('Введите номер месяца mes=');
Read(mes);
f:=28;
if god mod 4 =0 then f:=29;
case mes of
1,3,5,7,8,10,12:kd:=31;
2:kd:=f;
4,6,9,11:kd:=30;
end;
Write('Количество дней
в ',mes,' месяце ',kd,' дней');
ReadLn;
end.
Задача 2
Для целого числа k
от 1 до 99 напечатайте фразу «Мне k лет»,
учитывая при том, что при неокторых k слово «лет» надо
заменить на «год» или «года». Например: 11 лет, 22 года, 51 год. (урок 13/В2.pas)
Label 1,2;
var k,ost:integer;
Begin
1: Write('Введите
число от 1 до 99: k=');
Read(k);
if (k>99) or (k<1) then goto 1;
ost:=k mod 10;
Write('Мне ',k);
If (k>=5) And (k<=20) then
begin Write(' лет'); goto 2; end;
caseost of
1: Write(' год');
2..4: Write(' года');
else
Write(' лет');
end;
2:ReadLn;
end.
Уровень С
Задача 1
Составьте
программу, которая читает натуральное число N в десятичном
предсмтавлении (N≤10 000), а на выходе то же число в десятичном
представлении и на естественном языке. Например: 7 – семь, 204 – двести четыре.
(урок 13/С1.pas)
label a,b;
var n,m:integer;
begin
a: Writeln('Введите целое число N<=10000:');read(n);
If n>10000 then
begin
writeln('Число очень большое');
goto a;
end;
write(n,' ');
m:=n div 1000;
case m of
1:write('одна
тысяча ');
2:write('две
тысячи ');
3:write('три
тысячи ');
4:write('четыре
тысячи ');
5:write('пять
тысяч ');
6:write('шесть
тысяч ');
7:write('семь
тысяч ');
8:write('восемь
тысяч ');
9:write('девять
тысяч ');
10:write('десять
тысяч ');
end;
n:=n mod 1000;
m:=n div 100;
case m of
1:write('сто ');
2:write('двести ');
3:write('триста ');
4:write('четыреста
');
5:write('пятьсот
');
6:write('шестьсот
');
7:write('семьсот
');
8:write('восемьсот
');
9:write('девятьсот ');
end;
n:=n mod 100;
if (n>=10) and (n<=19) then
begin
case n of
10:write('десять ');
11:write('одиннадцать
');
12:write('двенадцать
');
13:write('тринадцать
');
14:write('четырнадцать
');
15:write('пятнадцать
');
16:write('шестнадцать
');
17:write('семнадцать
');
18:write('восемнадцать
');
19:write('девятнадцать ');
end;
goto b;
end;
m:=n div 10;
case m of
2:write('двадцать
');
3:write('тридцать
');
4:write('сорок ');
5:write('пятьдесят
');
6:write('шестьдесят
');
7:write('семьдесят
');
8:write('восемьдесят
');
9:write('девяносто ');
end;
m:=n mod 10;
case m of
1:write('один ');
2:write('два ');
3:write('три ');
4:write('четыре ');
5:write('пять ');
6:write('шесть ');
7:write('семь ');
8:write('восемь ');
9:write('девять ');
end;
b:readLn;
end.
VIII
Подведение итогов
Ученики
выделяют главное в теме урока: общий вид оператора выбора.
Я выставляю оценки
за выполнение практической раьботы и проведенный тест.
IX Домашнее
задание
Изучить
содержание §13, ответить на контрольные вопросы, вопросы
теста, повторить содержание §11, 12.
Ключи к тестыу
раздела «Проверь себя» после §13.
1-В, 2-А, 3-С, 4-А,
5-В
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.