Решение: Анализ условного оператора
Ниже приведена программа, записанная на пяти языках программирования. Программа вводит целые значения переменных $s$, $t$ и $A$ и выводит «YES», если выполняется условие $s > A$ или $t > 12$, иначе выводит «NO».
Было проведено 9 запусков программы, при которых в качестве значений переменных $s$ и $t$ вводились следующие пары чисел: $(13, 2)$; $(11, 12)$; $(-12, 12)$; $(2, -2)$; $(-10, -10)$; $(6, -5)$; $(2, 8)$; $(9, 10)$; $(1, 13)$.
Найдите наибольшее целое значение параметра $A$, при котором для указанных входных данных программа напечатает «YES» три раза.
Решение по шагам
4 шагаДля пары $(1, 13)$ условие $t > 12$ выполняется, поэтому программа выводит «YES» при любом значении $A$.
В остальных восьми парах значение $t$ не превышает $12$. Поэтому программа выводит «YES» только при выполнении условия $s > A$.
Значения $s$ для этих восьми запусков: $13$, $11$, $-12$, $2$, $-10$, $6$, $2$, $9$. Чтобы получить ещё два вывода «YES», нужно, чтобы условию $s > A$ соответствовали два наибольших значения: $13$ и $11$.
Для двух таких значений должно выполняться $11 > A$, а для максимального целого значения параметра получаем $A = 10$.
Где здесь ошибаются
Не учитывать, что при $t > 12$ программа выводит «YES» независимо от значения $A$.
Считать условие $s > A$ как $s \geq A$.
Выбирать значение $A = 11$, при котором только $s = 13$ даёт «YES».