пап. Учебный план_ Информатика_8 класс (1). Учебный план 20212022 учебный год 8 класс НурСултан 2021 Содержание Долгосрочный план 3
Скачать 1.01 Mb.
|
Информатика – Средняя школа, 8 класс 3 четверть Раздел: Программирование алгоритмов на языке программирования Python (пайтон) | |||
Рекомендуемые предварительные знания | |||
Понятие алгоритма и последовательности выполнения команд. Умение распознавать такие типы данных, как целые числа, вещественные числа, строки, логические значения. Использование языка программирования Python для реализации линейных и разветвляющихся алгоритмов при решении задач, применяя арифметические операции, используя встроенную библиотеку math. Для изучения данного будут использованы знания 5-7 классов. | |||
Контекст | |||
Основная деятельность основывается на написании программ циклической структуры в среде программирования. Рассматриваются два вида циклов for и while. В программах циклической структуры также реализовывается проверка простых и составных условий, а также используются переменные с различными типами данных. Будут рассмотрены варианты прерывания цикла, прерывания итерации и выполнение ещё каких-либо команд после окончания выполнения цикла. | |||
Цель обучения по предмету | Языковая цель обучения | Предметная лексика и терминология | Полезная серия фраз для диалога/письма |
Учащиеся могут: использовать оператор цикла while использовать оператор цикла for использовать инструкции управления циклом continue, break, else осуществлять трассировку алгоритма | Учащиеся могут: объяснять понятие циклического алгоритма; приводить примеры задач, которые можно решить с использованием циклов; обосновывать выбор циклического оператора для решения задачи; обсуждать решение с одноклассниками и аргументировать свое решение. | алгоритм; программа; среда программирования; ошибка программирования; итератор цикла; итерация; условие цикла; блок-схема; операторы цикла; оператор цикла с параметром; оператор цикла с предусловием; оператор цикла с постусловием; трассировка. | Я/мы решили задачу следующим образом… Во-первых, я/мы… затем, я/мы… наконец, я/мы… Для переменной … я определил тип …, потому что … Две переменные имеют одинаковый/ различный тип, если … Мои/наши причины, по которым мы выбрали данное решение … Я/мы сделали X, потому что… [по мере необходимости используйте связующие слова, как например, однако, хотя, несмотря] Циклы бывают: ……. Цикл с параметром ….. Цикл с предусловием …… Трассировка выполняется для ……… |
Краткий обзор | |||
В данном разделе учащиеся познакомятся с циклическими структурами, перейдут к разработке блок-схем, реализующих циклические алгоритмы, и созданию программ с использованием различных циклических структур. В разделе уделяется большое внимание способам решения задач и использованию знаний предыдущих лет. Рекомендуемые виды деятельности направлены на решение задач из других предметных областей (математика, физика и т.п). |
Цели обучения | Рекомендуемые виды деятельности на уроке | Заметки для учителя (по методике преподавания) | Учебные ресурсы |
| Повторение (К) Определите учащегося – исполнителя команд. Предложите классу задать последовательные и условные команды для исполнителя, чтобы выполнить определенное действие. (Например, сделать бутерброд или сложить книги в алфавитном порядке) (И, Г, Ф) Предложите индивидуально выполнить задание на определение типов данных в программе. Затем попросите в парах сравнить результаты. (К) Подведите итоги выполнения задания. Если требуется, то обратите внимание на ошибки учащихся. (К, Г, Ф) Организуйте соревнование между учащимися. Используйте задания для устного счета, например, print( int(5.7) ) print( round(5.7) ) print( abs(-4) ) print( round(2.75, 1) ) print( int(2.75) ) print( abs(2 - 7) ) print( int(4.9) + round(4.4) ) print( abs(3) – round(2.63) ) print( int(3.8) – round(abs(-1.76)) ) (И, Г, Ф) Предложите выполнить задания для вычисления значений переменных индивидуально. Затем можно организовать взаимопроверку в парах и обсуждение ошибочных решений в группах. (К) Подведите итоги выполнения задания. Остановитесь на типичных ошибках, если такие были в течение выполнения задания. Используйте учащихся для объяснения ошибок. (Г, Ф) Повторите с учащимися как ставится условия и отработайте навык постановки простых и составных условий, используя операторы отношений: > – больше, < – меньше, >= – больше или равно, <= – меньше или равно, != – не равно, == – равно; логический операции: AND, OR, NOT и логические переменные. (Г, П, Ф) Предложите учащимся поработать в парах над решением задач с линейной структурой и разветвляющейся структурой. Учащиеся должны определить данные для ввода и вывода, составить математическую модель вычислений, построить алгоритм решения задачи в виде блок-схемы и написать программу. Предложите подготовленные тесты к задачам (входные и выходные данные) (К) Организуйте презентацию решения различных задач. Предложите учащимся дать обратную связь по улучшению решения или пользовательского интерфейса. | Прежде чем перейти к изучению циклов в программировании, следует провести актуализацию знаний учащихся за 6 и 7 классы. Подготовьте программу, в которую будут использованы переменные разных типов. Некоторые переменные могут изменять тип данных в программе. Можно подготовить карточки со значениями различных типов данных integer, float, string и boolean. В классе в четырех углах расположите надписи четырех типов данных. Попросите учащихся взять по одной карточке и отправиться в угол с нужным типом данных. Проверка знаний производится сразу. Используйте изученный арифметические действия, такие как +, -, *, /, //, %, **, функцию округления round, функции преобразования типов данных int(), float(), str(). Все знания нужны будут для решения задач на циклы. Соревновательный режим, позволит учащимся с удовольствием вспомнить функции, которые были изучены в 6 и в 7 классах и могут быть применены на уроках далее. Если хотя бы несколько учащихся допустили одну и ту же ошибку, то нужно обязательно разъяснить её. Лучше, если объяснение ошибки вы предложите учащимся, которые правильно справились с заданием. При подготовке заданий не забывайте использовать проверку условий для целочисленного деления, так как данный навык часто вызывает проблемы у учащихся. Также этот навык необходим в рамках функциональной грамотности, поскольку при выделении целой части из обыкновенной дроби, при определении сколько человек нужно для выполнения работы, сколько рулонов обоев купить, чтобы поклеить обои в квартире в реальной жизни необходим Подготовьте 3-4 задачи с реализацией линейным алгоритмом и 3-4 задачи с реализацией алгоритмом ветвления. Тесты к задачам должны проверять все возможные пути решения алгоритма. Дифференциация: можно подготовить разноуровневые задачи для учащихся (учащихся в этом случае лучше разделить в группы по уровням), либо дополнительные задачи более сложного уровня дать учащимся, которые быстро справятся с основным заданием. Дифференциация: для учащихся, которые хорошо освоили материалы прошлых лет и быстро справляются с простыми задачами подготовьте задачи олимпиадного уровня на целочисленное деление и сложные составные условия. | Установка Python https://www.bzfar.org/load/informatika/umk/programmirovanie_na_python/2-1-0-14 Python онлайн https://www.jdoodle.com/python3-programming-online/ Онлайн компилятор https://replit.com/ Ввод и вывод данных https://pythontutor.ru/lessons/inout_and_arithmetic_operations/ Синтаксис условной конструкции + задачник https://pythontutor.ru/lessons/ifelse/ |
8.3.3.1 использовать оператор цикла while (уайл) | Цикл WHILE (К) Определите учащегося – исполнителя команд. Предложите исполнителю дойти от стола учителя до двери класса. Обсудите с учащимися какие действия выполнял исполнитель, какие из них повторялись, до какого момента. (О, К) Попросите учащихся привести примеры повторяющихся действий из собственного опыта. Подведите к определению циклического алгоритма. Рассмотрите определение, попросите учащихся подчеркнуть ключевые слова. (К) Попросите каждого из учащихся привести пример циклического алгоритма из других предметных областей. (Г, Ф) Предложите учащимся с помощью раздаточного материала рассмотреть несколько блок-схем с различными типами алгоритмов. Попросите определить в каких блок-схемах присутствует цикл и объяснить, как они это определили. (К) Выделите с учащимися части блок-схем, которые являются циклом. Рассмотрите направления стрелок в блок-схеме. (Д) Продемонстрируйте как красиво можно строить блок-схемы с циклами в Power Point, используя соединительные стрелки с уступами. (О, Д) Разберите задачу, которая решается с помощью цикла While и реализуйте алгоритм в виде блок-схемы. Покажите, где находится «тело цикла». (Г, Ф) Предложите две задачи, для решения которых нужно построить алгоритм в виде блок-схемы и предложите сравнить полученные решения и определить тело цикла для каждой блок-схемы. (Д) Продемонстрируйте как на языке Python записывается цикл while, остановитесь на понятиях «заголовок цикла», «условие цикла» и «тело цикла». Также продемонстрируйте решение задачи, для которой уже была составлена блок-схема. (О, Д) Рассмотрите понятие параметр цикла, начальное значение параметра цикла, изменение параметра цикла, использование параметра цикла в условии. Продемонстрируйте решение задачи с параметром цикла. (О, Д) Продемонстрируйте частные случаи цикла while: while True: <блок кода (тело цикла)> while False: <блок кода (тело цикла)> (К, Ф) Попросите учащихся объяснить, что будет происходить в таких циклах. Какой из таких циклом нет смысла использовать, а какой можно и для каких целей? Продемонстрируйте учащимся вариант с циклом while, когда выхода из него не будет и он станет бесконечным, так рассмотрите вариант, когда цикл while ни разу не выполнится. (Г, Ф) Предложите для работы в парах несколько фрагментов кода с циклом while для определения количества итерации в цикле. Устройте соревнования между парами. (К) Предоставьте возможность лучшей паре поделиться секретом, как им удалось выполнить задание быстрее всех и правильно. Рассмотрите с учащимися типичные ошибки. (Г, Ф) Предложите учащимся две-три задачи для решения. Учащиеся должны определить входные и выходные данные, начальное значение параметра, условие для параметра в цикле, изменение параметра и команды, которые будут повторяться в цикле. (Ф) Организуйте взаимооценивание готовых решений, предложите учащимся протестировать программный код, выявить ошибки и обсудить их с автором кода. (К) Подведите итоги занятия. Задайте учащимся вопросы: - Какая тема урока была? - Что изучили на уроке? - Чему научились? - Что такое цикл в программе? - Что такое параметр цикла? - Что значит «итерация цикла»? - Как изменяется параметр цикла в теле цикла? (И)(Ф) Предложите учащимся провести рефлексию и определить вопросы, которые ещё требуют разъяснения. | Лучше, если исполнитель алгоритма будет определен заранее и будет принципиально исполнять только команды класса, не додумывая действие. Обычно данное задание выполняется очень весело, с комментариями учителя. Вы можете использовать следующее определение для циклического алгоритма: Циклический алгоритм – алгоритм, в котором команда или группа команд повторяются много кратно. Заранее можно составить список предметов и убирать тот предмет, для которого был приведен пример. Это позволит убедиться учащимся, что циклы применимы в любой предметной области. Подготовьте блок-схемы с линейными, разветвляющимися и циклическими алгоритмами. Из циклических используйте только циклы с предусловием и постусловием. Цикл со счетчиком не рекомендуется использовать на этой стадии обучения. Дифференция: усложните блок-схемы, в которых будут использоваться условия в циклах и циклы в условиях. Просите учащихся объяснить, где условие в блок-схеме, а где цикл. На этом уроке мы знакомим учащихся с оператором цикла while. Цикл позволяет организовывать многократное повторение одних и тех же действий. Сконцентрируем внимание на том, что в одной и той же строчке программы на разных итерациях цикла переменные могут иметь разное значение. При демонстрации используйте программу, которая наглядно будет демонстрировать каждый цикл выполнения. Например, number = int(input()) while number > 0: print('Вы ввели положительное число! Вводите дальше.') number = int(input()) print('Так-так, что тут у нас...') print('Вы ввели отрицательное число или ноль. Всё.') Напомним, условный оператор if проверяет условие и, в зависимости от того, истинно оно или ложно, выполняет либо не выполняет следующий записанный с отступом блок. Оператор while («пока») тоже проверяет условие и тоже в случае его истинности выполняет следующий блок кода («тело цикла»). Однако после выполнения этого блока кода выполняется не то, что идёт после него, а снова проверяется условие, записанное после while. Условие для цикла while записывается аналогично условному оператору if с помощью операций отношений, логических операций и логических переменных или логических значений. Один шаг цикла (выполнение тела цикла) ещё называют итерацией. Используйте цикл while всегда, когда какая-то часть кода должна выполниться несколько раз — причём невозможно заранее сказать, сколько именно. Познакомьте во время объяснения с сокращенной формой записи присваивания. Например, для number = number + 1 сокращенная форма выглядит как number += 1. Сокращенная форма применяется и для других арифметических операций. Рассмотрите решение задач с бесконечным циклом до выполнения какого-либо условия. Такие как, Задача "Строки до пустой" Напишите программу, в которой пользователь вводит строки до тех пор, пока не будет введена пустая строка "". При вводе каждой непустой строки, программа должна выводить "текст". Входные данные: Ввод текста в отдельных строчках. Выходные данные: Выводить "текст" до пустой строки. Пример решения: line = input() while line != "": print("текст") line = input() Задача "Скажи пароль" Напишите программу, в которой пользователь вводит пароль до тех пор, пока он не окажется "123". При неверно введённом пароле выводится текст "Неверный пароль", при вводе верного пароля выводится текст "Верный пароль". Входные данные: Варианты паролей в отдельных строчках. Выходные данные: Текст "Неверный пароль" для каждой строки до ввода верного пароля или "Верный пароль". Вариант решения: passw = input() while passw != "123": print("Неверный пароль") passw = input() print("Верный пароль") Дифференциация: предложите учащимся задачи повышенной сложности, олимпиадного характера. Можно рассмотреть реализацию алгоритма Евклида для нахождения наибольшего общего делителя (НОД) двух натуральных чисел. Пример реализации в цикле while: while a != 0 and b != 0: if a > b: a = a % b else: b = b % a | Учебники по Python. Авторы: К. Ю. Поляков, Е. А. Еремин https://kpolyakov.spb.ru/school/pycpp.htm Программирование на Python. Цикл WHILE https://younglinux.info/python/while Для построения блок-схем можно использовать обычные Автофигуры в Microsoft Power Point или онлайн приложение http://www.gliffy.com Цикл While https://pythonru.com/osnovy/cikl-while-v-python Интерактивный учебник. Циклы в Python https://pythontutor.ru/lessons/while/ Циклы в Python http://pythonicway.com/python-loops Циклы For, While, а также операторы https://itproger.com/course/python/6 Уроки Python для начинающих #6 - Циклы For, While, а также операторы https://www.youtube.com/watch?v=6uSUQz3k_EM Цикл while на языке программирования Python https://www.youtube.com/watch?v=Ll3AN1FXXfE Python. Цикл с параметром, возможности функции range() https://www.youtube.com/watch?v=yxiQC4n2eTA Циклы в Python. Сборник задач. https://informatics.msk.ru/mod/book/view.php?id=2534 Тест. Блок-схемы циклических алгоритмов https://kpolyakov.spb.ru/school/test7a/16.htm Python. Анализ программ с циклом while https://kpolyakov.spb.ru/school/egetest/b6-py.htm |
8.3.3.2 использовать оператор цикла for (фор) | Цикл FOR (К) Предложите учащимся выполнить небольшую разминку: пять приседаний и три раза упражнение на восстановление дыхания (на раз: глубокий вдох и тянут руки вверх, на два: выдох и руки вниз). Задайте следующие вопросы: В какой роли выступали учащиеся во время выполнения упражнений? Сколько раз выполнили каждое упражнение? И почему? Каким типом алгоритма можно описать ваши действия? (К) Попросите учащихся привести примеры повторяющихся действий точное количество раз из собственного опыта или из предметных областей. (Г, Ф) Предложите учащимся с помощью раздаточного материала рассмотреть несколько блок-схем с различными видами циклических алгоритмов. Попросите блок-схемы разделить на группы. (К) Выделите с учащимися части блок-схем, которые являются циклом отличным от цикла while. Рассмотрите направления стрелок в блок-схеме. (Д) Продемонстрируйте, как в блок-схеме можно реализовать алгоритм, который учащиеся выполнили вначале урока (пять приседаний и три упражнения на восстановление дыхания), с помощью цикла for. (О, Д) Разберите практическую задачу, которая решается с помощью цикла For и реализуйте алгоритм в виде блок-схемы. Покажите, где находится «тело цикла». (Г, Ф) Предложите две задачи, для решения которых нужно построить алгоритм в виде блок-схемы и предложите сравнить полученные решения и определить тело цикла для каждой блок-схемы. (О, Д) Продемонстрируйте как на языке Python записывается цикл for, остановитесь на понятиях «заголовок цикла», «параметр цикла/итератор», «диапазон значений» и «тело цикла». Также продемонстрируйте решение задачи, для которой уже была составлена блок-схема. (О, Д) Рассмотрите различные случаи параметров диапазона range(start, end, step). (Г, Ф) Предложите для работы в парах несколько фрагментов кода с циклом for I in range( … ) для определения количества итерации в цикле. Устройте соревнования между парами. (К) Предоставьте возможность лучшей паре поделиться своим методом, как им удалось выполнить задание быстрее всех и правильно. (Г, Ф) Предложите учащимся две-три задачи для решения. Учащиеся должны определить входные и выходные данные, параметры диапазона в цикле, изменение параметра и команды, которые будут повторяться в цикле. (К) Рассмотрите с учащимися задачи, где требуется произвести ввод не одного числа, а пяти. Например, вычислить среднее арифметическое пяти целых чисел, которые будут введены в цикле sum = 0 //начальное значение суммы for i in range( 5 ): //цикл выполнится 5 раз number = int(input()) // ввод целого числа sum = sum + number // добавление числа к общей сумме middle = sum / 5 // вычисление среднего арифметического пяти целых чисел print(‘Среднее арифметическое = ’, middle) (Г, Ф) Предложите учащимся несколько задач для решения в группах, в которых необходимо ввести несколько значений. (К) Организуйте обсуждение возможных проблем при решении подобных задач. | Упражнение «Мини-зарядка» позволит учащимся не только получить заряд бодрости, но и перейти к теме урока. Мотивируйте учащихся анализировать свою деятельность в течение всего урока, развивайте навыки аргументации своих ответов, это позволит вам увидеть, насколько глубоко изучен и усвоен материал. Постарайтесь вовлечь в процесс приведения примеров всех учащихся, это позволит никого из учеников оставить в стороне и поделиться своими наблюдениями в реальной жизни. Подготовьте блок-схемы с циклическими структурами while и for. В блок-схемах с циклом for указывайте для переменной три параметра (начальное значение итератора, конечное значение итератора и шаг) Можно рассмотреть вариант с одной командой в теле цикла, например, выполнить приседание, либо с двумя командами: 1 – присесть, 2 – встать. Для практической задачи можно выбрать подсчет оплаты за три купленных товара, где в каждой итерации вводится цена товара, количество и сумма прибавляется к общей стоимости. Можно предложить одну задачу, в которой в теле цикла выполняется только одна команда, а вторую, где в теле цикла выполняется больше одной команды. for ... in range(...): <блок кода (тело цикла)> Range Range означает «диапазон», то есть for i in range(n) читается как «для (всех) i в диапазоне от 0 (включительно) до n (не включительно)...». Цикл выполняется n раз. Если для range задано одно число, то итератор идет от 0 до заданного значения (не включая его). Если задано два числа, то это начальное значение итератора и конечное. Если задано три числа, то это не только начальное и конечное значение итератора, но и шаг итератора. Полезно будет выполнить задание для определения значений функции f(x) для х в диапазоне от [x0; xn]. Уделите больше внимание на отработку навыка использования функцию range, так как этот навык позволит учащимся легче понять, как работает цикл. Рассмотрите всевозможные вариант. Предложите учащимся задания следующего формата: Сколько раз выполнится цикл for x in range(5)? (Ответ: 5) Сколько раз выполнится цикл for x in range(1, 4)? (Ответ: 3) Сколько раз выполнится цикл for x in range(1, 10, 3)? (Ответ: 3) Сколько раз выполнится цикл for x in range(8, 4)? (Ответ: 0) – этот вариант рекомендуется обсудить с учащимися, почему цикл не будет выполнятся ни разу. Сколько раз выполнится цикл for x in range(8, 4, -2)? (Ответ: 2) Используйте задачи, в которых следует не только цикл реализовать, то еще и условие проверить для вводимых данных. Например, Задача "Умножаем без нулей" Напишите программу, в которой пользователь вводит 6 целых чисел, после чего программа должна вывести их произведение. Всем известно, что при умножении на 0 - любое произведение будет равно нулю, поэтому нули, которые встретятся при вводе, нужно пропускать. Гарантируется, что не все введённые числа — нули. Дифференциация: В качестве дифференциации можете предложить задачу "FizzBuzz" Считается, что задачу “FizzBuzz” дают в Америке на собеседованиях при приёме на работу начинающего программиста для проверки, обладает ли он или она базовыми навыками программирования. Напишите программу, которая считывает два натуральных числа a и b (гарантируется, что a < b), после чего для всех чисел от a до b выводит: “Fizz”, если это число делится на 3; “Buzz”, если это число делится на 5; “FizzBuzz”, если выполнены оба предыдущих условия; само это число в остальных случаях. | Учебники по Python. Авторы: К. Ю. Поляков, Е. А. Еремин https://kpolyakov.spb.ru/school/pycpp.htm Для построения блок-схем можно использовать обычные Автофигуры в Microsoft Power Point или онлайн приложение http://www.gliffy.com Интерактивный учебник. Циклы в Python https://pythontutor.ru/lessons/for_loop/ Циклы в Python http://pythonicway.com/python-loops Циклы For, While, а также операторы https://itproger.com/course/python/6 Цикл For https://younglinux.info/python/for Тест Программы с циклами (Python) https://kpolyakov.spb.ru/school/ogetest/b9py.htm Задача FizzBuzz c дидактическим заданием https://www.bzfar.org/load/informatika/didakticheskij_material/zadacha_fizzbuzz/3-1-0-10 |
8.3.3.3 использовать инструкции управления циклом (continue (континю), break (брик), else (элс)) | Break, continue, else (К) Предложите задачу, в которой запускается бесконечный цикл: while True: ….. Поставьте проблемный вопрос: «Как можно выйти из этого цикла?» (Г, Ф) Попросите учащихся в группе обсудить и предложить решения. (О, К) Рассмотрите, как используются команды break и continue для прерывания и продолжения цикла. Обратите внимание учащихся на то, что эти команды не действуют на условный оператор и действуют только на тот цикл, который итерация которого выполняется. (Г, Ф) Предложите учащимся привести примеры задач, в которых можно использовать такие команды, а также обсудить вопрос «В каком случае полезно использовать выход с помощью команды break?» (Г)(Ф) Предложите учащимся в парах на примере определить, что будет выполнено: count = 1 while count < 10: if count % 5 == 0: continue print(count) count += 1 Попросите одну из пар объяснить результат выполнения программы. (И, Ф) Предложите учащимся набор задач для решения, в которых могут быть использованы команды break и continue. Учащиеся должны определить входные и выходные данные, параметр цикла, изменение параметра и команды, которые будут повторяться в цикле, условия, при которых цикл завершится или перейдет к следующей итерации. (К, Д) Продемонстрируйте общую структуру цикла FOR… ELSE…. Рассмотрите варианты, когда может быть использована команда ELSE после цикла. Предложите учащимся привести примеры, где может быть использована такая структура. (Г, Ф) Попросите в группе определить при каких обстоятельствах команда ELSE выполнятся не будет или ответить на вопрос «Как исключить выполнение команд после ELSE?» (И, Ф) Предложите учащимся пару задач для решения, в которых может быть использована команда else после цикла. Учащиеся должны определить входные и выходные данные, параметр цикла, изменение параметра и команды, которые будут повторяться в цикле, условия, при которых цикл завершится или перейдет к выполнению else. (И, Ф) Попросите учащихся выполнить тест в качестве первичной проверки усвоения материала. (Ф) Организуйте взаимооценивание готовых решений, предложите учащимся протестировать программный код, выявить ошибки и обсудить их с автором кода. (К) Подведите итоги занятия. Задайте учащимся вопросы: - Какая тема урока была? - Что изучили на уроке? - Чему научились? - Как прервать выполнение цикла в программе? - Как выполнить прерывание итерации в цикле? - Как используется команда else в цикле? - Приведите примеры программ, к которым можно применить команду else. (И)(Ф) Предложите учащимся провести рефлексию и определить вопросы, которые ещё требуют разъяснения. | Начните обучение с постановки задачи с бесконечным циклом и проблемы как из него выйти. Выполнение цикла можно остановить не только с помощью условия цикла, но и с помощью команды break. Рассмотрите команды break и continue на следующих примерах. for i in range(10): print('Итерация номер', i, 'начинается...') if i == 3: print('Ха! Внезапный выход из цикла!') break print('Итерация номер', i, 'успешно завершена.') print('Цикл завершён.') Пример с циклом while: while True: word = input() if word == 'стоп': break print('Вы ввели:', word) print('Конец.') Важно! Злоупотреблять командой break не стоит. Когда программист читает ваш код, он обычно предполагает, что после окончания цикла while условие в заголовке этого цикла ложно. Если же из цикла можно выйти по команде break, то это уже не так. Логика кода становится менее ясной. Оператор continue немедленно завершает текущую итерацию цикла и переходит к следующей. for i in range(10): print('Итерация номер', i, 'начинается...') if i == 3: print('...но её окончание таинственно пропадает.') continue print('Итерация номер', i, 'успешно завершена.') print('Цикл завершён.') Постарайтесь подобрать несложный набор задач, что все учащиеся могли их выполнить. for …: операторы цикла else: команды Заметьте, что else будет всегда выполняться после цикла, поэтому, чтобы исключить выполнение else можно использовать break – выход из цикла, при этом логические переменные помогут определить в программе произошло событие или нет. Используйте интерактивные тесты для быстрого получения отчета о результатах полученных знаний учащихся. Предложите задачу "Поиск кота": Напишите программу, которая находит кота. Пользователь вводит сначала количество строк, потом сами строки. Если хотя бы в одной введённой строке нашлось сочетание букв «Кот» или «кот», программа выводит «МЯУ», иначе программа выводит «НЕТ». При обнаружении кота цикл должен немедленно прерываться командой break. Входные данные: В первой строке записано число n. Далее следует n строк. Выходные данные: Напечатайте нужное сообщение в зависимости от того, есть во введенных строчках кот или нет. В данной задаче можно как раз рассмотреть как используется else в цикле for. Вариант решения n = int(input()) for i in range(n): s = input() if "Кот" in s or "кот" in s: print("МЯУ") break else: print("НЕТ") | Учебники по Python. Авторы: К. Ю. Поляков, Е. А. Еремин https://kpolyakov.spb.ru/school/pycpp.htm Циклы for и while, операторы break и continue, волшебное слово else https://pythonworld.ru/osnovy/cikly-for-i-while-operatory-break-i-continue-volshebnoe-slovo-else.html Операторы break, continue и pass в циклах Python 3 https://www.8host.com/blog/operatory-break-continue-i-pass-v-ciklax-python-3/ Break, continue, pass https://pyneng.readthedocs.io/ru/old_chapter_order/book/06_control_structures/4_break_continue_pass.html Classtime https://www.classtime.com/c/JPNYW/ Plickers https://get.plickers.com/ Kahoot https://create.kahoot.it/ |
8.3.2.1 осуществлять трассировку алгоритма | Трассировка алгоритма (Г, Ф) Предложите учащимся блок-схемы, содержащие циклические алгоритмы и попросите определить результат вычислений. (К) Обсудите с классом как задание было выполнено, какие методы были использованы для получения результатов (К) Продемонстрируйте учащимся как заполняется трассировочная таблица. Попросите ответить на вопросы: Что такое трассировочная таблица? Как определить данные, которые будут использоваться в трассировочной таблице? Какие преимущества мы получаем, используя трассировочную таблицу? Какое значение имеет такая-то переменная в такой-то момент работы программы? В таком-то месте выполняется if или else? Выполняется ли тело такого-то цикла и, если да, сколько раз? (К, Д) Продемонстрируйте как выполняется трассировка в среде программирования, как изменяются результаты после выполнения каждой строки программного кода. (К, Д) Продемонстрируйте учащимся онлайн-ресурс, который позволяет строить трассировочные таблицы любой размерности и отправлять результат учителю в виде pdf файла. (И, Ф) Предложите учащимся заполнить трассировочные таблицы к предложенным блок-схемам и программному коду, которые содержат циклическую структуру. Организуйте взаимооценивание. (К, Ф) Рассмотрите с учащимися варианты задач, которые содержат различные типы ошибок, повторите с учащимися какие бывают типы ошибок в программе, чем они отличаются. Попросите привести примеры каждого типа ошибок. (Г, Ф) Предложите программные коды с различными типами ошибок. Попросите учащихся провести анализ программ и определить какой тип ошибки содержится в программе. (И, Ф) Предложите задания, в которых нужно дополнить недостающие данные в трассировочной таблице. (Г, Ф) Организуйте взаимооценивание готовых решений, предложите учащимся сравнить результаты заполненных трассировочных таблиц, выявить ошибки и обсудить их в паре. (К) Подведите итоги занятия. Задайте учащимся вопросы: - Какая тема урока была? - Что изучили на уроке? - Чему научились? - Для чего используется трассировка программы? - Почему мы используем трассировочные таблицы, чтобы протестировать алгоритм? (И)(Ф) Предложите учащимся провести рефлексию и определить вопросы, которые ещё требуют разъяснения. | Подготовьте блок-схему реализации циклического алгоритма. Подготовьте таблицу для проведения трассировки. Обратите внимание учащихся на то, что такое трассировка и как она осуществляется. Обратите внимание учащихся на то, что трассировка программы и трассировочные таблицы позволяют находить и исправлять ошибки в программе. Уделите внимание отладчику среды программирования. Отладка - процесс изучения и исправления ошибок в работе программы (их часто называют багами, от англ. bug — жук), называется отладкой, по-английски — debugging. В качестве дифференциации предложите задание на вложенные циклы (составить блок-схему, написать программу, провести трассировку). В презентации можно использовать пошаговое выделение блоков в блок-схеме или строк в программном коде, чтобы продемонстрировать трассировку. Параллельно демонстрировать как происходит заполнение трассировочной таблицы. При трассировке программного кода рекомендуется в первый столбец трассировочной таблицы указывать номер строки, который выполняется, поэтому строки программного кода следует пронумеровать. Рассмотрите типы ошибок, которые могут встречаться при выполнении программы. Достаточно рассмотреть три типа ошибок: 1 - Синтаксическая ошибка, при которой программа не запускается и не выполняется. 1 – Ошибка выполнения, при которой программа запускается, но не выполняется. 3 - Логическая ошибка, при которой программа запускается, выполняется, но результат выдает неверный. Дифференциация: используйте более сложные алгоритмы программ для трассировки. Например, вложенные циклы. Порекомендуйте на каникулах учащимся подумать о том, какой мини-проект можно выполнить в четвертой четверти, используя циклические структуры. Можете обсудить идеи учащихся и дать рекомендации по выбору темы мини-проекта. | Создание трассировочных таблиц онлайн: https://www.bzfar.org/load/informatika/didakticheskij_material/trassirovochnaja_tablica/3-1-0-33 Трассировка алгоритмов: http://kufas.ru/programming6.htm Трассировочная таблица https://informatikivgpu.ucoz.net/index/trassirovochnye_tablicy/0-26 Python Traceback — Как правильно исправлять ошибки в коде (для углубленного изучения) https://python-scripts.com/python-traceback Правила заполнения трассировочной таблицы http://www.myshared.ru/slide/1132543/ Трассировочные таблицы. Примеры и задание. https://sites.google.com/site/gagarintetrad/informatika/trassirovocnaa-tablica |