Что проверяет задание №6
Задание проверяет умение анализировать простой алгоритм, записанный на языке программирования. Важно не просто уметь писать код, но и «читать» программу — предсказывать результат её работы при заданных входных данных.
Программа представлена на пяти языках программирования (Бейсик, Python, Паскаль, Алгоритмический язык, C++), но для решения достаточно понять логику одного из них. Обычно это условный оператор с логическими связками «И» (AND) или «ИЛИ» (OR) .
Два типа задач
Первый тип — прямой анализ. Дана программа с конкретными числами в условии (например, s > 10 or t > 12). Нужно определить, сколько раз программа выведет «YES» или «NO» для заданного набора пар чисел .
Второй тип — задача с параметром. В условии есть переменная A, значение которой неизвестно. Требуется найти:
-
наибольшее или наименьшее целое значение
A; -
количество целых значений
A, при которых программа сработает определённое число раз .
Именно задачи с параметром встречаются в последние годы наиболее часто и вызывают основные трудности .
Алгоритм решения задачи с параметром
Рассмотрим типичный пример. Программа выводит «YES», если (s > 10) or (t > A). Известны 9 пар чисел. Нужно найти количество целых A, при которых «NO» выведется 3 раза .
Шаг 1. Определите условие вывода «NO». Если программа выводит «YES» при (s > 10) or (t > A), то «NO» она выведет при обратном условии: (s <= 10) and (t <= A). То есть оба условия должны выполняться одновременно.
Шаг 2. Отсейте пары, где первое условие не выполняется. В нашем примере пары с s > 10 (это (11, 2) и (11, 12)) никогда не дадут «NO». Остаётся 7 пар.
Шаг 3. Выпишите значения t из оставшихся пар. Например: 2, 12, −12, 12, 11, 10, 5.
Шаг 4. Найдите подходящий диапазон A. Условие t <= A должно выполняться ровно для 3 пар из 7. Отсортируйте значения t и определите, при каких A третье по счёту значение t будет удовлетворять условию.
Шаг 5. Ответьте на вопрос задачи. Если спрашивают количество значений — посчитайте целые числа в найденном диапазоне. Если наибольшее/наименьшее — возьмите границу диапазона .
Методы решения
Аналитический метод («от противного») — самый надёжный на экзамене. Вы логически преобразуете условие и работаете с числами вручную .
Графический метод — отмечаете значения t на числовой прямой и визуально определяете, где проходит граница A .
Программный метод — можно написать небольшую программу на Python, которая переберёт возможные значения A и посчитает результат. Однако на экзамене это отнимает время, поэтому аналитический метод предпочтительнее .
Типичные ошибки
-
Путаница с «И» и «ИЛИ». «NO» выводится, когда ложно исходное условие. Если в программе
or, то в условии «NO» будетand, и наоборот. -
Невнимательность со знаками. Если в условии
>, то при анализе «NO» будет<=(и наоборот). Знак влияет на включение граничного значения . -
Забывают про пары с
s > 10. Эти пары сразу исключаются из анализа, но о них легко забыть. -
Неверная интерпретация вопроса. «Количество целых значений» и «наибольшее целое значение» — это разные вопросы, требующие разных ответов .
Рекомендации по подготовке
Тренируйтесь на открытом банке заданий ФИПИ — там собраны сотни реальных задач этого типа . Начинайте с задач без параметра (прямой анализ), затем переходите к задачам с параметром. Отработайте оба варианта вопроса: и «количество значений», и «наибольшее/наименьшее значение».
Задание №6 требует не столько знания программирования, сколько внимательности и логического мышления. При системной подготовке его можно довести до автоматизма.
Автор: Евгений Морковин




0 комментариев
Оставьте комментарий
Комментарии