В этих заданиях на условный оператор все достаточно просто, если стоят конкретные условия, например, s > 10 или t > 11, то находим пары, для которых хотя бы одно условие выполняется. Тогда программа печатает «Да». Если вместо союза «Или» стоит союз «И», то программа печатает «Да», если выполняются оба условия. Сложнее выполнить поиск, если задание с параметром А. Рассмотрим такие примеры.
1. Ниже приведена программа, записанная на пяти языках программирования.
Бейсик |
Python |
DIM s, t, A AS INTEGER
|
s = int(input())
|
Паскаль |
Алгоритмический язык |
var s,t,A: integer;
|
алг
|
С++ |
|
#include <iostream>
|
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(1, 2); (11, 2); (1, 12); (11, 12); (−11, −12); (−11, 12); (−12, 11); (10, 10); (10, 5).
Укажите количество целых значений параметра A, при которых для указанных входных данных программа напечатает «NO» три раза.
Решение. Необходимо указать количество целых значений параметра А, при которых для указанных входных данных программа напечатает «NO» три раза. Т.к. было 9 запусков программы, то «YES» программа должна напечатать 6 раз.
Заметим, что программа напечатает «YES», если переменная s будет больше 10 или переменная t будет больше А.
Условие s > 10 (s - первое вводимое число) выполняется для двух пар: 2-й (11,2) и 4-й (11,12). Таким образом, надо найти такое значение параметра А, при котором программа напечатает «YES» еще 4 раза, т.е. условие t > A выполнится всего 4 раза.
Построим координатную прямую и на этой прямой отметим все значения переменной t из всех пар, кроме уже выбранных (11,2), (11,12).
Видим, что число 12 встречается 2 раза, 11 - 1 раз, 10 - 1 раз. Итого 4 раза. Значит, А надо выбрать числа от 5 до 9. Это числа 5,6,7,8,9. Всего 5 значений.
Проверяем:
например, А=5. Тогда результат выполнения программы будет следующий:
1 пара: 2>5 - нет, 3 пара: 12>5 - да, 5 пара: -12>5 - нет, 6 пара 12>5 - да, 7 пара: 11>5 - да, 8 пара: 10>5 - да, 5>5 - нет. Аналогично проверяется выполнение программы, если А = 6,7,8,9. Программа напечатает «YES». Если взять значение для параметра А меньше 5, т.е.4, то «YES» будет напечатано еще 1 раз для пары (10,5). Если взять А=10, то для пары (10,10) будет напечатано «NO». Таким образом, ответ в задаче 5.
Ответ: 5.
Если в задании надо указать наибольшее число, то его выбираем из промежутка от 5 до 10: наибольшее - 9. 10 нельзя брать, т.к. «мы 10 посчитали». Если наименьшее, то 5.
2. Ниже приведена программа, записанная на трех языках программирования.
Алгоритмический язык |
Python |
Паскаль |
алг
|
s = int(input())
|
var A, s, t: integer;
|
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(13, 2); (11, 12); (−12, 12); (2, −2); (-10, -10); (6, −5); (2, 8); (9, 10); (1, 13).
Укажите наименьшее целое значение параметра A, при котором для указанных входных данных программа напечатает «YES» четыре раза.
Решение. Считаем сначала пары, для которых программа напечатает «YES» по переменной t. Надо, чтобы t было больше 12.
(13, 2) -нет; (11, 12) -нет; (−12, 12)-нет; (2, −2)-нет; (-10, -10) -нет; (6, −5)-нет; (2, 8) -нет; (9, 10) -нет; (1, 13) - да. Значит, надо найти такое значение параметра A, для которого программа напечатает «YES» еще 3 раза.
Проверяем: если стоит условие s > 6 «YES» программа напечатает для пар (13, 2); (11, 12); (9, 10). Итого 4 раза. Можно взять 7. Будет напечатано «YES» 4 раза, но это число будет не наименьшим. Итак, ответ: 6.
Примеры для самостоятельного решения
1. Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык |
Python |
алг
|
s = int(input())
|
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(-9, 11); (2, 7); (5, 12); (2, -2); (7, -9); (12, 6); (9, -1); (7, 11); (11, -5).
Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» четыре раза. (Ответ: 7).
2. Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык |
Python |
алг
|
s = int(input())
|
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(-9, 11); (2, 7); (5, 12); (2, -2); (7, -9); (12, 6); (9, -1); (7, 11); (11, -5).
Укажите наибольшее целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» три раза. (Ответ: 10).
3. Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык | Python |
алг
|
s = int(input())
|
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(13, 2); (11, 12); (-12, 12); (2, -2); (-10, -10); (6, -5); (2, 8); (9, 10); (1, 13).
Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «NO» семь раз. (Ответ: 11).
4. Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык | Python |
алг
|
s = int(input())
|
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(1, 2); (11, 2); (1, 12); (11, 12); (-11, -12); (-11, 12); (-12, 11); (10, 10); (10, 5).
Укажите целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» четыре раза. (Ответ: 11).