Контрольные задания > 10. Ниже приведена программа, записанная на трех языках программирования.
Было проведено 9 запусков программы, при которых в качестве значений переменных я и вводились следующие пары чисел:
(13, 2); (11, 12); (-12, 12); (2, 2); (-10, -10); (6, −5); (2, 8); (9, 10); (1, 13).
Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» четыре раза.
Вопрос:
10. Ниже приведена программа, записанная на трех языках программирования.
Было проведено 9 запусков программы, при которых в качестве значений переменных я и вводились следующие пары чисел:
(13, 2); (11, 12); (-12, 12); (2, 2); (-10, -10); (6, −5); (2, 8); (9, 10); (1, 13).
Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» четыре раза.
Ответ:
Задача 10: Анализ программы и входных данных.
Программа выводит "YES", если выполнено условие: `s > A` или `t > 12`.
Нам нужно найти такое минимальное целое `A`, чтобы программа вывела "YES" ровно 4 раза для заданных пар (s, t).
Перебираем пары и смотрим, при каких `A` будет выведено "YES":
1. (13, 2): `13 > A` или `2 > 12` (ложно). Вывод "YES", если `13 > A`.
2. (11, 12): `11 > A` или `12 > 12` (ложно). Вывод "YES", если `11 > A`.
3. (-12, 12): `-12 > A` или `12 > 12` (ложно). Вывод "YES", если `-12 > A`.
4. (2, -2): `2 > A` или `-2 > 12` (ложно). Вывод "YES", если `2 > A`.
5. (-10, -10): `-10 > A` или `-10 > 12` (ложно). Вывод "YES", если `-10 > A`.
6. (6, -5): `6 > A` или `-5 > 12` (ложно). Вывод "YES", если `6 > A`.
7. (2, 8): `2 > A` или `8 > 12` (ложно). Вывод "YES", если `2 > A`.
8. (9, 10): `9 > A` или `10 > 12` (ложно). Вывод "YES", если `9 > A`.
9. (1, 13): `1 > A` или `13 > 12` (истинно). Вывод "YES" всегда.
Пара (1, 13) всегда дает "YES". Нам нужно, чтобы еще 3 пары дали "YES".
Чтобы было 4 вывода "YES", нужно чтобы хотя бы три условия из следующих были выполнены:
`13 > A`, `11 > A`, `-12 > A`, `2 > A`, `-10 > A`, `6 > A`, `2 > A`, `9 > A`.
Упорядочим s значения по убыванию: 13, 11, 9, 6, 2, 2, -10, -12, 1.
Нам нужно выбрать минимальное `A` такое, чтобы как минимум 3 числа из списка были больше `A`.
Если A = 10, то `13 > 10`, `11 > 10`, `9 > 10` - ровно 3 пары удовлетворяют условию, плюс пара (1,13), итого 4.
Если A < 10, например, 9, то `13 > 9`, `11 > 9`, `9 > 9` - не подходит, так как `9>9` ложно.
Проверим, нужно ли брать меньше `A`.
Если A=6, то `13>6`, `11>6`, `9>6`, `6>6` - тоже не подходит.
При A=10, первые три пары (13,2), (11,12), (9,10) дадут YES. И еще одна пара (1,13) всегда дает YES.
Таким образом, минимальное целое значение `A = 10`.
Ответ: 10