В задании 6 ОГЭ вам предлагается проанализировать программу, записанную на одном из языков программирования (обычно Pascal или Python), и определить:
Программы в этом задании обычно содержат простые условные операторы с операциями сравнения и логическими связками.
| Операция | Pascal | Python | Пример |
|---|---|---|---|
| Сложение | + |
+ |
5 + 3 = 8 |
| Вычитание | - |
- |
5 - 3 = 2 |
| Умножение | * |
* |
5 * 3 = 15 |
| Деление (целочисленное) | div |
// |
17 div 5 = 3 |
| Остаток от деления | mod |
% |
17 mod 5 = 2 |
| Модуль числа | abs(x) |
abs(x) |
abs(-5) = 5 |
| Операция | Pascal | Python | Пример |
|---|---|---|---|
| Равно | = |
== |
5 = 5 → true |
| Не равно | <> |
!= |
5 <> 3 → true |
| Больше | > |
> |
5 > 3 → true |
| Меньше | < |
< |
3 < 5 → true |
| Больше или равно | >= |
>= |
5 >= 5 → true |
| Меньше или равно | <= |
<= |
3 <= 5 → true |
| Операция | Pascal | Python | Описание |
|---|---|---|---|
| И (логическое умножение) | and |
and |
true, если оба условия истинны |
| ИЛИ (логическое сложение) | or |
or |
true, если хотя бы одно условие истинно |
| НЕ (отрицание) | not |
not |
инвертирует значение |
Дана программа и набор пар входных данных. Нужно определить, сколько раз программа выведет «YES».
Дана программа и набор пар входных данных. Нужно определить, сколько раз программа выведет «NO». Это количество равно: 10 минус количество «YES».
Дана программа с параметром A и набор входных данных. Нужно найти значение A, при котором программа выведет «YES» ровно N раз.
ifУсловие:
s = int(input()) t = int(input()) if s % 7 == t: print('YES') else: print('NO')
Попробуйте решить сами:
Нажмите на пару чисел, чтобы отметить её как YES (зелёный) или NO (красный). Повторный клик переключает состояние.
💡 Подсказка: условие s % 7 == t проверяет, равен ли
остаток от деления s на 7 значению t.
s mod 7 = t (остаток от деления s на 7 равен
t)| № | s | t | s mod 7 | s mod 7 = t? | Вывод |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 1 = 1 ✓ | YES |
| 2 | 1 | 2 | 1 | 1 ≠ 2 ✗ | NO |
| 3 | 3 | 2 | 3 | 3 ≠ 2 ✗ | NO |
| 4 | 3 | 3 | 3 | 3 = 3 ✓ | YES |
| 5 | 7 | 0 | 0 | 0 = 0 ✓ | YES |
| 6 | 7 | 2 | 0 | 0 ≠ 2 ✗ | NO |
| 7 | 10 | 0 | 3 | 3 ≠ 0 ✗ | NO |
| 8 | 10 | 7 | 3 | 3 ≠ 7 ✗ | NO |
| 9 | 11 | 4 | 4 | 4 = 4 ✓ | YES |
| 10 | 12 | 5 | 5 | 5 = 5 ✓ | YES |
Условие:
s = int(input()) t = int(input()) if (abs(s) < 3) or (abs(t) < 3): print('YES') else: print('NO')
Попробуйте решить сами:
Нажмите на пару чисел, чтобы отметить её как YES (зелёный) или NO (красный). Повторный клик переключает состояние.
💡 Подсказка: условие
(abs(s) < 3) or (abs(t) < 3) истинно, если хотя бы одно
из чисел по модулю меньше 3.
(abs(s) < 3) or (abs(t) < 3)| № | s | t | abs(s) < 3? | abs(t) < 3? | OR? | Вывод |
|---|---|---|---|---|---|---|
| 1 | 1 | 3 | ✓ (1<3) | ✗ (3≥3) | ✓ | YES |
| 2 | 2 | 3 | ✓ (2<3) | ✗ (3≥3) | ✓ | YES |
| 3 | 3 | 4 | ✗ (3≥3) | ✗ (4≥3) | ✗ | NO |
| 4 | 4 | 5 | ✗ (4≥3) | ✗ (5≥3) | ✗ | NO |
| 5 | 1 | –2 | ✓ (1<3) | ✓ (2<3) | ✓ | YES |
| 6 | 1 | –3 | ✓ (1<3) | ✗ (3≥3) | ✓ | YES |
| 7 | 5 | –5 | ✗ (5≥3) | ✗ (5≥3) | ✗ | NO |
| 8 | –2 | 2 | ✓ (2<3) | ✓ (2<3) | ✓ | YES |
| 9 | –3 | 3 | ✗ (3≥3) | ✗ (3≥3) | ✗ | NO |
| 10 | –4 | 4 | ✗ (4≥3) | ✗ (4≥3) | ✗ | NO |
Условие:
s = int(input()) t = int(input()) if s % 7 == t: print('YES') else: print('NO')
Вопрос: Сколько было запусков, при которых программа напечатала «NO»?
Попробуйте решить сами:
Нажмите на пару чисел, чтобы отметить её как YES (зелёный) или NO (красный). Повторный клик переключает состояние.
💡 Подсказка: сначала найдите количество «YES», затем вычтите из 10.
s mod 7 = t (остаток от деления s на 7 равен
t)Условие:
s = int(input()) t = int(input()) A = int(input()) if (s >= A) and (t < 1): print('YES') else: print('NO')
Пары входных данных: (–8, –11); (1, –20); (1, –25); (4, –37); (7, 46); (30, –14); (30, –4); (30, 15); (80, –30); (80, –3).
Вопрос: Укажите наименьшее целое значение параметра A, при котором для указанных входных данных программа напечатает «YES» ровно 5 раз.
(s >= A) and (t < 1)| № | s | t | t < 1? | s >= A? |
|---|---|---|---|---|
| 1 | –8 | –11 | ✓ | –8 >= A |
| 2 | 1 | –20 | ✓ | 1 >= A |
| 3 | 1 | –25 | ✓ | 1 >= A |
| 4 | 4 | –37 | ✓ | 4 >= A |
| 5 | 7 | 46 | ✗ | — |
| 6 | 30 | –14 | ✓ | 30 >= A |
| 7 | 30 | –4 | ✓ | 30 >= A |
| 8 | 30 | 15 | ✗ | — |
| 9 | 80 | –30 | ✓ | 80 >= A |
| 10 | 80 | –3 | ✓ | 80 >= A |
Остаток от деления a mod n — это число от 0 до n–1:
Если число делится на n без остатка, то остаток равен 0.
AND (И) — логическое умножение:
OR (ИЛИ) — логическое сложение:
Для решения задач типа 1 удобно составлять таблицу трассировки: