Задание 6 ОГЭ по информатике: исполнение программы с условием

Задание 6 ОГЭ по информатике показывает короткую программу с условием и девять пар входных чисел. Нужно посчитать, сколько раз программа напечатает YES или NO, или подобрать параметр A, при котором ответов YES будет заданное число. Каждую пару проверяют по условию, как это сделал бы компьютер.

Как решать

В экзаменационном варианте одна и та же программа записана на пяти языках: алгоритмическом языке, Паскале, Бейсике, Python и C++. Достаточно прочитать её на знакомом языке.

Шаг 1. Выпишите условие отдельно, например «s > 8 и t ≤ 5». Отметьте, что соединяет части: «и» (and, &&) требует выполнения обеих, «или» (or, ||) — хотя бы одной.

Шаг 2. Пройдите по девяти парам и для каждой поставьте плюс или минус. Для «и» удобно сначала проверить более редкую часть: если она ложна, вторую можно не смотреть.

Шаг 3. Посчитайте плюсы. Если спрашивают про NO, считайте минусы.

Если в программе есть параметр A, разделите пары на две группы. Для одних ответ не зависит от A (например, при «или» вторая часть уже истинна). Для остальных ответ решается сравнением с A. Посчитайте, сколько YES дают пары первой группы, сколько ещё нужно, и найдите промежуток значений A, при котором добирается ровно столько. Из промежутка возьмите число, которое просят: наименьшее или наибольшее.

Внимательнее со знаками: s > 8 не выполняется при s = 8, а t <= 5 выполняется при t = 5.

Примеры с решением

Пример 1

Дана программа:

s = int(input())
t = int(input())
if s > 8 and t <= 5:
    print('YES')
else:
    print('NO')

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (9, 5); (8, 5); (10, 6); (12, −3); (3, 1); (9, 9); (15, 0); (−9, 4); (11, 5). Сколько было запусков, при которых программа напечатала «YES»?

Проверка ответа на Python

# Задание 6 ОГЭ, пример 1: сколько раз программа напечатает YES


def program(s, t):
    if s > 8 and t <= 5:
        return "YES"
    return "NO"


runs = [(9, 5), (8, 5), (10, 6), (12, -3), (3, 1), (9, 9), (15, 0), (-9, 4), (11, 5)]
print(sum(program(s, t) == "YES" for s, t in runs))

Ответ: 4

Нужно одновременно s > 8 и t ≤ 5. Подходят (9, 5), (12, −3), (15, 0), (11, 5). Пара (8, 5) не подходит: 8 не больше 8. Пары (10, 6) и (9, 9) не подходят по t, пары (3, 1) и (−9, 4) — по s. Итого 4.

Пример 2

Дана программа:

s = int(input())
t = int(input())
A = int(input())
if s > A or t > 10:
    print('YES')
else:
    print('NO')

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (1, 11); (5, 2); (12, 3); (9, 12); (7, 7); (10, 1); (4, 15); (−2, 8); (6, 10). Укажите наименьшее целое значение параметра A, при котором для указанных входных данных программа напечатает «YES» ровно четыре раза.

Проверка ответа на Python

# Задание 6 ОГЭ, пример 2: наименьшее целое A, при котором YES будет ровно 4 раза


def program(s, t, A):
    if s > A or t > 10:
        return "YES"
    return "NO"


runs = [(1, 11), (5, 2), (12, 3), (9, 12), (7, 7), (10, 1), (4, 15), (-2, 8), (6, 10)]
good = [A for A in range(-100, 101) if sum(program(s, t, A) == "YES" for s, t in runs) == 4]
print(min(good))

Ответ: 10

При t > 10 программа печатает YES при любом A: это пары (1, 11), (9, 12), (4, 15), три раза. Нужен ещё ровно один YES от остальных пар, где решает условие s > A. Значения s у них: 5, 12, 7, 10, −2, 6. Чтобы больше A было только 12, нужно 10 ≤ A < 12. Наименьшее такое A — 10. При A = 9 больше A станут 12 и 10, и YES будет пять раз.

Пример 3

Дана программа:

s = int(input())
t = int(input())
if s >= 10 or t > 10:
    print('YES')
else:
    print('NO')

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (4, 10); (12, 3); (10, 11); (7, 7); (−3, 15); (10, 10); (0, −20); (15, 15); (9, 11). Сколько было запусков, при которых программа напечатала «NO»?

Проверка ответа на Python

# Задание 6 ОГЭ, пример 3: сколько раз программа напечатает NO


def program(s, t):
    if s >= 10 or t > 10:
        return "YES"
    return "NO"


runs = [(4, 10), (12, 3), (10, 11), (7, 7), (-3, 15), (10, 10), (0, -20), (15, 15), (9, 11)]
print(sum(program(s, t) == "NO" for s, t in runs))

Ответ: 3

NO печатается, когда обе части «или» ложны: s < 10 и t ≤ 10. Так выходит у пар (4, 10), (7, 7), (0, −20). Пара (10, 10) даёт YES, потому что знак s >= 10 нестрогий, а пара (9, 11) — потому что 11 > 10. Ответ 3.

Типичные ошибки

Потренироваться на тренажёре

Частые вопросы

На каком языке будет программа в задании 6?

В демоверсии программа записана сразу на пяти языках: алгоритмическом языке, Паскале, Бейсике, Python и C++. Логика во всех записях одинаковая, читать можно на любом из них.

Нужно ли уметь программировать, чтобы решить задание 6?

Достаточно понимать условие if с операциями «и», «или» и знаки сравнения. Программа не запускается: каждую пару вы проверяете вручную.

Что делать, если подходящих значений A несколько?

Прочитайте вопрос: обычно просят наименьшее или наибольшее значение. Найдите промежуток подходящих A и возьмите нужный край.

Официальные материалы

Другие задания

Все задания и структура экзамена — на странице ОГЭ по информатике. Соседние разборы: задание 5 и задание 7.

Описание задания сверено 28 сентября 2026 года со спецификацией 2027 года (документы 2027 года). Примеры составлены нами по структуре демоверсии, каждое решение запущено, и напечатанный им ответ совпадает с ответом на странице. Кодолимп не связан с разработчиками экзамена. Заметили неточность — напишите нам.