Тип 6 № 18036
Ниже приведена программа, записанная на пяти языках программирования.
Бейсик | Python |
DIM s, t, A AS INTEGER INPUT s INPUT t INPUT A IF s A OR t 12 THEN PRINT "YES" ELSE PRINT "NO" ENDIF | s = int(input()) t = int(input()) A = int(input()) if (s A) or (t 12): print("YES") else: print("NO") |
Паскаль | Алгоритмический язык |
var s,t,A: integer; begin readln(s); readln(t); readln(A); if (s A) or (t 12) then writeln ('YES') else writeln ('NO') end. | алг нач цел s, t, A ввод s ввод t ввод A если s A или t 12 то вывод "YES" иначе вывод "NO" все кон |
С++ |
#include using namespace std; int main() { int s, t, A; cin s; cin t; cin A; if(s A) or (t 12) cout |
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(13, 2); (11, 12); (–12, 12); (2, –2); (–10, –10); (6, –5); (2, 8); (9, 10); (1, 13).
Укажите наименьшее целое значение параметра A, при котором для указанных входных данных программа напечатает «NO» восемь раз.
Решение.
Заметим, что программа напечатает «NO», если переменная t будет меньше или равна 12, а переменная s будет меньше или равна А.
Из первой части условия получаем, что при вводе значений s и t (1, 13) программа напечатает «YES» вне зависимости от значения A. При отрицательных значениях A программа будет выводить «YES» больше одного раза.
Заметим, что при A = 1 программа напечатает «NO» два раза, при 2 ≤ A ≤ 5 программа напечатает «NO» четыре раза, при 6 ≤ A ≤ 8 программа напечатает «NO» пять раз, при 9 ≤ A ≤ 10 программа будет печатать «NO» шесть раз, при 11 ≤ A ≤ 12 программа будет печатать «NO» семь раз, а при A = 13 программа будет печатать «NO» восемь раз. Таким образом, ответ — 13.
Ответ: 13.
Приведем другое решение на языке Python.
def f(s, t, A): if (s A) or (t 12): return 0 else: return 1 a = ((13, 2), (11, 12), (-12, 12), (2, -2), (-10, -10), (6, -5), (2, 8), (9, 10), (1, 13)) kol = 0 for A in range(100): count = 0 for i in range(9): count += f(a[i][0], a[i][1], A) if count == 8: print(A) break
Примечание.
1. Другой способ решения и правила замены логических условий на противоположные приведены в задании 10955.
2. Логический оператор «OR» в процессе выполнения принимает значение «true», если x или y равен true; в противном случае — «false»
Источники:
ОГЭ по информатике 2020. Досрочная волна. Вариант 2;
ОГЭ по информатике 30.05.2023. Основная волна. Вариант 2307;
Демонстрационная версия ОГЭ—2025 по информатике.