Алгоритмическая конструкция «цикл»: 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 — Ключевые правила

Цикл выполняется ровно до тех пор, пока его условие продолжения истинно; ложное условие завершает работу конструкции немедленно.

  1. Заголовок и двоеточие. Строка while условие: или for переменная in range(...): заканчивается двоеточием, тело сдвигается на 4 пробела. Без отступа Python выдаст IndentationError.
  2. Изменение переменной условия. Внутри while обязана меняться величина, входящая в условие: i = i + 1. Иначе цикл становится бесконечным.
  3. Границы `range()`. range(a, b, c) даёт значения от a включительно до b не включая, с шагом c. range(5) = 0, 1, 2, 3, 4 — пять чисел.
  4. Инициализация накопителя. Перед циклом сумма обнуляется (s = 0), произведение приравнивается единице (p = 1), счётчик обнуляется (k = 0).
  5. Оператор `break` прерывает весь цикл и передаёт управление первой команде после него.
  6. Оператор `continue` пропускает остаток тела и начинает следующую итерацию; в while перед continue шаг счётчика уже должен быть выполнен.
  7. Выбор вида цикла. Известно количество повторений — 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 + ii после шагаУсловие i ≤ 5
1112истина
2233истина
3364истина
44105истина
55156ложь

Вывод: 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 — Пошаговый алгоритм

  1. Определите, известно ли число повторений: да — берите for, нет — while.
  2. Выпишите переменные-накопители и присвойте им стартовые значения до цикла.
  3. Запишите заголовок: диапазон range(a, b, c) либо условие продолжения.
  4. Поместите в тело одну команду обработки текущего значения.
  5. Для while добавьте изменение переменной условия.
  6. Вставьте break или continue, если задача требует досрочного выхода или пропуска.
  7. Вынесите print() за пределы цикла, если нужен один итоговый ответ.
  8. Протрассируйте программу на 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.