Прием решения задания №6 ОГЭ по информатике «Программа с условным оператором с параметром А»

Разделы: Информатика


В этих заданиях на условный оператор все достаточно просто, если стоят конкретные условия, например, s > 10 или t > 11, то находим пары, для которых хотя бы одно условие выполняется. Тогда программа печатает «Да». Если вместо союза «Или» стоит союз «И», то программа печатает «Да», если выполняются оба условия. Сложнее выполнить поиск, если задание с параметром А. Рассмотрим такие примеры.

1. Ниже приведена программа, записанная на пяти языках программирования.

Бейсик

Python

DIM s, t, A AS INTEGER
INPUT s
INPUT t
INPUT A
IF s > 10 OR t > A THEN
PRINT "YES"
ELSE
PRINT "NO"
ENDIF

s = int(input())
t = int(input())
A = int(input())
if (s > 10) or (t > A):
print("YES")
else:
print("NO")

Паскаль

Алгоритмический язык

var s,t,A: integer;
begin
readln(s);
readln(t);
readln(A);
if (s > 10) or (t > A)
then
writeln ('YES')
else
writeln ('NO')
end.

алг
нач
цел s, t, A
ввод s
ввод t
ввод A
если s > 10 или t > A
то вывод "YES"
иначе вывод "NO"
все
кон

С++

#include <iostream>
using namespace std;
int main() {
int s, t, A;
cin >> s;
cin >> t;
cin >> A;
if(s > 10) || (t > A)
cout << "YES" << endl;
else
cout << "NO" << endl;
return 0;
}

Было проведено 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, t, A
ввод s
ввод t
ввод A
если s > A или t > 12
то вывод "YES"
иначе вывод "NO"
все
кон

s = int(input())
t = int(input())
A = int(input())
if (s>A) or t > 12:
print("YES")
else:
print("NO")

var A, s, t: integer;
begin
readln(s);
readln(t);
readln(A);
if (s > A) or (t > 12)
then writeln('YES')
else writeln('NO')
end.

Было проведено 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, t, A
ввод s
ввод t
ввод A
если s > А или t > 11
то вывод "YES"
иначе вывод "NO"
все
кон

s = int(input())
t = int(input())
A = int(input())
if (s > А) or (t > 11):
print("YES")
else:
print("NO")

Было проведено 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, t, A
ввод s
ввод t
ввод A
если s > А или t > 11
то вывод "YES"
иначе вывод "NO"
все
кон

s = int(input())
t = int(input())
A = int(input())
if (s > А) or (t > 11):
print("YES")
else:
print("NO")

Было проведено 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, t, A
ввод s
ввод t
ввод A
если s > A или t > 12
то вывод "YES"
иначе вывод "NO"
все
кон

s = int(input())
t = int(input())
A = int(input())
if (s > A) or (t > 12):
print("YES")
else:
print("NO")

Было проведено 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, t, A
ввод s
ввод t
ввод A
если s > 10 или t > А
то вывод "YES"
иначе вывод "NO"
все
кон

s = int(input())
t = int(input())
A = int(input())
if (s > 10) or (t > А):
print("YES")
else:
print("NO")

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:

(1, 2); (11, 2); (1, 12); (11, 12); (-11, -12); (-11, 12); (-12, 11); (10, 10); (10, 5).

Укажите целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» четыре раза. (Ответ: 11).