Вопрос:

type m, n, A: integer; begin readln(m); readln(n); readln(A); if (m > 10) or (n > A) then writeln('YES') else writeln('NO') end. Было проведено 9 запусков программы, при которых в качестве значений переменных m и n вводились следующие пары чисел: (1, 2); (11, 2); (1, 12); (11, 12); (−11, -12); (−11, 12); (-12, 11); (10, 10); (10, 5). Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа

Смотреть решения всех заданий с листа

Ответ:

Логика решения

Программа выводит 'YES', если выполняется условие (m > 10) ИЛИ (n > A). Иначе выводится 'NO'. Нам нужно найти наименьшее целое значение A, при котором для заданных пар (m, n) программа выведет 'YES'.

Проанализируем каждую пару (m, n) и условие (m > 10) or (n > A):

  • (1, 2): (1 > 10) — ложь. Чтобы условие было истинным, нужно, чтобы (2 > A) было истинным. Значит, A должно быть меньше 2.
  • (11, 2): (11 > 10) — истина. Условие выполняется независимо от значения A.
  • (1, 12): (1 > 10) — ложь. Чтобы условие было истинным, нужно, чтобы (12 > A) было истинным. Значит, A должно быть меньше 12.
  • (11, 12): (11 > 10) — истина. Условие выполняется независимо от значения A.
  • (-11, -12): (-11 > 10) — ложь. Чтобы условие было истинным, нужно, чтобы (-12 > A) было истинным. Значит, A должно быть меньше -12.
  • (-11, 12): (-11 > 10) — ложь. Чтобы условие было истинным, нужно, чтобы (12 > A) было истинным. Значит, A должно быть меньше 12.
  • (-12, 11): (-12 > 10) — ложь. Чтобы условие было истинным, нужно, чтобы (11 > A) было истинным. Значит, A должно быть меньше 11.
  • (10, 10): (10 > 10) — ложь. Чтобы условие было истинным, нужно, чтобы (10 > A) было истинным. Значит, A должно быть меньше 10.
  • (10, 5): (10 > 10) — ложь. Чтобы условие было истинным, нужно, чтобы (5 > A) было истинным. Значит, A должно быть меньше 5.

Мы ищем наименьшее целое значение A, при котором программа выводит 'YES' для всех пар. Это значит, что условие (m > 10) or (n > A) должно быть истинным для всех пар. Если для какой-то пары m > 10 ложно, то должно быть истинно n > A.

Рассмотрим пары, где m <= 10:

  • (1, 2): 2 > A. Требуется A < 2.
  • (-11, -12): -12 > A. Требуется A < -12.
  • (-11, 12): 12 > A. Требуется A < 12.
  • (-12, 11): 11 > A. Требуется A < 11.
  • (10, 10): 10 > A. Требуется A < 10.
  • (10, 5): 5 > A. Требуется A < 5.

Чтобы условие выполнялось для всех этих случаев, A должно быть меньше наименьшего значения из {2, -12, 12, 11, 10, 5}. Наименьшее из этих значений — -12. Следовательно, A должно быть меньше -12.

Однако, задача стоит найти наименьшее целое значение A, при котором для указанных входных данных программа выведет 'YES'.

Чтобы программа вывела 'YES' для всех пар, необходимо, чтобы для каждой пары либо m > 10, либо n > A. Если m > 10, условие выполняется.

Рассмотрим пары, где m <= 10:

  • (1, 2): m <= 10, поэтому нужно, чтобы n > A, т.е. 2 > A. Наибольшее целое A, удовлетворяющее этому, равно 1.
  • (-11, -12): m <= 10, поэтому нужно, чтобы n > A, т.е. -12 > A. Наибольшее целое A, удовлетворяющее этому, равно -13.
  • (-11, 12): m <= 10, поэтому нужно, чтобы n > A, т.е. 12 > A. Наибольшее целое A, удовлетворяющее этому, равно 11.
  • (-12, 11): m <= 10, поэтому нужно, чтобы n > A, т.е. 11 > A. Наибольшее целое A, удовлетворяющее этому, равно 10.
  • (10, 10): m <= 10, поэтому нужно, чтобы n > A, т.е. 10 > A. Наибольшее целое A, удовлетворяющее этому, равно 9.
  • (10, 5): m <= 10, поэтому нужно, чтобы n > A, т.е. 5 > A. Наибольшее целое A, удовлетворяющее этому, равно 4.

Для того чтобы программа выдавала 'YES' для всех пар, значение A должно удовлетворять всем этим условиям одновременно. То есть, A должно быть меньше или равно наименьшему из максимальных допустимых значений A для каждой пары. Это наименьшее значение равно 4 (из пары (10, 5)).

Если мы выберем A = 4, то:

  • (1, 2): 1 > 10 (ложь) И 2 > 4 (ложь) -> NO.

Это неверный подход. Задача стоит найти наименьшее целое значение A, при котором для указанных входных данных программа выведет 'YES'. Значит, мы ищем такое A, чтобы (m > 10) OR (n > A) было истинно для всех пар.

Если m > 10, то 'YES'. Есть пары, где m <= 10.

Для пар, где m <= 10, мы должны обеспечить n > A.

1. (1, 2): 1 <= 10. Нужно 2 > A. Наибольшее целое A: 1.

2. (-11, -12): -11 <= 10. Нужно -12 > A. Наибольшее целое A: -13.

3. (-11, 12): -11 <= 10. Нужно 12 > A. Наибольшее целое A: 11.

4. (-12, 11): -12 <= 10. Нужно 11 > A. Наибольшее целое A: 10.

5. (10, 10): 10 <= 10. Нужно 10 > A. Наибольшее целое A: 9.

6. (10, 5): 10 <= 10. Нужно 5 > A. Наибольшее целое A: 4.

Чтобы программа выдавала 'YES' для всех пар, A должно удовлетворять всем этим условиям: A <= 1, A <= -13, A <= 11, A <= 10, A <= 9, A <= 4.

Значит, A должно быть меньше или равно самому маленькому из этих верхних границ, то есть A <= -13.

Если A = -13, проверим:

  • (1, 2): 1 > 10 (ложь) И 2 > -13 (истина) -> YES.
  • (11, 2): 11 > 10 (истина) -> YES.
  • (1, 12): 1 > 10 (ложь) И 12 > -13 (истина) -> YES.
  • (11, 12): 11 > 10 (истина) -> YES.
  • (-11, -12): -11 > 10 (ложь) И -12 > -13 (истина) -> YES.
  • (-11, 12): -11 > 10 (ложь) И 12 > -13 (истина) -> YES.
  • (-12, 11): -12 > 10 (ложь) И 11 > -13 (истина) -> YES.
  • (10, 10): 10 > 10 (ложь) И 10 > -13 (истина) -> YES.
  • (10, 5): 10 > 10 (ложь) И 5 > -13 (истина) -> YES.

Все пары дают 'YES' при A = -13.

Задача найти наименьшее целое значение A, при котором для указанных входных данных программа выводит 'YES'.

Если мы хотим, чтобы программа всегда выводила 'YES', то для каждой пары (m, n) либо m > 10, либо n > A.

Рассмотрим пары, где m <= 10:

  • (1, 2): нужно 2 > A.
  • (-11, -12): нужно -12 > A.
  • (-11, 12): нужно 12 > A.
  • (-12, 11): нужно 11 > A.
  • (10, 10): нужно 10 > A.
  • (10, 5): нужно 5 > A.

Чтобы выполнялись все эти условия, A должно быть меньше наименьшего из правых частей неравенств: A < min(2, -12, 12, 11, 10, 5). То есть, A < -12.

Наименьшее целое значение A, удовлетворяющее A < -12, — это -13.

Ответ: -13

ГДЗ по фото 📸
Подать жалобу Правообладателю