Конспект урока рефлексии в дидактической системе деятельностного метода обучения по теме Программирование ветвлений на Паскале, 9 класс, информатика.


Автор: Федорова Е.Н., учитель информатики и ИКТ, высшей кв.категории, МБОУ «Математический лицей», г. Хабаровск
Предмет: информатика, 9 класс
Тема: «Программирование ветвлений на Паскале»
Дидактическая система деятельностного метода обучения Л.Г. Петерсон.
Тип урока: рефлексия
Цель урока: формирование умений применять условный оператор для решения задач
Задачи:
тренировать навык представления решения задачи в виде алгоритма – программы на языке Паскаль, развивать способности решать задачу разными способами;
тренировать способность к рефлексии собственной деятельности;
тренировать умение фиксировать собственные затруднения и ставить цель деятельности,
развивать способность самостоятельного преодоления возникших затруднений, совершенствовать умение анализировать процесс и результаты своей деятельности;
развивать логическое мышление, тренировать умение анализировать, сравнивать и обобщать, использовать знако - символьные средства;
совершенствовать умение выражать свои мысли с достаточной полнотой и точностью, обосновывать свои суждения.
Формируемые УУД
Познавательные:
Умение выбирать смысловые единицы текста и устанавливать отношения между ними.
Умение выражать смысл ситуации различными средствами (рисунки, символ, схемы, знаки).
Умение устанавливать отношения между: данными условия и требованиями задачи.
Умение составлять программы для исполнителя.
Умение использовать оптимальный способ решения.
Коммуникативные:
Способность строить понятные для собеседника высказывания.
Иметь навык конструктивного общения, взаимопонимания.
Уметь планировать общие способы работы.
Уметь обосновывать и доказывать свою точку зрения.
Понимать относительность оценок, выборов, совершаемых людьми.
Способность строить понятные для партнера высказывания, т.е. владеть вербальными и невербальными средствами общения.
Регулятивная:
Способность самостоятельно формулировать цели и задачи урока.
Умение планировать работу от начала до конца (планирующий самоконтроль).
Умение самостоятельно обнаруживать ошибки, вызванные несоответствием усвоенного способа действия и условий задачи, и вносить коррективы.
Ход урока:
Мотивация учебной деятельности учащихся
На доске проецириуются тексты программ, предложенных для самостоятельного решения:
а) program z_1;
uses crt;
var m,n:integer;
begin readln (m,n);
if m mod n = 0 then writeln (m div n) else writeln ('m на n нацело не делится');
end.
б) program z_2;
uses crt;
var m,n:integer;
begin readln (m);
n:=m mod 10;
if n mod 2 = 0 then writeln ('последняя цифра чётная') else writeln ('последняя цифра нечётная');
end.
в) program z_3;
uses crt;
var m,n,c:integer;
begin writeln ('Введите двузначное число')
readln (m);
n:=m mod 10;
c:=m div 10;
if n=c then writeln ('цифры одинаковы') else writeln ('цифры разные');
end.
Учитель:
- Сформулируйте условие задачи а).
- Какие знания потребовались для написания программы? (Назначение операторов на Паскале для написания программы, содержащей ветвления, знания о применении операций над целыми числами mod и div.)
- Сформулируйте условие задачи б).
- Сформулируйте условие задачи в).
- Возникло ли у вас затруднение в решении этих задач?
Сегодня вы продолжите учиться программировать ветвления на Паскале.
- Что необходимо сделать, чтобы ответить себе на вопрос: все ли я понял, умею ли я написать программу, содержащую ветвление? (Надо самостоятельно выполнить задания, выяснить, есть ли затруднения.)
- По какому плану вы будете работать сегодня на уроке? (Мы выполним самостоятельно работу и проверим её: кто не допустит ошибок, будет решать более сложные задачи, у кого возникнут затруднения – те ребята разберутся в их причине, исправят допущенные ошибки, будут учиться решать задачи правильно, напишут вторую самостоятельную работу).
- Вы очень хорошо определили задачу сегодняшнего урока, начнём работать. С чего начать? (С повторения.)
Актуализация знаний, повторение
Задание 1.
Выяснить, какую задачу решает представленный алгоритм. По представленной блок-схеме написать программу на Паскале.

(Задача нахождения большего из трёх чисел).
Задание выполняется в тетрадях (один ученик у доски) с подробным комментированием.
Текст программы:
program BIT;
uses crt;
var a, b, c, d: real;
begin readln (a, b, c);
if a>b then if a>c then d:=a else d:=b else if b>c then d:=b else d:=c;
writeln (‘d=’, d);
end.
Учитель:
- Сколько раз условный оператор употребляется в этой программе?
- Как называются такие структуры алгоритмов, в которых одно ветвление находится внутри другого? (Вложенные ветвления.)
Задание 2.
Написать программу решения задачи:
Дано целое трёхзначное число. Определить, какая из цифр в записи этого числа наибольшая и вывести ее значение.
Учитель:
- Давайте обсудим решение этой задачи. Что дано? (Трехзначное целое число.) Что это означает? (В записи числа три цифры.) Что надо найти в этой задаче? (Наибольшую цифру.) Сравните предыдущую задачу с этой задачей. Что общего? (Необходимо найти наибольшее из трех чисел – цифр данного числа). В чём различие? (Цифры не даны по отдельности их надо выделить из данного числа). Каким способом это можно сделать? (Чтобы выделить последнюю цифру целого числа, необходимо использовать операцию над целыми числами – mod 10. Чтобы выделить вторую цифру числа, необходимо последовательно выполнить операции div 10 и mod 10, а чтобы выделить первую цифру, надо использовать операцию div 100.
- Какой можно сделать вывод? (Задача сводится к предыдущей, но три, сравниваемые числа даны не в явном виде, их надо выделить из данного по условию целого числа.)
- Выполните это задание за компьютером. (5 минут времени).
- Давайте сверим с эталоном.
Текст возможного варианта решения (на экране):
program z_tr;
uses crt;
var m, a, b, c, d: integer;
begin writeln ('Введите трёхначное число');
readln (m);
a:=m div 100;
b:=(m div 10) mod 10;
c:=m mod 10;
if a>b then if a>c then begin d:=a; writeln (‘1 цифра наибольшая ’, d) end
else d:=b else if b>c then begin d:=b; writeln (‘2 цифра наибольшая ’, d) end
else begin d:=c; writeln (‘3 цифра наибольшая ’, d) end;
end.
Учитель:
Задайте вопросы, если они появились. У кого другой способ решения этой задачи? В чём может быть различие?
Какой следующий шаг в работе? (Самостоятельная работа № 1).
Самостоятельная работа № 1
Взять карточки с самостоятельной работой № 1. Выполнить задания, сохранив результаты в своей папке на рабочем столе. Сверить с эталоном (получить у учителя) и по мере выполнения заданий заполнять таблицу фиксации результатов (на рабочем столе у каждого ученика):
Таблица фиксации результатов.
№ задания Результат выполнения самостоятельной работы № 1
(«+» или «?») № задачи, понятия, вызвавшего затруднение Исправлено при работе с заданиями по выбору Исправлено по результатам выполнения сам. работы № 2
1 2 3 Повышенной сложности Результат выполнения задания повышенной сложности
(«+» или «?»), свои комментарии
1 2 3 Отметка за урок Карточки с самостоятельной работой № 1
Вариант 1.
Написать программы на Паскале для решения следующих задач.
Ввести число a. Если оно неотрицательно, вычесть из него 10, в противном случае прибавить к нему 10.
Ввести два числа a и b. Если сумма этих чисел чётная, найти произведение, в противном случае найти частное этих чисел.
С клавиатуры вводится трёхзначное число (число десятков и число единиц ≠0), проверить делится ли оно на каждую из своих цифр.
Вариант 2
Написать программы на Паскале для решения следующих задач.
Ввести число a. Если оно больше 10 разделить его на 2, если меньше или равно, то умножить на 5.
Ввести два числа a и b. Если их сумма больше 100, то сумму уменьшить в два раза, в противном случае увеличить в два раза.
С клавиатуры вводится трёхзначное число (число десятков и число единиц ≠0), проверить делится ли оно на сумму своих цифр.
Эталон для самопроверки самостоятельной работы №1. Вариант 1.
Текст программы задачи 1 и пояснения.
Текст программы Пояснения
program z_1;
uses crt;
var a:integer;
begin
readln (a);
if a>=0 then a:=a-10 else a:=a+10;
writeln ('a= ', a);
end.
запрашиваем целое число
если а неотрицательно, то а=а-10, иначе а=а+10
Текст программы задачи 2 и пояснения.
Текст программы Пояснения
program z_2;
uses crt;
var a, b,s:integer; k:real;
begin
readln (a,b);
s:=a+b;
if s mod 2 =0 then k:=a*b else k:=a/b;
writeln ('k=',k);
end.
запрашиваем два числа
находим их сумму
проверяем сумму на чётность: если сумма чётная, то k:=a*b, иначе k:=a/b
выводим результат
Текст программы задачи 3 и пояснения.
Текст программы Пояснения
program z_3;
uses crt;
var m, a, b, c: integer;
beginwriteln ('Введите трёхначное число, у которого число десятков и единиц не равно 0');
readln (m);
a:=m div 100;
b:=(m div 10) mod 10;
c:=m mod 10;
if (m mod a=0) and (m mod b=0) and (m mod c=0) then writeln ('число делится на каждую цифру')
else writeln ('число не делится на каждую цифру');
end. запрашиваем число
выделяем первую цифру
выделяем вторую цифру
выделяем третью цифру
проверяем делимость числа на каждую цифру
Эталон для самопроверки самостоятельной работы №1. Вариант 2.
Текст программы задачи 1 и пояснения.
Текст программы Пояснения
program z_1;
uses crt;
var a:real;
begin
readln (a);
if a>10 then a:=a/2 else a:=a*5;
writeln ('a= ', a);
end. запрашиваем число
если а больше 10, то делим его на 2, иначе умножаем на 5
Текст программы задачи 2 и пояснения.
Текст программы Пояснения
program z_2;
uses crt;
var a, b:integer; s:real;
begin
readln (a,b);
s:=a+b;
if s> 100 then s:=s/2 else s:=s*2;
writeln ('s=',s);
end. запрашиваем два числа
находим их сумму
если сумма больше 100, то делим её на 2, иначе умножаем на два
Текст программы задачи 3 и пояснения.
Текст программы Пояснения
program z_3;
uses crt;
var m, a, b, c, s: integer;
beginwriteln ('Введите трёхначное число, у которого число десятков и единиц не равно 0');
readln (m);
a:=m div 100;
b:=(m div 10) mod 10;
c:=m mod 10;
s:=a+b+c;
if m mod s=0 then writeln ('число делится на сумму цифр')
else writeln ('число не делится на сумму цифр');
end. запрашиваем число
выделяем первую цифру
выделяем вторую цифру
выделяем третью цифру
находим сумму цифр
проверяем делимость числа на сумму цифр
Учитель:
- У кого не возникло затруднений при выполнении самостоятельной работы?
- Если у вас нет затруднений, то какова цель вашей дальнейшей деятельности? (Мы будем решать более сложные задачи.) Продолжают выполнять задачи более высокого уровня. Задачи повышенной сложности (Приложение 1).
- У кого задание 1 вызвало затруднение?
- В каком месте?
- Почему возникло это затруднение?
У кого задание 2 вызвало затруднение?
- В каком месте?
- Почему возникло это затруднение?
У кого задание 3 вызвало затруднение?
- В каком месте?
- Почему возникло это затруднение?
- Какую цель ставят для себя учащиеся, у которых возникли затруднения? (Потренироваться в решении аналогичных заданий.) Выбрать подобные две (три) задачи и решить их.
4. Физкультминутка.
- Предлагаю для тренинга задания для выбора, для тех кто не совсем разобрался в решении задач самостоятельной работы № 1.
Задачи для тренировки:
1. Дано целое число определить является ли оно нечетным.
2. Дано целое число определить оканчивается ли оно цифрой 7.
3. Дано целое число определить оканчивается ли оно нечётной цифрой.
4. Ввести два числа. Уменьшить большее на меньшее.
5. Ввести два числа. Если первое число кратно 3, то заменить его на второе. В противном случае увечить в три раза.
6. Ввести два числа. Если их произведение чётно, то первое заменить суммой этих чисел. В противном случае оставить без изменения.
7. С клавиатуры вводится трёхзначное число (число десятков и число единиц ≠0), проверить делится ли оно на сумму первой и третьей цифр.
8. С клавиатуры вводится трёхзначное число (число десятков и число единиц ≠0), проверить равны ли его первая и третья цифры.
9. С клавиатуры вводится трёхзначное число (число десятков и число единиц ≠0), проверить делится ли оно на сумму первой и второй цифр.
10. С клавиатуры вводится трёхзначное число (число десятков и число единиц ≠0), проверить кратна сумма его цифр 5.
Учитель:
- Кто выполнил задания для тренировки, используйте эталон решения задач для тренировки для самопроверки и заполните лист фиксации результатов. Далее приступайте к решению самостоятельной работы № 2.
Карточки с самостоятельной работой № 2
Вариант 1.
Написать программы на Паскале для решения следующих задач.
Ввести число a. Если оно не положительно, вычесть из него 15, в противном случае прибавить к нему 20.
Ввести два числа a и b. Если сумма этих чисел кратна 7, найти их частное, в противном случае найти произведение этих чисел.
С клавиатуры вводится трёхзначное число (число десятков и число единиц ≠0), проверить равны ли первая и вторая цифры.
Вариант 2
Написать программы на Паскале для решения следующих задач.
Ввести число a. Если оно кратно 3 удвоить его, если нет, то разделить на 5.
Ввести два числа a и b. Если их произведение больше 100, то произведение уменьшить в два раза, в противном случае увеличить в два раза.
С клавиатуры вводится трёхзначное число (число десятков и число единиц ≠0), проверить равна ли средняя цифра сумме двух других цифр.
Учитель:
- Кто выполнил задания самостоятельной работы № 2, используйте эталон решения задач для самостоятельной работы № 2 для самопроверки и заполните лист фиксации результатов. Выставьте себе отметку за свою работу на уроке.
- Кто выполнял задания повышенной сложности, используйте эталон для проверки задач повышенной сложности и заполните лист фиксации результатов. Выставьте себе отметку за свою работу на уроке.
- Какая была цель урока? (Научиться программировать задачи с ветвлениями.)
- Какая стояла задача у тех, кто допускал ошибки? (Найти ошибки, понять их причину, исправить и научиться применять оператор ветвления для решения задач.)
- Все папки со своими работами сбросить мне в сетевую папку.
5. Рефлексия
- Какая была цель урока? (Научиться программировать задачи с ветвлениями.)
- Какая стояла задача у тех, кто допускал ошибки? (Найти ошибки, понять их причину, исправить и научиться применять оператор ветвления для решения задач.)
- Кто из вас достиг цели?
- Используя таблицу результатов, проанализируйте свою деятельность. Заполните таблицу индивидуальных достижений и сдайте мне.
Таблица индивидуальных достижений:
Утверждения Результат (да, нет)
Я знаю операторы ветвления на Паскале Я умею решать задачи с ветвлениями на Паскале Я знаю назначение операций div и mod на Паскале Я умею применять операции div и mod на Паскале У меня не было затруднений в самостоятельной работе № 1 У меня возникли затруднения в решении задач повышенной сложности У меня не возникло затруднений в самостоятельной работе № 2 Я снял затруднения (указать какие), если они были 6. Домашнее задание
№ 5, стр. 90 - всем,
№ 6, стр. 90 по желанию
Приложение 1. Задачи повышенной сложности:
Вариант 1.
1. Даны радиус круга и сторона квадрата. У какой фигуры площадь больше?
Определить, является ли заданное шестизначное число счастливым. (Счастливым называют такое шестизначное число, у которого сумма его первых цифр равна сумме трех последних).
Составить программу для вычисления значения функции:
Fx=x2+3x+9, если -2,4≤x≤5,7 sinxx2+9 , в противном случае Вариант 2.
Известны площади круга и квадрата. Определить:
Уместится ли круг в квадрате
Уместится ли квадрат в круге
Дано трехзначное число. Выяснить, является ли оно палиндромом («перевертышем»), то есть таким числом, десятичная запись которого читается одинаково слева направо и справа налево.
Составить программу для вычисления значения функции:
Fx=-3x+9, если x>3,x3x2+8, если x≤3Приложение 2.
Эталон для самопроверки самостоятельной работы №2. Вариант 1.
Текст программы задачи 1 и пояснения.
Текст программы Пояснения
program z_1;
uses crt;
var a:integer;
begin
readln (a);
if a<=0 then a:=a-15 else a:=a+20;
writeln ('a= ', a);
end.
запрашиваем целое число
если а неположительно, то а=а-15, иначе а=а+20
Текст программы задачи 2 и пояснения.
Текст программы Пояснения
program z_2;
uses crt;
var a, b,s:integer; k:real;
begin
readln (a,b);
s:=a+b;
if s mod 7 =0 then k:=a/b else k:=a*b;
writeln ('k=',k);
end.
запрашиваем два числа
находим их сумму
проверяем сумму на кратность 7: если сумма кратна 7, то k:=a/b, иначе k:=a*b
выводим результат
Текст программы задачи 3 и пояснения.
Текст программы Пояснения
program z_3;
uses crt;
var m, a, b: integer;
beginwriteln ('Введите трёхначное число, у которого число десятков и единиц не равно 0');
readln (m);
a:=m div 100;
b:=(m div 10) mod 10;
if a=b then writeln ('1 и 2 цифры совпадают')
else writeln ('1 и 2 цифры не совпадают ');
end. запрашиваем число
выделяем первую цифру
выделяем вторую цифру
проверяем равенство 1 и 2 цифр
Эталон для самопроверки самостоятельной работы №2. Вариант 2.
Текст программы задачи 1 и пояснения.
Текст программы Пояснения
program z_1;
uses crt;
var a:real;
begin
readln (a);
if a mod 3=0 then a:=a*2 else a:=a/5;
writeln ('a= ', a);
end. запрашиваем число
если а кратно 3, то умножаем его на 2, иначе делим на 5
Текст программы задачи 2 и пояснения.
Текст программы Пояснения
program z_2;
uses crt;
var a, b:integer; p:real;
begin
readln (a,b);
p:=a*b;
if p> 100 then p:=p/2 else p:=p*2;
writeln ('p=',p);
end. запрашиваем два числа
находим их произведение
если произведение больше 100, то делим его на 2, иначе умножаем на два
Текст программы задачи 3 и пояснения.
Текст программы Пояснения
program z_3;
uses crt;
var m, a, b, c, s: integer;
beginwriteln ('Введите трёхначное число, у которого число десятков и единиц не равно 0');
readln (m);
a:=m div 100;
b:=(m div 10) mod 10;
c:=m mod 10;
s:=a+c;
if b = s then writeln ('средняя цифра равна сумме 1 и 3 цифр')
else writeln ('средняя цифра не равна сумме 1 и 3 цифр');
end. запрашиваем число
выделяем первую цифру
выделяем вторую цифру
выделяем третью цифру
находим сумму 1 и 3 цифр
проверяем равенство средней цифры сумме двух других цифр
Приложение 3. Эталон для проверки задач повышенной сложности.
Вариант 1
Текст программы задачи 1 и пояснения.
Текст программы Пояснения
program z_1;
uses crt;
var a, r: integer; s, s1:real;
begin
readln (a, r);
s:=a*a;
s1:=pi*r*r;
if s<s1 then writeln ('площадь квадрата меньше ')
else if s>s1 writeln ('площадь круга меньше') else writeln ('площади равны’);
end.
запрашиваем сторону квадрата и радиус окружности
вычисляем площадь квадрата
вычисляем площадь круга
сравниваем площади
Текст программы задачи 2 и пояснения.
Текст программы Пояснения
program z_2;
uses crt;
var a, b, с, d, e, f, k, l , m:integer;
begin
readln (m);
a:=m mod 10;
b:=(m div 10) mod 10;
c:=(m div 100) mod 10;
d:=(m div 1000) mod 10;
e:=(m div 10000) mod 10;
f:=m div 100000;
k:=a+b+c;
l:=d+e+f;
if r=l then writeln ('число счастливое') else writeln ('число не счастливое');
end.
запрашиваем число
выделяем последнюю цифру
выделяем предпоследнюю цифру
выделяем третью справа цифру
выделяем 4 справа цифру
выделяем 5 справа цифру
выделяем 6 справа цифру
находим сумму трех последних цифр
находим сумму трех первых цифр
проверяем равенство полученных сумм
Текст программы задачи 3 и пояснения.
Текст программы Пояснения
program z_3;
uses crt;
var m, x, f: real;
begin
readln (x);
if (x<=5.7) and (x>=-2.4) then f:=x*x+3*x+9 else f:=sin(x)/(x*x+9);
writeln ('f= ',f);
end. запрашиваем число
проверяем условия и вычисляем f
Вариант 2
Текст программы задачи 1
Текст программы Пояснения
program z1;
uses crt;
var s, s1, a, r, d: real;
beginwriteln('Введите площадь квадрата');
readln(s);
writeln('Введите площадь круга');
readln(s1);
a:=sqrt(s); r:=sqrt(s1/pi);d:=sqrt(2*s);
if r<=a/2 then writeln('Круг уместится в квадрате')else writeln('Круг не уместится в квадрате');
if r>=d/2 then writeln('Квадрат уместится в круге')else writeln('Квадрат не уместится в круге');
end. вычисляем сторону квадрата
радиус круга и диагональ квадрата
если радиус круга меньше либо равен половине стороны квадрата, то круг уместится в квадрате, иначе круг не уместится в квадрате
если радиус круга больше либо равен половине диагонали квадрата, то квадрат уместится в круге, иначе квадрат не уместится в круге
Текст программы задачи 2 и пояснения
Текст программы Пояснения
program z_2;
uses crt;
var a,c,m: integer;
beginwriteln('Введите трёхзначное число');
readln(m);
a:=m mod 10;
c:=m div 100;
if a=c then writeln('Это число - палиндром') else writeln('Это число не является палиндромом');
end. запрашиваем число
выделяем последнюю цифру числа
выделяем первую цифру числа
сравниваем первую и последнюю цифры
Текст программы задачи 3 и пояснения.
Текст программы Пояснения
program z_3;
uses crt;
var m, x, f: real;
begin
readln (x);
if x>3 then f:=-3*x+9 else f:=(x*x*x)/(x*x+8);
writeln ('f= ',f);
end. запрашиваем число
проверяем условия и вычисляем f