К другим статьям

Циклы и условия в ЕГЭ: как не запутаться в if, for и while

23

Поделиться
Фон

Делимся разбором самых сложных заданий в Телеграм канале

Перейти в ТГ

Что это и где они прячутся

изображение

** изображение создано или обработано с помощью ИИ.

Циклы и условия для ЕГЭ по информатике звучат скучно, пока не сталкиваешься с ними в задаче. Я сам когда-то смотрел на while и думал: «Ну да, крутится что-то». Сейчас готовлю учеников и вижу ту же боль каждый сезон: синтаксис понятен, но логика ускользает.

На экзамене проверяют не красоту кода. Важнее понять, что происходит с данными. Условие отвечает на вопрос: «Делаем это или другое?» Цикл отвечает на вопрос: «Повторяем сколько раз?» Звучит просто, но именно здесь рождаются странные ошибки.

Пример. Задача с числом. Нужно пройти по его цифрам, проверить чётность, посчитать сумму. Внутри почти всегда живёт условие (if). Снаружи — цикл (while или for). Если перепутать порядок действий или вложенность, ответ уедет. И уедет тихо, без сирен и красных лампочек.

Образ для запоминания.

  1. Условие — развилка во дворе (налево или направо).
  1. Цикл — круги вокруг дома, пока не найдёшь нужный подъезд.

Мозг быстрее цепляется за картинку, чем за сухой термин.

Не учите if и for/while отдельно. На ЕГЭ они почти всегда работают вместе. Даже простая проверка числа часто включает ветвление внутри повторения. Тренируйте не отдельные конструкции, а ход алгоритма. Это честнее и полезнее.

Условия: не просто if, а проверка смысла

изображение

** изображение создано или обработано с помощью ИИ.

Условие кажется самым дружелюбным блоком. Написал if, поставил проверку — можно отдыхать. Но ЕГЭ быстро напоминает: отдых подождёт. Ошибка часто сидит не в слове if, а в самой формулировке проверки.

Пример. «Число делится на 3 и не делится на 5». Здесь две части: делится на 3 (остаток 0), не делится на 5 (остаток не 0). Союз «и» означает: обе части должны быть верны одновременно.

Другой пример. «Число делится на 3 или на 5». Здесь достаточно хотя бы одной части. Многие читают быстро и ставят «и». Код работает, но считает совсем другое. Я называю это ловушкой русского языка. Три вещи, которые стоит держать в голове:

  1. Сначала переведите условие на обычный русский смысл.
  1. Выделите простые проверки (отдельно каждую).
  1. Только после этого пишите логические операции (and, or, not).

— А можно сразу кодить?

Можно. Я тоже так делал. Потом долго искал ошибку в одной скобке. Весело было только компьютеру.

Отрицание. Фраза «не меньше 10» значит 10 или больше. «Не больше 10» — 10 или меньше. Не пытайтесь угадывать. Лучше сразу запишите границу на черновике.

Проверка сложных условий. Берите 2–3 числа и прогоняйте условие вручную. Если проверка ведёт себя странно на малых данных, код уже не спасёт — он просто быстро сделает странность много раз.

Циклы for и while: когда какой выбирать

изображение

** изображение создано или обработано с помощью ИИ.

Цикл нужен, когда действие повторяется. В задачах ЕГЭ это перебор чисел, обработка цифр, поиск значения, моделирование алгоритма. Главное — понять, известна ли длина повторения заранее.

Если количество шагов известно — обычно берут for. Например, проверить числа от 1 до 100. Диапазон понятен, границы видны.

Такой цикл легко читать, и случайно забыть увеличить счётчик практически невозможно.

Если повторяем до события — чаще подходит while. Например: пока число больше нуля, отделяем последнюю цифру. Или пока значение не достигло порога, выполняем команды. Здесь заранее не всегда понятно, сколько шагов потребуется.

Мой любимый тест: «Я знаю число повторов?» Да, смотрите в сторону for. Нет, думайте про while. Это не закон природы, но хорошая привычка.

Ловушки. У while классическая проблема: нужно менять переменную, от которой зависит условие. Иначе цикл становится вечным. На экзамене такой код не подарит романтики, только потерянное время. У for бывают приключения с границами. В Python правый край range не входит. Например, range(1, 5) даёт 1, 2, 3, 4. Нужно включить последнее число или нет? Контроль границ — ключевой навык.

Не заучивайте цикл как заклинание. Спросите себя:

  1. Что меняется на каждом шаге?
  1. Что мы накапливаем?
  1. Когда останавливаемся?

Если ответы ясны, синтаксис перестаёт быть страшным.

Как вручную трассировать алгоритм и не сойти с ума

изображение

** изображение создано или обработано с помощью ИИ.

Трассировка — это пошаговое выполнение программы на бумаге. Не на компьютере, а вручную. Занятие кропотливое, но оно реально спасает баллы.

Вы берёте лист, рисуете таблицу. В верхней строке — названия переменных. В каждой следующей строке — значения после очередного шага цикла. Да, это не быстро. Зато вы перестаёте додумывать то, чего нет, и начинаете работать с точными цифрами.

Пример: переменная s накапливает сумму, из n последовательно извлекаются цифры (каждый шаг — целочисленное деление). Пропустили один шаг в записи — и вы либо приписали лишнюю цифру, либо потеряли 0.

Ученик говорит: «Мне и так понятно». Вы отвечаете: «Докажите таблицей». И через минуту ошибка находится. Не потому что вы волшебник, а потому что бумага зафиксировала то, что голова пропустила.

Порядок трассировки:

  1. Запишите начальные значения всех переменных.
  1. Проверьте, выполняется ли условие для входа в цикл.
  1. Выполните тело цикла строка за строкой.
  1. Обновите значения переменных после каждого действия.
  1. Снова проверьте условие продолжения.

Особое внимание — на момент выхода из цикла. Последняя проверка условия чаще всего не запускает тело цикла. Значит, окончательное значение могло сформироваться на предыдущем шаге. Экзаменационные задачи это место очень любят.

Если алгоритм длинный, не нужно расписывать всё подряд. Достаточно первых трёх шагов и момента остановки. Остальное восстанавливается по логике или закономерности.

Если подготовка идет тяжело, иногда помогает внешний ритм. Можно взять курс подготовки к ЕГЭ по информатике, где такие алгоритмы разбирают по шагам. Главное не смотреть пассивно, а повторять руками.

Типичные ошибки в задачах с циклами и условиями

изображение

** изображение создано или обработано с помощью ИИ.

Первая ошибка — чтение условия «по диагонали». Пропустили слово «минимальное» — решаете другую задачу. Не заметили «натуральное» — получаете лишние варианты (0, отрицательные). В информатике такой подход опасен.

Вторая ошибка — неверная инициализация. Счётчик поставили на 1, а нужно было на 0. Максимум начали с нуля, но все числа отрицательные. Сумму забыли обнулить перед новым перебором. Одна маленькая строка рушит весь план.

Третья ошибка — путаница между счётчиком и значением. Переменная i идёт по номерам (индексам), а x хранит само число. В условии случайно проверяют i вместо x. Код выглядит прилично, ответ — нет.

Четвёртая ошибка — лишний или недостающий шаг. Граница диапазона. Если в задаче сказано «от A до B включительно», цикл должен учесть оба края. Проверьте отдельно: A и B.

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

Отдельно — вложенные условия. В них легко потерять, к какому if относится else. В Python с отступами это особенно заметно. Один пробел — не враг, но отступ уже командир.

После того как написали код, проговорите его вслух. Можно шёпотом: «Для каждого числа проверяю признак. Если подходит — увеличиваю счётчик». Если фраза не складывается, код, скорее всего, тоже содержит логическую ошибку.

Не пытайтесь чинить всё сразу. Найдите одну переменную, проследите её путь. Потом переходите к следующей. Так отладка перестаёт быть паникой и становится обычной работой.

План тренировки перед экзаменом

изображение

** изображение создано или обработано с помощью ИИ.

Готовиться к циклам и условиям лучше короткими сериями. Два часа подряд на одних циклах быстро превращаются в кашу. А 25-40 минут с разбором ошибок дают устойчивый эффект.

Порядок тем. Начните с базовых задач: проверка чисел по одному признаку. Затем добавьте счётчики, суммы, поиск минимума и максимума. После этого переходите к обработке цифр числа (например, выделение последней цифры, отбрасывание разряда). Так сложность растёт плавно.

Следующий слой — алгоритмы с неизвестным числом шагов. Здесь тренируйте while. Выписывайте отдельно, что меняется в теле цикла и каково условие остановки. Оно важнее, чем кажется.

Раз в неделю решайте задачи из демоверсий ФИПИ и открытого банка. Это не заменяет понимание, но помогает привыкнуть к формату. Смотрите не только ответ, но и логику решения.

Схема одного занятия (например, 40 минут):

  1. 5 минут — повторить конкретный тип условия (например, «делится на 3 и не делится на 5»).
  1. 15 минут — решать задачи без подсказок.
  1. 10 минут — разобрать ошибки (где и почему).
  1. 5 минут — записать выводы в тетрадь.

Тетрадь ошибок. Звучит занудно, но работает. Пишите не «ошибка в цикле», а конкретно: «забыл включить правую границу в range», «перепутал счётчик и значение», «не обнулил сумму перед новым перебором». Через пару недель вы увидите свои личные ловушки.

Перед экзаменом не учите новые трюки пачками. Закрепите привычный набор: перевод условия на смысл, ручная трассировка, проверка границ, аккуратная отладка. Эти вещи дают спокойствие.

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

Фон

Хочешь начать готовиться, но остались вопросы?

Заполни форму, и мы подробно объясним, как устроена подготовка к ЕГЭ и ОГЭ в ЕГЭLAND

Саша Филатов

    Дополнительная скидка 500 линия не вечна!

    Успей воспользоваться промокодом ЛЕТО с 6 по 15 июля и начни свой путь к 80+ и отлично на экзамене!

    Скидка на 8 марта