Решение: Анализ условного оператора
Ниже приведена программа, записанная на пяти языках программирования. Программа вводит целые числа $s$, $t$ и параметр $A$, после чего выводит «YES», если выполняется условие $(s > A) \lor (t > 11)$, и «NO» в противном случае.
Было проведено 9 запусков программы, при которых в качестве значений переменных $s$ и $t$ вводились следующие пары чисел: $(-9, 11)$; $(2, 7)$; $(5, 12)$; $(2, -2)$; $(7, -9)$; $(12, 6)$; $(9, -1)$; $(7, 11)$; $(11, -5)$.
Укажите наибольшее целое значение параметра $A$, при котором для указанных входных данных программа напечатает «NO» пять раз.
Решение по шагам
5 шаговПрограмма печатает «NO», если условие вывода «YES» ложно:
$$(s > A) \lor (t > 11) = \mathrm{false}$$Следовательно, для вывода «NO» должны одновременно выполняться условия:
$$s \leq A \quad \text{и} \quad t \leq 11$$Пара $(5, 12)$ не даёт «NO», так как $t = 12 > 11$. Для остальных пар значения $s$ имеют вид $-9, 2, 2, 7, 7, 9, 11, 12$.
Чтобы «NO» было выведено ровно пять раз, подходят пять наименьших значений $s$: $-9, 2, 2, 7, 7$. Поэтому $A$ должен удовлетворять условию $7 \leq A < 9$.
Наибольшее целое значение параметра:
$$A = 8$$Где здесь ошибаются
Учитывают только условие $s \leq A$ и забывают исключить пару $(5, 12)$.
Считают случаи с $s > A$, хотя при них программа печатает «YES».
Берут $A = 9$, не замечая, что тогда пара $(9, -1)$ также даёт «NO», и всего получается шесть таких запусков.