В задании №9 ВПР по информатике для 8 класса вам даётся программа на
языке Pascal с условным оператором if. В условии
используются два сравнения для переменных
s и t, соединённые логическими операциями
and, or, not и скобками.
Ваша задача — определить, для каких из 5 заданных пар чисел программа выведет "NO" или "YES". Внимательно читайте вопрос — в каждом варианте задания требуется найти пары для одного из этих ответов.
Программа может быть представлена на одном из четырёх языков: Pascal, Python, C++ или алгоритмическом языке. Во всех вариантах выполняются одни и те же действия: вводят два целых числа, проверяют составное условие и выводят результат.
Pascal:
var s, t: integer;
begin
readln(s);
readln(t);
if (условие)
then
writeln("YES")
else
writeln("NO")
end.
Python:
s = int(input())
t = int(input())
if (условие):
print("YES")
else:
print("NO")
C++:
int s, t;
cin >> s >> t;
if ((условие))
cout << "YES" << endl;
else
cout << "NO" << endl;
Алгоритмический язык:
алг
нач
цел s, t
ввод s, t
если (условие)
то вывод "YES"
иначе вывод "NO"
все
кон
Если условие истинно — программа печатает
"YES".
Если условие ложно — программа печатает
"NO".
| Оператор | Название | Пример | Значение |
|---|---|---|---|
< |
Меньше | 5 < 10 |
истина |
> |
Больше | 5 > 10 |
ложь |
<= |
Меньше или равно | 10 <= 10 |
истина |
>= |
Больше или равно | 5 >= 10 |
ложь |
= |
Равно | 5 = 5 |
истина |
<> |
Не равно | 5 <> 10 |
истина |
| Операция | Название | Результат истинен, когда... |
|---|---|---|
A and B |
И (конъюнкция) | оба операнда истинны |
A or B |
ИЛИ (дизъюнкция) | хотя бы один операнд истинен |
not A |
НЕ (отрицание) | операнд ложен |
not (отрицание) — самый высокий
приоритет
and (конъюнкция)or (дизъюнкция) — самый низкий
приоритет
| A | B | A and B |
|---|---|---|
| истина | истина | истина |
| истина | ложь | ложь |
| ложь | истина | ложь |
| ложь | ложь | ложь |
| A | B | A or B |
|---|---|---|
| истина | истина | истина |
| истина | ложь | истина |
| ложь | истина | истина |
| ложь | ложь | ложь |
| A | not A |
|---|---|
| истина | ложь |
| ложь | истина |
Для систематического решения задачи удобно составить таблицу истинности, в которой для каждой пары чисел записываются значения двух сравнений, а затем результат логического выражения.
Пример таблицы:
Условие: (s < 10) or (t > 10)
| № | Пара (s, t) | A = (s < 10) |
B = (t > 10) |
A or B | Вывод |
|---|---|---|---|---|---|
| 1 | (15, 9) | 0 | 0 | 0 | NO ✓ |
| 2 | (5, 11) | 1 | 1 | 1 | YES |
| 3 | (18, 15) | 0 | 1 | 1 | YES |
| 4 | (10, 9) | 0 | 0 | 0 | NO ✓ |
| 5 | (–4, 5) | 1 | 0 | 1 | YES |
Ответ: пары с результатом 0 → номера 1 и 4 → ответ 14
Пример с операцией not:
Условие: not ((s > 0) and (t < 5))
| № | Пара (s, t) | A = (s > 0) |
B = (t < 5) |
A and B | not(A and B) | Вывод |
|---|---|---|---|---|---|---|
| 1 | (–2, 3) | 0 | 1 | 0 | 1 | YES |
| 2 | (10, 2) | 1 | 1 | 1 | 0 | NO ✓ |
| 3 | (5, 8) | 1 | 0 | 0 | 1 | YES |
| 4 | (1, 1) | 1 | 1 | 1 | 0 | NO ✓ |
| 5 | (0, 4) | 0 | 1 | 0 | 1 | YES |
Ответ: пары с результатом 0 → номера 2 и 4 → ответ 24
and: если хотя бы одна часть ложна,
результат — ложь ("NO")
or: если хотя бы одна часть истинна,
результат — истина ("YES")
not инвертирует результат: истина становится ложью, и
наоборот
14 или 235