Цикл с условием. Алгоритм Евклида и цифры натурального числа
Программирование while и объяснение завершения на натуральных исходных данных. Разобрать алгоритм Евклида для НОД и последовательное выделение цифр числа через частное и остаток; для основания b использовать 2 ≤ b ≤ 10. Личная практика на коротких заготовках: дополнить и запустить оба алгоритма, сверить трассировку и результат с ручной проверкой.
Конспект урока
Выполнять и проверять Python-цикл while: алгоритм Евклида и выделение цифр натурального числа в позиционной системе с основанием от 2 до 10.
Python 3: while условие: проверяет условие перед каждой итерацией. При истине выполняется всё тело с отступом, затем новая проверка; при лжи тело пропускается и выполняется код после цикла. При нормальном завершении после k итераций было k+1 проверок. В этих программах нет break/continue. Алгоритм Евклида использует целые 0≤a,b≤1000, не оба нули. Если b!=0, остаток r=a%b, затем a=b и b=r. r вычисляется до перезаписи a. Пары(a,b) и(b,r) имеют одинаковые общие делители, а при b>0 остаток 0≤r<b; положительный второй компонент убывает, значит цикл завершится. При b=0 НОД равен a. Для выделения цифр основные n натуральные 1…1000000, основание b — целое 2…10. Во вводе n записано привычными десятичными цифрами: это значение числа, а не строка в основании b. d=n%b выделяет последнюю цифру записи в основании b, n//b удаляет её; при b=10 получаем прежние операции %10 и //10; при n>0 новое целое меньше прежнего. Сумма накапливается в s с начального 0. Числовая запись не хранит ведущие нули. Отдельный B1 расширяет подсчёт цифр на число 0: у десятичной записи 0 одна цифра, хотя while n>0 не исполняется. Проверка технического лимита не является доказательством бесконечности. Выделенные цифры получаются от младшей к старшей; для обычной записи их читают в обратном порядке. Значения 0…b−1 при b≤10 записываются обычными цифрами. В этой практике n>0; число 0 отдельно рассматривается вB1.
Для работы достаточно бумаги, ручки и памятки. Сохраняй первую попытку; исправления отмечай другим знаком.
Безопасное начало
Сухие руки, без напитков у техники. Провода и разъёмы не трогай, о неисправности сообщи учителю. Работай по правилам кабинета. Две полные минуты в середине урока — без экрана и заданий. Внешний ИИ, аккаунты и личные данные не требуются.
Что уже нужно знать
19: цикл с предусловием у исполнителя;23–27: Python 3, int(input()), присваивания по порядку, сравнения, // и %, проверка по строкам. Формулы НОД и обработки цифр даны в памятке.
S0. Чем цикл с предусловием отличается от команды «повторить ровно 5 раз»?
Устная проба без отметки.
Предусловие и убывающая величина
while проверяет условие перед каждым телом. Евклид: r=a%b; a=b; b=r. Цифры: значение n>0, основание b от 2 до 10; d=n%b, затем n=n//b. Цифры выходят справа налево; запись восстанавливают в обратном порядке. При n>0 и b≥2 целое n уменьшается. Для суммы s=s+d до удаления цифры.
| Операция | Результат |
|---|---|
| d=n%b | Последняя цифра записи в основании b |
| n=n//b | Значение без последней цифры |
| b=10 | Привычная десятичная запись |
Во вводе n — значение, записанное десятичными цифрами; b — отдельная строка 2…10. Например, n=13,b=2 означает разобрать число 13, а не считать запись 13 двоичной. ВB1 подсчёт десятичных цифр для n≥0 остаётся отдельным случаем.
Концептуальная иллюстрация. Точные данные определены условиями, таблицами и схемами; предметы на рисунке не являются входными данными.
Личная проба
C1. Python 3: n=0; s=0; while n>0: s=s+1; затем print(s) после цикла. Тело состоит только из s=s+1. Сколько итераций, проверок и что напечатается?
Одна минута лично, затем две на разбор. Памятка разрешена.
Алгоритм Евклида
Другой пример: a=15,b=6. После первого тела пара(6,3), после второго(3,0). Следующая проверка ложна, НОД 3. Остаток вычисляют до перезаписи пары. В A1 составь собственную таблицу на других входах.
A1. Евклид: код ниже; входы 48 затем 18 и отдельно 7 затем 0 (две строки). До запуска запиши пары (a,b) после тел и вывод. Для 7/0 укажи, вычислялся ли %. Первый случай проверь на ПК, второй вручную.
a=int(input())
b=int(input())
while b!=0:
r=a%b
a=b
b=r
print(a)
Заготовка для своей записи:
| После итерации | a / b / r |
|---|---|
| 1 | |
| 2 | |
| 3 |
Сначала своя запись и основание, затем сверка.
Полная пауза
Две минуты без проекции, чтения, вычислений и обсуждения. Отведи взгляд и смени позу.
Выделяем цифры в основании b
Другой пример n=7,b=2. Остатки d по шагам 1,1,1, новые n3,1,0, суммы s1,2,3. Цифры выделены справа налево, обычная запись 111₂; 4+2+1=7. При b=10 те же действия дают десятичные цифры. ВA2 другие входы: сначала собственная трасса, затем запуск.
A2. Две строки ввода: значение n (натуральное 1…1000000, ввод десятичными цифрами), затем основание b (2…10). Составь Python 3: s=0; пока n>0, выделить d=n%b, прибавить d к s, удалить цифру n=n//b; после цикла вывести s. До проверки запиши в тетради код и полные трассы (n,d,s) для 205/10 и 13/2. В таблице листа запиши только цифры справа налево, обычную запись и сумму; проверь запись по весам. Один случай запусти, второй можно проверить вручную.
Заготовка для своей записи:
| Случай | Цифры справа налево / запись / сумма; трасса в тетради |
|---|---|
| 205; b=10 | |
| 13; b=2 |
Семь минут: три на свои трассы, три на исправление/проверку, одна на сверку. В коротком варианте — шесть минут.
Концептуальная иллюстрация. Точные данные определены условиями, таблицами и схемами; предметы на рисунке не являются входными данными.
Ноль и смысл счётчика
Для натурального n8 цикл удаления цифр выполняется один раз, для n80 два раза. Но для числа 0 условие n>0 сразу ложно. Если задачей является число цифр записи, а не число исполнений тела, нужно отдельно определить результат для 0. Проверку нуля делай до изменения исходного n.
| Данные модели | Итерации удаления |
|---|---|
| n8 | 1 |
| n80 | 2 |
| n0 | 0, нужен отдельный смысловой случай |
B1. Подсчёт цифр расширили на целые n≥0. Алгоритм:k=0; пока n>0, выполнить k=k+1 и n=n//10; после цикла вывести k. Для входа 0 сравни факт с числом цифр десятичной записи 0. Исправь начальное значение k до цикла с помощью if/else и проверь также 7 и 10.
Три минуты на свою попытку, затем одна минута на сверку основания. Допустимы разные корректные решения.
Проверка вымышленного ответа ИИ
AI1. Вымышленный ИИ предлагает тело Евклида a=b; b=a%b и уверяет, что порядок не важен. Исходные a=14,b=8. Проверь первую итерацию и итог этого ошибочного цикла while b!=0; сравни с НОД 14 и 8. Исправь тело с временным r и повтори вход.
Это заранее составленный учебный пример. Самостоятельно проверь конкретный шаг; обращение к сервису не требуется.
Помощь и резерв
- Теряет старое a. Сначала вычисли r, потом перезаписывай a.
- Не уменьшает n. В A2 уменьши n командой n=n//b; в десятичном B1 используют n=n//10.
- Путает%и//. Подпиши извлечение и удаление цифры.
- Считает 0 числом без цифр. Различи число итераций и запись нуля.
D1. Резерв. Пусть целые a=q*b+r и b>0. Объясни двумя направлениями, почему общий делитель a,b делит b,r, а общий делитель b,r делит a,b. Как это помогает алгоритму Евклида?
D1 — 3–4 минуты для быстро справившихся после основной работы; иначе отдельный резерв следующего занятия. H1, весь тест и шесть новых случаев не складываются в одно обязательное домашнее задание.
Индивидуальный итог
Четыре полные минуты лично. Условия заранее на бумаге. Памятка и разобранные модели разрешены; ключи и веб-разбор закрыты. Учитель не даёт учебных подсказок. Сбор после четырёх минут.
E1. В алгоритме Евклида while b!=0 тело вычисляет a%b. Если исходно a=11,b=0, будет ли деление на 0 и что выведет print(a) после цикла?
E2. Одна итерация Евклида: исходно a=14,b=8; r=a%b; a=b; b=r. Каковы r и новая пара(a,b)?
E3. Натуральное n>0 заменяют на n//b при целом b от 2 до 10. Почему это помогает циклу while n>0 завершиться?
Разбор после своей попытки
После исправления выбери один новый пример из самопроверки.
Материалы и самопроверка
Презентация, самостоятельный план учителя, рабочий лист, выходной билет и бумажная самопроверка открываются отдельными карточками. DOCX можно смотреть на сайте и скачать. PDF для печати:
Самопроверка на сайте: шесть вопросов с пояснениями, отдельно 5–7 минут. Бумажная версия с письменными основаниями и разбором — 8–12 минут. Все шесть новых письменных случаев — ещё 8–10 минут; выбирай прежде всего случай к своей ошибке. Эти модули не прибавляют к основным 45 минутам и не задаются целиком вместе с H1 автоматически. Пояснения и новые случаи для бумажного разбора есть в плане учителя.
Домашний перенос
H1. Домой 5–7 минут,ПКнеобязателен. 1) Евклид для 21 и 14: выпиши пары после тел и НОД. 2) Для n=34,b=5 выделяй d=n%b, затем n=n//b; выпиши цифры справа налево, восстанови запись в основании 5 и найди сумму цифр. Проверь запись по весам.
Полное условие и памятка есть на листе. Решение запиши в тетради. Достаточно 5–7 минут с сохранённой опорой.
Источники
ФРП базового уровня: содержание 8 класса, печатные с.9–10; тематическое планирование, с.35–37. Выделение цифр натурального числа в позиционной системе с основанием от 2 до 10. Python 3 — один из допускаемых ФРП языков. Часы и ссылки КТП сохранены. Учебник школы не указан; номера параграфов не назначены.
6 вопросов по теме «Цикл while: Евклид и цифры: самопроверка». Выбери ответ, прочитай объяснение и попробуй ещё раз, если ошибся.
Открыть отдельноВопрос 1 из 6
ТренировкаБез отметки и ограничения времени. Первый ответ учитывается отдельно от исправлений. При обновлении страницы ответы сбросятся.
Скачать и открыть
Материалы урока
6 материаловПодготовка к уроку
2 материала· для учителей
20 слайдов, отдельная качественная иллюстрация на каждом, редактируемые примеры и таблицы, практика, проверка ответа ИИ и заметки учителю.
Презентация
Самостоятельный план 45/40 минут: полные условия и ключи, карта 20 слайдов, помощь, индивидуальный итог, 18 объяснений самопроверки и шесть случаев переноса.
Методичка · MediaSchool
Рабочие листы и практика
3 материала· для учеников
Три страницы: памятка, собственные попытки, два основных действия, проверка совета ИИ, помощь, резерв и домашний перенос.
Рабочий лист
Два билета на А4. Четыре минуты индивидуально, памятка разрешена, шесть формирующих баллов.
Рабочий лист
Шесть вопросов совпадают с тестом на странице. Две страницы; 8–12 минут с письменными основаниями и разбором, ключи и новые случаи в плане.
Рабочий лист
Проверка знаний
1 материал· для учеников
6 вопросов с объяснениями и повторной попыткой.
Проверочная
От сообщества
Материалы сообщества0
Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.
Поделитесь первым материалом
Рабочий лист, презентация или методичка помогут другим учителям подготовиться к уроку.
Комментарии
Войдите, чтобы оставлять комментарии.
Пока нет комментариев. Будьте первым!