МБОУ
"Чистенская школа-гимназия имени Героя Социалистического Труда Тарасюка
Ивана Степановича" Симферопольского района Республики Крым
Конспект урока по информатике
в
10 классе по теме "Программирование ветвящихся алгоритмов"
Дата:
04.02.2022
Учитель:
Сагидуллина А.Т.
Тип урока: урок закрепления и совершенствования знаний
Вид
урока: комбинированный.
Методы: словесный, наглядный, практический.
Оборудование
и программное обеспечение:
• Компьютеры, проектор.
• Презентация в формате Power Point,
• раздаточный материал (карточки для выполнения
практической работы, справочный материал).
•Интерпретатор: python-online
Цель
урока:
- закрепление
и совершенствование изученных способов записи разветвляющихся алгоритмов в
различных формах, с применением вложенных условий;
Задачи:
образовательные:
- повторение обучающимися понятий алгоритм, виды
алгоритмов, отработка программирования алгоритмической конструкции ветвление;
развивающие:
- развивать логическое и алгоритмическое
мышление;
- закрепить и научиться применять полученные
знания с помощью практической работы;
- развивать навыки самоконтроля;
воспитательные:
- воспитывать познавательный интерес к изучению
информатики, культуру общения, восприятие компьютера как инструмента
информационной деятельности человека;
- формирование таких личностных качеств как
исполнительность, дисциплинированность, внимательность, уверенность,
ответственность, активность.
Планируемые
результаты:
Предметные
- Повторить алгоритмические конструкции: ветвление.
Вспомнить выполнение трассировки алгоритма. Отработать навык отладки программы
в среде python-online. Метапредметные
Познавательные:
Умение:
- перерабатывать полученную информацию,
преобразовывать информацию из одной формы в другую;
- обобщать полученную информацию;
- давать оценку своим действиям, оценивать
результат;
- находить ответы на вопросы, используя свой
жизненный опыт и информацию, полученную на уроке.
Регулятивные:
Умение:
- работать по предложенному учителем плану,
проговаривая последовательность действий;
- формулировать вопрос, проблему, затруднение, с
которыми столкнулись учащиеся; оценивать сложившуюся учебную ситуацию.
Коммуникативные:
Умение:
- развивать и отрабатывать умение анализировать,
адекватно самостоятельно оценивать правильность выполнения действия и вносить
необходимые коррективы в исполнение, как в конце действия, так и по ходу его
реализации;
- оформлять свою мысль в устной речи, высказывать
свою точку зрения, формулировать высказывание;
- сотрудничать, договариваться о
последовательности действий и результате, учиться представлять другим ход
работы и ее результат, слушать мнение других;
Личностные
- способствовать формированию творческой
активности учащихся через создание ситуации успешности.
- Проявление эмоционально-ценностного отношения к
учебной проблеме.
Структура
урока:
1. Организационный
этап. Приветствие -1 мин;
2. Мотивация
к учебной деятельности. Постановка цели, задач - 2 мин;
3. Проверка
домашнего задания– 1 мин;
4. Повторение
пройденного материала – 6 мин;
5. Изучение
нового метода программирования вложенных условий -8 мин;
6.
Закрепление пройденного материала – 18 мин;
7. Оценка обучающихся
– 1мин;
8. Итоги
урока - 2мин;
9. Домашнее
задание – 1 мин.
Ход
урока.
Организационный
этап
Приветствие
учащихся, проверка их готовности к уроку; отметка в журнале отсутствующих.
(слайд1-2)
Мотивация к учебной
деятельности
Определение
темы урока самими обучающимися. (слайд3-4)
(Учащиеся: Записывают тему урока в тетрадь.)
Вспомним, что
такое алгоритм, виды алгоритмов. Формы ветвлений. В чем их особенность и
отличие.
Постановка цели, задач
Наша цель
сегодня: закрепление и совершенствование изученных способов записи разветвляющихся
алгоритмов в различных формах, с применением вложенных условий.
Проговариваем цели урока.
(Слайд
5) (высвечивается цель урока)
Проверка домашнего задания
(сбор
тетрадей в конце урока на оценивание письменной домашней работы)
Повторение пройденного
материала
Что же такое алгоритм? Назовите основные алгоритмические структуры, которые мы
изучали на последних уроках. (Учащиеся: линейная, ветвление, цикл)
Алгоритм —
это последовательность действий для исполнителя, записанная на формальном языке
и приводящая к заданной цели за конечное время. (Слайд 7)
Вспомним,
какие виды алгоритмов существуют: (Слайд 8)
Линейный алгоритм (следование) – это элементарная
команда, которая имеет один вход и один выход. Все действия выполняются
последовательно.
(Слайд 9)
Что
представляет собой разветвляющийся алгоритм? (Слайд 10)
Разветвляющийся алгоритм (ветвление) - это
составная команда алгоритма, в которой в зависимости от условия выполняется или
одно или другое действие.
Что представляет собой циклический алгоритм?
Циклический алгоритм (повторение) – это составная
команда, в которой в зависимости от условия возможно многократное выполнение
действия.
Вспомним
виды ветвлений (Слайд 11)
Примеры
ветвлений в пословицах (Слайд 12-13)
Сегодня мы с
вами рассмотрим новые способы реализации разветвляющихся алгоритмов при помощи
вложенных, так называемых каскадных условий.
Ранее мы
рассмотрели работу условного оператора if. С помощью его расширенной
версии if-else можно реализовать две отдельные ветви выполнения.
Однако алгоритм программы может предполагать выбор больше, чем из двух путей,
например, из трех, четырех или даже пяти. В данном случае следует говорить о
необходимости множественного ветвления.
Рассмотрим
конкретный пример. Допустим, в зависимости от возраста пользователя, ему
рекомендуется определенный видеоконтент. При этом выделяют группы от 3 до 6
лет, от 6 до 12, от 12 до 16, 16+. Итого 4 диапазона. Как бы мы стали
реализовывать задачу, имея в наборе инструментов только конструкцию if-else?
(Слайд 14)
Самый простой
ответ – последовательно проверять вхождение введенного числа-возраста в
определенный диапазон с помощью следующих друг за другом условных операторов: (Слайд 15)
old = int(input('Ваш
возраст: '))
print('Рекомендовано:', end='
')
if 3 <= old < 6:
print('"Заяц
в лабиринте"')
if 6 <= old < 12:
print('"Марсианин"')
if 12 <= old < 16:
print('"Загадочный
остров"')
if 16 <= old:
print('"Поток
сознания"')
Примечание.
Названия фильмов выводятся на экран в двойных кавычках. Поэтому в программе для
определения строк используются одинарные.
Предложенный
код прекрасно работает, но есть одно существенное "но". Он не
эффективен, так как каждый if в нем – это отдельно взятый оператор,
никак не связанный с другими if. Процессор тратит время и
"нервы" на обработку каждого из них, даже если в этом уже нет
необходимости. Например, введено число 10. В первом if логическое
выражение возвращает ложь, и поток выполнения переходит ко второму if.
Логическое выражение в его заголовке возвращает истину, и его тело выполняется.
Всё, на этом программа должна была остановиться.
Однако
следующий if никак не связан с предыдущим, поэтому далее будет
проверяться вхождение значения переменной old в диапазон от 12 до 16,
в чем необходимости нет. И далее будет обрабатываться логическое выражение в
последнем if, хотя уже понятно, что и там будет False.
Решить
проблему избыточности проверок можно, вкладывая условные операторы друг в
друга: (Слайд
16)
old = int(input('Ваш
возраст: '))
print('Рекомендовано:', end='
')
if 3 <= old < 6:
print('"Заяц
в лабиринте"')
else:
if 6 <= old < 12:
print('"Марсианин"')
else:
if 12 <= old < 16:
print('"Загадочный
остров"')
else:
if 16 <= old:
print('"Поток
сознания"')
Рассмотрим
поток выполнения этого варианта кода. Сначала проверяется условие в
первом if (он же самый внешний). Если здесь было получено True,
то тело этого if выполняется, а в ветку else мы даже не
заходим, так как она срабатывает только тогда, когда в
условии if возникает ложь.
Если
внешний if вернул False, поток выполнения программы заходит в
соответствующий ему внешний else. В его теле находится
другой if со своим else. Если введенное число попадает в
диапазон от 6 до 12, то выполнится тело вложенного if, после чего
программа завершается. Если же число не попадает в диапазон от 6 до 12, то произойдет
переход к ветке else. В ее теле находится свой условный оператор, имеющий
уже третий уровень вложенности.
Таким образом
до последней проверки (16 <= old) интерпретатор доходит только тогда, когда
все предыдущие возвращают False. Если же по ходу выполнения программы
возникает True, то все последующие проверки опускаются, что экономит
ресурсы процессора. Кроме того, такая логика выполнения программы более
правильная.
Теперь
зададимся следующим вопросом. Можно ли как-то оптимизировать код множественного
ветвления и не строить лестницу из вложенных друг в друга условных операторов? (Слайд 17)
В Питоне
такое понятие вложенного if к внешнему else невозможно,
потому что здесь отступы и переходы на новую строку имеют синтаксическое
значение. Поэтому в язык Python встроена возможность
настоящего множественного ветвления на одном уровне вложенности, которое
реализуется с помощью веток elif. (Слайд 18)
Слово
"elif" образовано от двух первых букв слова "else", к
которым присоединено слово "if". Это можно перевести как "иначе
если". (Слайд
19)
В отличие
от else, в заголовке elif обязательно должно быть логическое
выражение также, как в заголовке if. Перепишем нашу программу, используя
конструкцию множественного ветвления: (Слайд 20)
old = int(input('Ваш
возраст: '))
print('Рекомендовано:', end='
')
if 3 <= old < 6:
print('"Заяц
в лабиринте"')
elif 6 <= old < 12:
print('"Марсианин"')
elif 12 <= old < 16:
print('"Загадочный
остров"')
elif 16 <= old:
print('"Поток
сознания"')
Обратите
внимание, в конце, после всех elif, может использоваться одна
ветка else для обработки случаев, не попавших в условия
ветки if и всех elif. Блок-схему полной конструкции if-elif-…-elif-else можно
изобразить так: (Слайд
21)
Как только
тело if или какого-нибудь elif выполняется, программа сразу
же возвращается в основную ветку (нижний ярко-голубой прямоугольник), а все
нижеследующие elif, а также else пропускаются.
Проверка
понимания
Выяснение факта понимания изложенного материала опросом,
затем выполнение практического задания.
Перед тем как
выполнять практическую работу на компьютере, сделаем ФИЗКУЛЬТМИНУТКУ (слайды
22-28)
Закрепление
пройденного
Практическая работа на компьютере в среде программирования python-online.
Даю пояснение перед выполнением работы. Выполняю
роль консультанта.
(Учащиеся:
Выполняют практическую работу на компьютере.)
(Слайд
29-31)
Домашнее задание:
Для закрепления темы, дома вы повторите по
конспекту каскадные условия и напишите программу (условия задачи в элжур).
Итоги
урока.
Оцените, достигли ли вы поставленной в начале
урока цели и на сколько? (Учащиеся: Высказывают своё мнение)
Оцените свою работу на протяжении всего урока по трёхбалльной
системе. (Учащиеся
поднимают жетончики: зеленый – отлично, желтый – удовлетворительно, красный -
плохо).
Наш урок подходит к концу. В течение урока вы
плодотворно работали. Хотелось бы особо отметить…(Выставление оценок). Спасибо за урок.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.