Перейти к содержанию
MediaSchool

Цикл с предусловием

§ 14 учебника Котова и Лапо 2025 года: условие для Робота, цикл «пока», проверка до тела, ноль итераций, завершение и проверка программы на разных полях.

Открыт · Видео · Презентация · Методичка · Рабочий лист · Другое

Сначала — короткое объяснение

Цикл с предусловием: почему последняя клетка пустая?

Цикл while: проверка до тела, ноль итераций и последняя клетка. Пошаговая трасса Робота, поиск прохода по примеру 14.5, зацикливание и безопасное завершение. Самопроверка с паузой 12 секунд. Авторская учебная анимация; 11 минут 15 секунд. К §14 учебника для 7 класса РБ, урок 16.

На YouTube

Конспект урока

Представь коридор, длину которого Робот не знает заранее. Нужно дойти до правой стены. Сколько раз выполнить команду «вправо»? Число шагов выяснится только во время движения. В такой задаче помогает цикл с предусловием — цикл «пока».

Что изучаем

Работаем по § 14 «Использование условий», с. 99–106 учебника В. М. Котова и А. И. Лапо (2025). В нём описаны условия исполнителя Робот, цикл с предусловием, команда Python while, зацикливание и примеры прохождения поля с неизвестным положением прохода. Сегодня главная задача — составить цикл, проследить его исполнение и доказать, что он завершится без столкновения со стеной.

После урока ты сможешь объяснить, когда проверяют условие, сколько раз выполнится тело на разных полях и что случится, если условие уже ложно в начале.

Условия для Робота

Робот проверяет условие в текущей клетке. Результат — истина или ложь. В учебнике названы wall_up(), wall_down(), wall_left(), wall_right() и cell_is_filled(). Первые четыре сообщают, есть ли стена с выбранной стороны; последнее — закрашена ли текущая клетка. Например, wall_right() истинно, если справа стена. Выражение not wall_right() истинно, если справа нет стены.

Не пытайся определить истинность условия без обстановки. После перемещения она может измениться.

Как работает «пока»

Команды тела цикла выполняются, пока условие истинно. Порядок всегда один:

  1. Проверить условие до тела.
  2. Если ложно — выйти из цикла и перейти к следующей команде.
  3. Если истинно — выполнить тело и вернуться к проверке.

На блок-схеме условие помещают в ромб, действия — в прямоугольник. На ветви «да» выполняют тело и возвращаются к ромбу; на ветви «нет» продолжают алгоритм после цикла. В Python записывают так:

while <условие>:
    <команды тела цикла>
<команда после цикла>

Двоеточие после условия и отступ тела обязательны. Если условие ложно при первой проверке, тело выполняется ноль раз. Так бывает, когда Робот уже у нужной стены.

Проверь себя: сколько раз выполнится move_right() в программе while not wall_right(): move_right(), если Робот сразу стоит у правой стены? Ответ — ноль; после цикла Робот остался в той же клетке.

Разберём задачу учебника: ищем проход

В примере 14.5 Робот стоит слева над горизонтальной линией стены. Где-то в линии есть проход вниз. Его положение неизвестно. Пока снизу есть стена, Робот вправо проходит к следующей клетке. Когда под ним уже нет стены, цикл заканчивается; только затем он движется вниз и закрашивает клетку.

while wall_down():
    move_right()
move_down()
fill_cell()

Здесь нужно условие задачи: в конечном ряду существует проход, а вправо до него можно пройти без столкновения. Если проход под стартовой клеткой, while выполнится ноль раз. Нельзя писать while not wall_down(): move_right(): такое условие означало бы «двигайся, пока снизу нет стены», то есть противоположное действие.

Новый пример: закрасить коридор

Робот начинает в левой клетке открытого горизонтального коридора, который содержит от одной до пяти клеток. У коридора есть правая граничная стена, внутренних стен нет. Нужно закрасить все клетки, закончить у правой стены. Длина неизвестна.

Сначала подумай: если в теле цикла выполнить fill_cell(), затем move_right(), будет ли закрашена последняя клетка? Нет: у последней клетки условие «справа нет стены» ложно, поэтому тело не выполнится. Понадобится команда после цикла.

while not wall_right():
    fill_cell()
    move_right()
fill_cell()
Длина коридораСколько раз тело?Где конец?Сколько клеток закрашено?
1 клетка0первая и последняя1
3 клетки2третья3
5 клеток4пятая5

Трассируя программу, отдельно отмечай проверку условия, положение Робота, закрашенные клетки. Для коридора из трёх клеток будут три проверки условия: истина в клетках 1 и 2, ложь в клетке 3. После этого выполняется последний fill_cell().

Как найти ошибку и доказать завершение

В цикле должна меняться обстановка, от которой зависит условие. Если написать только while not wall_right(): fill_cell(), Робот остаётся в той же клетке: условие не изменится, возникнет зацикливание. Если пытаться двигаться вправо при истинном wall_right(), Робот встретит стену. Проверяй крайние обстановки — в учебнике рекомендуют 4–6 разных тестовых примеров для задач с изменяющимся полем.

Для нашего коридора достаточно объяснения: каждая итерация приближает Робота к правой стене ровно на одну клетку; их конечное число, значит, условие рано или поздно станет ложным. А если оно ложно уже в начале, тело не запустится.

В § 14 также упомянуты break (немедленно завершить цикл) и continue (перейти к следующей проверке, пропустив остаток тела). Для сегодняшней задачи они не нужны: условие само останавливает Робота. Составные условия и ветвление изучим дальше.

Твоя самостоятельная работа

Возьми отдельный рабочий лист из материалов урока. В нём другая обстановка: вертикальный проход неизвестной высоты. Сначала проследи предложенную программу на проходах разной высоты, включая одну клетку; затем исправь ошибку последней клетки и проверь решение на новом поле. Не открывай ключи до своей попытки. Если застрял, возьми отдельную карточку помощи. После работы есть карточка ошибок и выходной билет.

Критерии: указан результат каждой проверки; нет движения через стену; отмечена последняя клетка; объяснено, почему цикл завершится.

Вопросы и упражнения учебника

На с. 104 после § 14 даны пять вопросов. Ответь своими словами: (1) что называют условием для исполнителя; (2) когда вместо известного числа повторений нужен цикл с предусловием; (3) в каком порядке работает «пока»; (4) как записать цикл на Python; (5) почему возможна бесконечная работа цикла. Найди в своём ответе слова «сначала проверка» и пример с нулём повторений.

Упражнение 1 на с. 104 относится к встроенным задачам upr_14_1_a и upr_14_1_b: без установленного учебного задачника выполни бумажную трассировку из нашего рабочего листа. Упражнения 2–3 на с. 105 требуют учитывать размеры поля и стены. Упражнение 4 (с. 105) предлагает путь из левого верхнего в правый нижний угол квадратного поля неизвестного размера; оно подходит для домашней карточки. Упражнения 5–6 продолжаются на с. 106 и остаются дополнительной практикой для класса с задачником.

Итог

Запиши одно предложение: «Тело цикла с предусловием выполнится, если ...». Затем проверь: что произойдёт при ложном условии до первого шага и какая команда исполнится после цикла? На выходном билете ответь лично, без открытого ключа.

Домашняя работа: прочитай § 14, с. 99–106, ответь на вопросы 1–5 с. 104 и выполни домашнюю карточку. Программу можно составить и проследить на бумаге; установка Python не требуется.

Самопроверка

Проверь себя

10 вопросов по теме «Цикл с предусловием». Выбери ответ, прочитай объяснение и попробуй ещё раз, если ошибся.

Открыть отдельно

Вопрос 1 из 10

Тренировка
Сверху от Робота стена, снизу проход, текущая клетка белая. Какая проверка истинна?

Без отметки и ограничения времени. Первый ответ учитывается отдельно от исправлений. При обновлении страницы ответы сбросятся.

Скачать и открыть

Материалы урока

10 материалов

Подготовка к уроку

3 материала

Рабочие листы и практика

5 материалов

Проверка знаний

1 материал

Дополнительные материалы

1 материал

От сообщества

Материалы сообщества0

Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.

Поделиться материалом

Поделитесь первым материалом

Рабочий лист, презентация или методичка помогут другим учителям подготовиться к уроку.

Комментарии

Войдите, чтобы оставлять комментарии.

Пока нет комментариев. Будьте первым!