Задание №6 — Алгоритмы и программирование
Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык | Паскаль |
алг нач цел s, t, A ввод s ввод t ввод A если s > 10 или t > А то вывод "YES" иначе вывод "NO" все кон | var s, t, A: integer; begin readln(s); readln(t); readln(A); if (s > 10) or (t > А) then writeln('YES') else writeln('NO') end. |
Бейсик | Python |
DIM s, t, A AS INTEGER INPUT s INPUT t INPUT A IF s > 10 OR t > А THEN PRINT "YES" ELSE PRINT "NO" ENDIF | s = int(input()) t = int(input()) A = int(input()) if (s > 10) or (t > А): print("YES") else: print("NO") |
C++ | |
#include <iostream> using namespace std; int main(){ int s, t, A; cin >> s; cin >> t; cin >> A; if (s > 10 || t > А) 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).
Укажите количество целых значений параметра А, при которых для указанных входных данных программа напечатает «YES» семь раз.
Правильный ответ
3
Пояснение
Решение. Рассмотрим условие, при котором программа выводит «YES». В коде используется логическая операция OR (ИЛИ), значит, условие истинно, если выполняется хотя бы одно из двух условий: или .
Проанализируем первую часть условия: . Проверим все 9 пар чисел , чтобы узнать, в каких случаях программа точно выведет «YES» независимо от значения :
1) : — Ложь.
2) : — Истина (YES).
3) : — Ложь.
4) : — Истина (YES).
5) : — Ложь.
6) : — Ложь.
7) : — Ложь.
8) : — Ложь.
9) : — Ложь.
Мы видим, что благодаря первой части условия программа выводит «YES» в 2 случаях (пары 2 и 4). Чтобы всего было 7 запусков с результатом «YES», нам нужно, чтобы вторая часть условия () сработала ещё для 5 пар из оставшихся 7.
Выпишем значения для тех пар, где первое условие было ложным, в порядке убывания:
Пара (3):
Пара (6):
Пара (7):
Пара (8):
Пара (9):
Пара (1):
Пара (5):
Чтобы программа выдала «YES» ровно 7 раз, условие должно быть истинным для первых пяти значений из этого списка и ложным для шестого.
То есть должны выполняться неравенства:
1) Для пятого по величине значения:
2) Для шестого по величине значения:
Объединяя эти условия, получаем диапазон для целых чисел :
Целые значения , удовлетворяющие этому промежутку: .
Всего таких значений — 3.
Ответ: 3
Источник: ФИПИ