Задание предполагает анализ программы с условным оператором и определение количества запусков, при которых программа выведет заданное значение. Рассмотрим решение на примерах. Программа представлена на языке Python, но принципы решения применимы к большинству языков программирования.
Пример 1: Вывод «yes»
Программа использует две переменные, s и t, вводимые пользователем. Условие вывода «yes»: s > 12 or t > 12. Это логическое выражение с оператором or; «yes» выводится, если хотя бы одно условие истинно.
Проверим пары чисел:
- (1, 13): 1 > 12 — ложно, 13 > 12 — истинно. Выводится «yes».
- (14, 1): 14 > 12 — истинно. Выводится «yes».
- (1, 12): 1 > 12 — ложно, 12 > 12 — ложно. Выводится «no».
- (11, 12): 11 > 12 — ложно, 12 > 12 — ложно. Выводится «no».
- (-14, -14): Оба условия ложны. Выводится «no».
- (-11, 13): -11 > 12 — ложно, 13 > 12 — истинно. Выводится «yes».
- (-4, 11): Оба условия ложны. Выводится «no».
- (2, 9): Оба условия ложны. Выводится «no».
- (8, 6): Оба условия ложны. Выводится «no».
Программа выведет «yes» в трёх запусках.
Пример 2: Вывод «no»
Условие вывода «no»: s > 8 or t > 8. Программа выведет «no», только если оба условия ложны. Это эквивалентно условию: s ≤ 8 and t ≤ 8.
Проверим пары чисел:
- (8, 8): Условие выполняется. Выводится «no».
- (9, 4): Условие не выполняется. Выводится «yes».
- (4, 7): Условие выполняется. Выводится «no».
- (6, 6): Условие выполняется. Выводится «no».
- (-9, -2): Условие выполняется. Выводится «no».
- (-5, 9): Условие не выполняется. Выводится «yes».
- (10, 10): Условие не выполняется. Выводится «yes».
- (9, 10): Условие не выполняется. Выводится «yes».
- (10, 9): Условие не выполняется. Выводится «yes».
Программа выведет «no» в четырёх запусках.
Пример 3: Оператор «and»
Условие вывода «yes»: s > 5 and t > 5. Оператор and требует выполнения обоих условий.
Проверим пары чисел:
- (6, 8): Условие выполняется. Выводится «yes».
- (3, 2): Условие не выполняется. Выводится «no».
- (-7, 1): Условие не выполняется. Выводится «no».
- (7, 7): Условие выполняется. Выводится «yes».
- (9, 8): Условие выполняется. Выводится «yes».
- (-1, -1): Условие не выполняется. Выводится «no».
- (-4, 3): Условие не выполняется. Выводится «no».
- (6, 9): Условие выполняется. Выводится «yes».
- (2, -1): Условие не выполняется. Выводится «no».
Программа выведет «yes» в четырёх запусках.
Пример 4: Целочисленное деление
Условие вывода «yes»: s // 2 == k, где k — второе число в паре. // обозначает целочисленное деление.
Проверим пары чисел:
- (1, 1): 1 // 2 == 1 — ложно. Выводится «no».
- (8, 4): 8 // 2 == 4 — истинно. Выводится «yes».
- (14, 10): 14 // 2 == 10 — ложно. Выводится «no».
- (20, 1): 20 // 2 == 1 — ложно. Выводится «no».
- (7, 3): 7 // 2 == 3 — истинно. Выводится «yes».
- (10, 5): 10 // 2 == 5 — истинно. Выводится «yes».
- (10, 2): 10 // 2 == 2 — ложно. Выводится «no».
- (4, 1): 4 // 2 == 1 — истинно. Выводится «yes».
- (1, 0): 1 // 2 == 0 — истинно. Выводится «yes».
Программа выведет «yes» в четырёх запусках.
Пример 5: Наименьшее значение параметра
Программа использует три переменные: s, t, и a. Условие вывода «no»: s ≤ a and t ≤ 12. Необходимо найти наименьшее целое значение a, при котором программа выведет «no» восемь раз.
В восьми парах значение t меньше или равно 12. Чтобы программа вывела «no» во всех восьми случаях, необходимо, чтобы s ≤ a также выполнялось. Максимальное значение s среди этих восьми пар равно 13. Поэтому наименьшее целое значение a, при котором условие выполнится во всех восьми случаях, равно 13.
Приведённые примеры иллюстрируют анализ программ с условными операторами и определение количества запусков, приводящих к нужному результату. Понимание логических операторов (or, and) и условий программы является ключевым.