Алгоритмическая конструкция «цикл»: while и for — тренажёр для 8 класса
8 класс • Информатика
Тренажёр по теме «Алгоритмическая конструкция «цикл»: while и for» для 8 класса на записывать и трассировать цикл с условием while в Python, записывать и трассировать цикл с параметром for с функцией range(), применять операторы break и continue для управления циклом. Задания соответствуют разделу «ФРП по информатике, 8 класс: Циклические алгоритмы. Цикл с условием (while). Цикл с параметром (for). Управление циклом: break, continue» федеральной рабочей программы. 15 заданий с автоматической проверкой ответов, подсказками и разбором решения. Заниматься можно бесплатно, без регистрации.
Задания в теме
Загружаем задание…
Справка
Проверено методистом
Михаил ИгнатьевУчитель высшей квалификационной категорииИсточник
[1] Примерная основная образовательная программа основного общего образования, раздел «ФРП по информатике, 8 класс: Циклические алгоритмы. Цикл с условием (while). Цикл с параметром (for). Управление циклом: break, continue», ФГОС ООО.
Что нужно уметь по этой теме
- записывать и трассировать цикл с условием while в Python
- записывать и трассировать цикл с параметром for с функцией range()
- применять операторы break и continue для управления циклом
- решать задачи на накопление суммы, произведения, счётчика итераций
- выбирать подходящий вид цикла для данной задачи
Соответствие программе
Кодификатор ФИПИ: 2.4.1, 2.4.2, 2.4.3
ФРП: ФРП по информатике, 8 класс: Циклические алгоритмы. Цикл с условием (while). Цикл с параметром (for). Управление циклом: break, continue
Часы по ФРП на раздел: 9
Прогресс по этой теме: 0 верно, 0 неверно, 0 пропущено из 15 заданий.
Как разобраться в теме: полный разбор
Раздел 1 — Определение
Цикл — это алгоритмическая конструкция для многократного выполнения одной и той же группы команд в программе. Повторяемая группа команд называется телом цикла, а одно её выполнение — итерацией.
Циклы избавляют программиста от копирования кода: вместо ста одинаковых строк записывается одна конструкция с условием повторения. Компьютер выигрывает у человека именно в скорости однотипных действий, и цикл — инструмент, который эту скорость включает.
В Python работают два вида циклов. Цикл с условием (while) повторяет тело, пока логическое выражение истинно, — число итераций заранее неизвестно. Цикл с параметром (for) перебирает готовую последовательность значений, чаще всего созданную функцией range(), — число итераций известно до запуска.
В курсе 8 класса циклы стоят сразу после ветвления и служат базой для всех дальнейших тем: обработки строк, списков, числовых рядов.
Раздел 2 — Ключевые правила
Цикл выполняется ровно до тех пор, пока его условие продолжения истинно; ложное условие завершает работу конструкции немедленно.
- Заголовок и двоеточие. Строка
while условие:илиfor переменная in range(...):заканчивается двоеточием, тело сдвигается на 4 пробела. Без отступа Python выдастIndentationError. - Изменение переменной условия. Внутри
whileобязана меняться величина, входящая в условие:i = i + 1. Иначе цикл становится бесконечным. - Границы `range()`.
range(a, b, c)даёт значения отaвключительно доbне включая, с шагомc.range(5)= 0, 1, 2, 3, 4 — пять чисел. - Инициализация накопителя. Перед циклом сумма обнуляется (
s = 0), произведение приравнивается единице (p = 1), счётчик обнуляется (k = 0). - Оператор `break` прерывает весь цикл и передаёт управление первой команде после него.
- Оператор `continue` пропускает остаток тела и начинает следующую итерацию; в
whileпередcontinueшаг счётчика уже должен быть выполнен. - Выбор вида цикла. Известно количество повторений —
for; известно только условие остановки —while.
Раздел 3 — Разбор примеров
Пример 1. Сумма чисел от 1 до 5 через `while`.
python
i = 1
s = 0
while i <= 5:
s = s + i
i = i + 1
print(s)
Переменная i — счётчик, s — накопитель суммы. Трассировка (пошаговое заполнение таблицы значений):
| Итерация | i до тела | s после s = s + i | i после шага | Условие i ≤ 5 |
|---|---|---|---|---|
| 1 | 1 | 1 | 2 | истина |
| 2 | 2 | 3 | 3 | истина |
| 3 | 3 | 6 | 4 | истина |
| 4 | 4 | 10 | 5 | истина |
| 5 | 5 | 15 | 6 | ложь |
Вывод: 15. Правило — условие проверяется до тела, поэтому шестая итерация не начинается.
Пример 2. Факториал 5 через `for`.
python
p = 1
for i in range(1, 6):
p = p * i
print(p)
range(1, 6) порождает 1, 2, 3, 4, 5. Произведение растёт: 1 → 2 → 6 → 24 → 120. Вывод: 120. Правило — накопитель произведения начинается с 1, потому что умножение на 0 обнулило бы результат.
Пример 3. `break` — поиск первого делителя.
python
n = 91
for d in range(2, n):
if n % d == 0:
print(d)
break
При d = 2, 3, 4, 5, 6 остаток ненулевой, при d = 7 условие истинно: программа печатает 7 и мгновенно выходит. Правило — break экономит итерации, когда ответ уже найден.
Пример 4. `continue` — сумма только чётных.
python
s = 0
for x in range(1, 11):
if x % 2 != 0:
continue
s = s + x
print(s)
Нечётные x (1, 3, 5, 7, 9) вызывают continue, строка накопления пропускается. Складываются 2 + 4 + 6 + 8 + 10 = 30. Правило — continue фильтрует значения, не прерывая перебор.
Пример 5. Счётчик итераций при неизвестной длине — количество цифр числа.
python
n = 4073
k = 0
while n > 0:
n = n // 10
k = k + 1
print(k)
Целочисленное деление отбрасывает младшую цифру: 4073 → 407 → 40 → 4 → 0, счётчик k доходит до 4. Правило — если заранее неизвестно, сколько шагов потребуется, работает только while.
Раздел 4 — Таблица
| Признак | Цикл while | Цикл for |
|---|---|---|
| Полное название | цикл с условием | цикл с параметром |
| Число итераций | заранее неизвестно | известно до запуска |
| Что управляет повтором | логическое выражение | элементы range() или последовательности |
| Счётчик увеличивается | вручную: i = i + 1 | автоматически |
| Риск зацикливания | высокий | отсутствует |
| Типовая задача | «делить, пока число > 0» | «сложить 10 введённых чисел» |
Действие break | выход из цикла | выход из цикла |
Действие continue | переход к проверке условия | переход к следующему элементу |
| Минимум итераций | 0 (условие ложно сразу) | 0 (пустой range) |
Раздел 5 — Типичные ошибки
Бесконечный цикл. Причина — переменная условия не меняется в теле. Неправильно: i = 1 / while i <= 5: / s = s + i. Правильно: добавить i = i + 1 последней строкой тела.
Ошибка границы `range()`. Причина — забыто, что правая граница не входит в диапазон. Для чисел от 1 до 10 неправильно range(1, 10) (даёт 1…9), правильно range(1, 11).
Накопитель внутри цикла. Причина — строка s = 0 записана в теле, и сумма обнуляется каждую итерацию. Правильно: инициализация стоит до заголовка цикла.
`continue` перед шагом счётчика в `while`. Неправильно: if x % 2: continue до строки i = i + 1 — программа зависает. Правильно: увеличить счётчик раньше проверки либо использовать for.
Единица как начало суммы. Причина — смешение шаблонов накопления. Для суммы стартовое значение 0, для произведения 1.
Раздел 6 — Пошаговый алгоритм
- Определите, известно ли число повторений: да — берите
for, нет —while. - Выпишите переменные-накопители и присвойте им стартовые значения до цикла.
- Запишите заголовок: диапазон
range(a, b, c)либо условие продолжения. - Поместите в тело одну команду обработки текущего значения.
- Для
whileдобавьте изменение переменной условия. - Вставьте
breakилиcontinue, если задача требует досрочного выхода или пропуска. - Вынесите
print()за пределы цикла, если нужен один итоговый ответ. - Протрассируйте программу на 3–4 итерациях в таблице и сверьте результат с ручным подсчётом.
Раздел 7 — Как запомнить
- «`for` — сколько, `while` — пока»: первое слово отвечает на вопрос «сколько раз?», второе — «до каких пор?».
- Правило трёх строк для `while`: старт переменной → проверка → шаг. Пропуск любой строки ломает цикл.
- `range` — «до, но без»:
range(1, 11)читается «от 1 до 11 без 11». - Ноль для плюса, единица для умножения: нейтральный элемент операции и есть стартовое значение накопителя.
- `break` — «сломал и вышел», `continue` — «перепрыгнул и дальше»: перевод английских слов точно передаёт действие.
Частые вопросы
Что вернёт range(1, 6)?
Последовательность 1, 2, 3, 4, 5 (6 не включается).
Что делает оператор break?
Немедленно завершает выполнение цикла, в котором находится.
Чем цикл while отличается от for?
while выполняется пока верно условие; for перебирает заданную последовательность значений.
Как накопить сумму чисел от 1 до 100 в Python?
s = 0; for i in range(1, 101): s += i — результат 5050.