Задание 9: анализ программ
Пять минут на эту статью — и «Задание 9: анализ программ» станет понятнее. Внутри: теория без воды, пример, разбор задания и чек-лист самопроверки.
Что проверяет задание 9
Задание 9 часто кажется сложным из-за длинного текста программы: кажется, что нужно «увидеть» ответ сразу. На самом деле проверяется не скорость чтения, а умение пошагово выполнять алгоритм и аккуратно считать. Разберём удобный способ анализа, чтобы ты понимал, какие значения меняются, где срабатывает условие и как не потерять результат из-за одной невнимательной строки.
В программе обычно встречаются переменные, присваивания, арифметические операции, ветвления и циклы. Переменная хранит текущее значение, а знак присваивания ← заменяет старое значение новым. Например, после записи x ← x + 3 к прежнему значению x прибавляют 3.
Главное правило: не выполняй программу «в уме» целиком. Раздели её на строки, выписывай значения переменных после каждого важного действия и проверяй условие буквально так, как оно написано.
Алгоритм разбора программы
Сначала определи начальные значения всех переменных. Затем прочитай команды сверху вниз. Если встречается условие, выясни, истинно оно или ложно, и выполни только соответствующую ветвь. В цикле отдельно посчитай число повторений или выпиши значения счётчика.
Удобно вести небольшую таблицу. В её столбцах можно указать номер шага, значение переменной и действие. Такой черновик занимает несколько строк, зато защищает от типичной ошибки: случайного использования уже изменённого значения вместо исходного.
| Шаг | x | y | Что произошло |
|---|---|---|---|
| Начало | 2 | 5 | Заданы исходные значения |
| 1 | 5 | 5 | x увеличили на y |
| 2 | 5 | 8 | y увеличили на 3 |
Если программа содержит несколько ветвей, сначала упростить условие: например, 7 ≥ 4 — истина, а 2 × 3 = 7 — ложь. Не перепрыгивай через строки внутри выбранной ветви: каждая команда может повлиять на следующий шаг.
Подписывай каждое новое значение переменной стрелкой: x: 2 → 5 → 10. Так видно всю цепочку изменений, а не только случайный промежуточный результат.
Разобранный пример
Рассмотрим программу, в которой есть последовательные присваивания и условие. Здесь важно заметить, что во второй строке используется уже новое значение x, полученное в первой строке.
x ← 4
\( y ← 2 \times x + 1 \)
если y ≥ 9, то
x ← y − 3
иначе
\( x ← y + 3 \)
вывести x
Сначала x получает значение 4. Затем вычисляем y: 2 × 4 + 1 = 9. Условие y ≥ 9 истинно, потому что 9 ≥ 9. Поэтому выполняется первая ветвь: x ← 9 − 3, то есть x становится равным 6. Команды из ветви «иначе» не выполняются. В конце программа выводит значение x, поэтому ответ равен 6.
Проверка в одну строку выглядит так: x = 4 → y = 9 → условие истинно → x = 6. Если бы условие было строгим y > 9, оно оказалось бы ложным, и результатом стало бы 12. Именно различие между > и ≥ часто определяет весь ответ.
Циклы и арифметика
В циклах не стоит сразу подставлять итоговое число. Сначала найди начальное значение счётчика, шаг изменения и последнее значение, при котором выполняется условие. Если команда повторяется 4 раза и каждый раз прибавляет 3, общий прирост равен 4 × 3 = 12.
Например, при x ← 1 и четырёх повторениях команды x ← x + 2 получаем последовательность 1 → 3 → 5 → 7 → 9. Начальное значение не считается результатом повторения: команда выполнилась четыре раза, поэтому прибавили 2 четыре раза.
В задачах могут встречаться целочисленное деление и остаток. Если они указаны, не заменяй их обычной дробью: 17 делить на 5 с остатком даёт целую часть 3 и остаток 2. При ручном подсчёте полезно писать промежуточные значения, даже если они кажутся очевидными.
Не путай число повторений с числом переходов счётчика. В цикле от 1 до 5 включительно пять значений: 1, 2, 3, 4, 5.
Если в выражении есть скобки, сначала выполняй их, затем умножение и деление, потом сложение и вычитание. Это особенно важно для отрицательных значений и выражений вроде −2²: следуй правилам, заданным в условии или используемом языке.
Типичные ошибки
Первая ошибка — чтение программы как обычного текста. Условие не «описывает ситуацию», а проверяет конкретные текущие значения. После каждой команды спроси себя: что изменилось и какое значение теперь используется дальше?
Вторая ошибка — выполнение обеих ветвей. В конструкции «если — иначе» выбирается только одна часть. Третья — смешение старого и нового значения: в выражении y ← x + 2 нужно использовать x на момент выполнения именно этой строки.
Четвёртая ошибка — неправильный порядок действий. Например, 6 + 2 × 3 = 12, а не 24. Пятая — потеря границы цикла: слова «пока», «до», «от» и «включительно» нужно читать особенно внимательно.
После решения полезно сделать обратную проверку. Сверь количество выполненных команд, знак сравнения и финальную переменную, которую требуется вывести. Закрепить такой алгоритм можно в личном кабинете с бесплатной практикой: решай короткие варианты и сразу разбирай ошибки.
Что запомнить
Анализ программы строится по цепочке: начальные значения → команды сверху вниз → проверка условий → повторения цикла → вывод результата. Присваивание меняет значение переменной, а не создаёт новую копию. В условии внимательно различай >, <, ≥ и ≤, а в цикле считай именно фактическое число выполнений.
Если программа длинная, составь таблицу или цепочку переходов. Не полагайся на память и не округляй промежуточные результаты. Один аккуратный черновик обычно надёжнее нескольких попыток «посчитать быстрее».
Следующий шаг — зарегистрируйся и реши 5 заданий бесплатно. После этого сравни не только ответы, но и место ошибки: условие, цикл, арифметика или порядок действий.
Дополнительные материалы по подготовке можно найти в разделах ЕГЭ и ОГЭ, выбирая задания с похожими алгоритмами.
Что делать, если программа занимает много строк?
Раздели её на блоки: присваивания, условия и циклы. Выписывай только переменные, которые меняются или участвуют в следующем условии.
Нужно ли знать язык программирования?
Для задания достаточно понимать запись алгоритма, присваивания, условия, циклы и порядок арифметических действий. Глубокое знание конкретного языка обычно не требуется.
Как закрепить тему после разбора?
Реши несколько программ одного типа: сначала без ограничения времени, затем с таймером. После каждой ошибки перепиши цепочку значений и найди строку, на которой появился неверный результат.
Как проверить ответ перед сдачей?
Повтори финальные шаги, проверь знак сравнения, число итераций и название переменной в команде вывода. Если возможно, выполни программу вторым способом, например через таблицу.
Не оставляйте тему «прочитанной»
Понимание — половина дела. Вторая — практика с обратной связью: личный кабинет Просто Урок покажет, где вы ошибаетесь, и подтянет слабые места.