Введение: что такое приоритет логических операций
Когда ты решаешь математическое выражение вроде 5 + 3 × 2, то знаешь, что сначала нужно умножить, а потом сложить. Результат — 11, а не 16. Почему? Потому что умножение имеет больший приоритет, чем сложение.
То же самое работает в логике. В логике каждая операция имеет свой приоритет — это определяет, в какой последовательности они будут выполняться в сложном логическом выражении.
Представь выражение: A ИЛИ B И НЕ C. Если не знать приоритетов, можно неправильно вычислить результат. Сначала выполнится отрицание (НЕ C), затем конъюнкция (B И НЕ C), и только потом дизъюнкция (A ИЛИ результат).
Зачем нужны приоритеты?
- Они упрощают запись логических выражений (не нужно ставить кучу скобок)
- Позволяют однозначно интерпретировать формулы
- Используются в программировании, математике, информатике
- Необходимы для решения задач на ЕГЭ и ОГЭ по информатике
Определение приоритета операций и ассоциативности
Приоритет операции — формальное свойство операции, влияющее на очередность её выполнения в выражении с несколькими различными операторами при отсутствии явного (с помощью скобок) указания на порядок их вычисления.
Проще говоря: чем выше приоритет операции, тем раньше она выполняется.
Ассоциативность — это правило, которое определяет порядок выполнения операций одинакового приоритета. Операции в логическом выражении выполняются слева направо с учётом скобок. Операции одного приоритета выполняются слева направо.
Пример:
Выражение A ИЛИ B ИЛИ C вычисляется так: сначала (A ИЛИ B), затем результат ИЛИ C.
Полная таблица приоритетов логических операций
Вот стандартный порядок приоритетов логических операций от высокого к низкому:
| Приоритет | Операция | Обозначения | Название |
|---|---|---|---|
| 1 (высший) | Скобки | ( ) | Группировка выражений |
| 2 | Отрицание | НЕ, NOT, ¬, ! | Инверсия, логическое НЕ |
| 3 | Конъюнкция | И, AND, ∧, & | Логическое умножение |
| 4 | Дизъюнкция | ИЛИ, OR, ∨, | | Логическое сложение |
| 5 | Импликация | →, ⇒ | Логическое следование |
| 6 (низший) | Эквивалентность | ≡, ↔, ~ | Логическое равенство |
Запомни просто: С-О-К-Д-И-Э
Скобки → Отрицание → Конъюнкция → Дизъюнкция → Импликация → Эквивалентность
Основные логические операции и их обозначения
Логические операции используются для работы с высказываниями, которые могут быть истинными (1) или ложными (0).
| Операция | Русское обозначение | Английское | Математическое | Программирование |
|---|---|---|---|---|
| Отрицание | НЕ | NOT | ¬ | !, not |
| Конъюнкция | И | AND | ∧ | &&, and, & |
| Дизъюнкция | ИЛИ | OR | ∨ | ||, or, | |
| Исключающее ИЛИ | XOR | XOR | ⊕ | ^, xor |
| Импликация | ЕСЛИ...ТО | IF...THEN | →, ⇒ | — |
| Эквивалентность | ТОГДА И ТОЛЬКО ТОГДА | IFF | ≡, ↔ | ==, === |
Отрицание (инверсия, НЕ)
Отрицание (инверсия) — это логическая операция, которая делает ложное высказывание истинным, а истинное — ложным.
Обозначения: НЕ A, NOT A, ¬A, !A
Таблица истинности:
| A | НЕ A |
|---|---|
| 0 | 1 |
| 1 | 0 |
Примеры:
- A = «Сегодня идёт дождь» (истина)
- НЕ A = «Сегодня НЕ идёт дождь» (ложь)
Отрицание имеет самый высокий приоритет среди всех логических операций (после скобок), поэтому выполняется первым.
Конъюнкция (логическое умножение, И)
Конъюнкция — сложное высказывание, которое истинно тогда и только тогда, когда оба высказывания одновременно истинны.
Обозначения: A И B, A AND B, A ∧ B, A & B
Таблица истинности:
| A | B | A И B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Запомни: результат истинен, только если оба операнда истинны.
Пример:
- A = «У меня есть учебник» (1)
- B = «У меня есть тетрадь» (1)
- A И B = «У меня есть и учебник, и тетрадь» (1)
Конъюнкция выполняется после отрицания, но до дизъюнкции.
Дизъюнкция (логическое сложение, ИЛИ)
Дизъюнкция двух высказываний — новое высказывание, которое считается истинным, если хотя бы одно из высказываний истинно и ложным, если они оба ложны.
Обозначения: A ИЛИ B, A OR B, A ∨ B, A | B
Таблица истинности:
| A | B | A ИЛИ B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Запомни: результат ложен, только если оба операнда ложны.
Пример:
- A = «Я пойду в кино» (0)
- B = «Я пойду в парк» (1)
- A ИЛИ B = «Я пойду в кино или в парк» (1) — хотя бы одно из действий произойдёт
Дизъюнкция выполняется после конъюнкции, но до импликации.
Импликация (логическое следование)
Импликация связывает два простых логических выражения, из которых первое является условием, а второе — следствием из этого условия. Результат операции следования (импликации) ложен только тогда, когда предпосылка истинна, а заключение (следствие) ложно.
Обозначения: A → B, A ⇒ B, «Если A, то B»
Таблица истинности:
| A | B | A → B |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Запомни: импликация ложна только в одном случае — когда из истины следует ложь.
Пример:
- A = «Идёт дождь» (1)
- B = «Асфальт мокрый» (1)
- A → B = «Если идёт дождь, то асфальт мокрый» (1)
Если A = 1, а B = 0 («Идёт дождь, но асфальт сухой»), то импликация ложна.
Эквивалентность (логическое равенство)
Эквиваленция двух высказываний — новое высказывание, которое считается истинным, если оба высказывания либо одновременно истинны, либо одновременно ложны, и ложным во всех остальных случаях.
Обозначения: A ≡ B, A ↔ B, A ~ B, «A тогда и только тогда, когда B»
Таблица истинности:
| A | B | A ≡ B |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Запомни: результат истинен, когда оба операнда равны (оба 0 или оба 1).
Пример:
- A = «Я сделал уроки» (1)
- B = «Я иду гулять» (1)
- A ≡ B = «Я иду гулять тогда и только тогда, когда сделал уроки» (1)
Эквивалентность имеет самый низкий приоритет среди логических операций.
Исключающее ИЛИ (XOR)
Исключающее ИЛИ (XOR) — операция, которая истинна, когда операнды различны.
Обозначения: A ⊕ B, A XOR B, A ^ B
Таблица истинности:
| A | B | A ⊕ B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Запомни: XOR истинно, когда операнды разные. По сути, это «либо A, либо B, но не оба сразу».
Пример:
- A = «Включен свет» (1)
- B = «Выключен свет» (0)
- A ⊕ B = 1 (именно так и должно быть — свет либо включен, либо выключен)
Обрати внимание: в школьном курсе информатики приоритет XOR обычно равен приоритету дизъюнкции или конъюнкции. В разных языках программирования это может отличаться.
Правила применения приоритетов в выражениях
Когда вычисляешь логическое выражение, следуй этим правилам:
- Сначала выполняй операции в скобках — они имеют наивысший приоритет.
- Затем выполняй отрицание (НЕ) — оно применяется к отдельным переменным или выражениям в скобках.
- Потом конъюнкцию (И) — логическое умножение.
- Дальше дизъюнкцию (ИЛИ) — логическое сложение.
- После этого импликацию (→) — логическое следование.
- В конце эквивалентность (≡) — логическое равенство.
- Операции одного приоритета выполняются слева направо.
Пример:
Вычислим: A ИЛИ НЕ B И C
Порядок действий:
- НЕ B (приоритет 2)
- (НЕ B) И C (приоритет 3)
- A ИЛИ (результат) (приоритет 4)
Со скобками это выглядит так: A ИЛИ ((НЕ B) И C)
Роль скобок в изменении порядка вычислений
Скобки можно использовать для переопределения порядка применения и для принудительного вычисления некоторых частей раньше других.
Скобки — самый приоритетный элемент в логических выражениях. Всё, что находится в скобках, вычисляется в первую очередь.
Без скобок:
A ИЛИ B И C
Порядок: сначала B И C, затем A ИЛИ (результат)
Со скобками:
(A ИЛИ B) И C
Порядок: сначала A ИЛИ B, затем (результат) И C
Результаты будут разными!
Совет: если сомневаешься в порядке вычислений — ставь скобки! Лучше написать выражение понятнее, чем допустить ошибку.
Примеры вычисления логических выражений с разными приоритетами
Пример 1:
Вычислим НЕ A И B ИЛИ C при A = 1, B = 0, C = 1
Порядок действий:
- НЕ A = НЕ 1 = 0
- (НЕ A) И B = 0 И 0 = 0
- (результат) ИЛИ C = 0 ИЛИ 1 = 1
Ответ: 1
Пример 2:
Вычислим A И B ИЛИ НЕ A И C при A = 1, B = 1, C = 0
Порядок действий:
- НЕ A = НЕ 1 = 0
- A И B = 1 И 1 = 1
- (НЕ A) И C = 0 И 0 = 0
- 1 ИЛИ 0 = 1
Ответ: 1
Пример 3:
Вычислим (A ИЛИ B) → (B И C) при A = 0, B = 1, C = 0
Порядок действий:
- A ИЛИ B = 0 ИЛИ 1 = 1
- B И C = 1 И 0 = 0
- 1 → 0 = 0 (импликация ложна, когда из истины следует ложь)
Ответ: 0
Построение таблиц истинности для сложных выражений
Решение логических выражений принято записывать в виде таблиц истинности — таблиц, в которых по действиям показано, какие значения принимает логическое выражение при всех возможных наборах его переменных.
Таблица истинности показывает результат логического выражения для всех возможных комбинаций входных данных.
Если число высказываний в логическом выражении N, то таблица истинности будет содержать 2^N строк, так как существует 2^N различных комбинаций возможных значений аргументов.
Пример:
Построим таблицу истинности для выражения НЕ A И B
| A | B | НЕ A | НЕ A И B |
|---|---|---|---|
| 0 | 0 | 1 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 |
Переменных 2 → количество строк = 2^2 = 4.
Алгоритм построения таблиц истинности
Чтобы построить таблицу истинности, следуй этому алгоритму:
- Определи количество переменных (обозначим N). Количество строк = 2^N.
- Определи количество столбцов: переменные + промежуточные операции + финальный результат.
- Заполни столбцы переменных всеми возможными комбинациями 0 и 1.
- Вычисли промежуточные операции в порядке их приоритета (сначала НЕ, потом И, потом ИЛИ и т.д.).
- Вычисли финальное выражение в последнем столбце.
Пример: построим таблицу истинности для (A ИЛИ B) И НЕ C
Переменных 3 → строк будет 2^3 = 8.
| A | B | C | A ИЛИ B | НЕ C | (A ИЛИ B) И НЕ C |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 | 1 |
| 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 0 |
Примеры задач с решениями (базовый уровень)
Задача 1: Найди значение выражения НЕ A ИЛИ B при A = 1, B = 0.
Решение:
- НЕ A = НЕ 1 = 0
- 0 ИЛИ 0 = 0
Ответ: 0
Задача 2: Вычисли A И B И C при A = 1, B = 1, C = 1.
Решение:
- A И B = 1 И 1 = 1
- 1 И C = 1 И 1 = 1
Ответ: 1
Задача 3: Найди значение A ИЛИ НЕ A при A = 0.
Решение:
- НЕ A = НЕ 0 = 1
- 0 ИЛИ 1 = 1
Ответ: 1 (это всегда истина, независимо от A — закон исключённого третьего)
Примеры задач с решениями (средний уровень)
Задача 1: Вычисли A И НЕ B ИЛИ B И C при A = 1, B = 0, C = 1.
Решение:
- НЕ B = НЕ 0 = 1
- A И НЕ B = 1 И 1 = 1
- B И C = 0 И 1 = 0
- 1 ИЛИ 0 = 1
Ответ: 1
Задача 2: Определи, при каких значениях A и B выражение (A ИЛИ B) И НЕ (A И B) истинно.
Решение: построим таблицу истинности.
| A | B | A ИЛИ B | A И B | НЕ (A И B) | Результат |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 0 |
Ответ: выражение истинно при (A=0, B=1) и (A=1, B=0) — это и есть XOR!
Примеры задач с решениями (продвинутый уровень)
Задача 1: Упрости выражение A И B ИЛИ A И НЕ B.
Решение:
Вынесем A за скобку (дистрибутивный закон):
A И (B ИЛИ НЕ B)
B ИЛИ НЕ B = 1 (всегда истина)
A И 1 = A
Ответ: A
Задача 2: При каком наборе значений (X, Y, Z) выражение (X → Y) И (Y → Z) И НЕ Z истинно?
Решение:
Чтобы всё выражение было истинно, все три части должны быть истинны:
- НЕ Z = 1 → Z = 0
- Y → Z = 1 и Z = 0 → Y должен быть 0 (иначе 1 → 0 = 0)
- X → Y = 1 и Y = 0 → X должен быть 0 (иначе 1 → 0 = 0)
Ответ: X = 0, Y = 0, Z = 0
Приоритет операций в разных языках программирования
В языках программирования логические операции тоже имеют приоритеты, но они могут немного отличаться от классической математической логики.
Общее правило: логические операторы имеют более низкий приоритет, чем арифметические, поэтому выполняются после арифметических действий.
Python
В Python приоритеты логических операций:
- not (отрицание) — самый высокий
- and (конъюнкция)
- or (дизъюнкция) — самый низкий
Пример:
x = True y = False z = True result = x or y and z # Порядок: сначала y and z = False, потом x or False = True print(result) # True
Логические операторы and и or имеют короткое замыкание (short-circuit evaluation). Это означает, что если результат операции уже определён на основе первого операнда, то второй операнд не будет вычисляться.
C/C++
В C/C++ приоритеты логических операций:
- ! (отрицание) — самый высокий
- && (конъюнкция)
- || (дизъюнкция) — самый низкий
Пример:
int a = 1, b = 0, c = 1; int result = a || b && c; // Порядок: b && c = 0, затем a || 0 = 1 // result = 1
Также есть побитовые операции &, |, ^ с другими приоритетами.
Java
В Java приоритеты аналогичны C/C++:
- ! (отрицание)
- && (конъюнкция)
- || (дизъюнкция)
Пример:
boolean a = true; boolean b = false; boolean result = a || b && false; // Порядок: b && false = false, затем a || false = true // result = true
JavaScript
В JavaScript приоритеты логических операторов: ! (НЕ) имеет самый высокий приоритет, && (И) выполняется после всех операций НЕ, || (ИЛИ) имеет самый низкий приоритет среди логических операторов.
Пример:
let x = true; let y = false; let z = true; let result = x || y && z; // Порядок: y && z = false, затем x || false = true console.log(result); // true
Типичные ошибки при работе с приоритетами
Ошибка 1: Путаница между И и ИЛИ
Неправильно: думать, что A ИЛИ B И C = (A ИЛИ B) И C
Правильно: A ИЛИ B И C = A ИЛИ (B И C)
Ошибка 2: Забывание про НЕ
Неправильно: НЕ A И B = НЕ (A И B)
Правильно: НЕ A И B = (НЕ A) И B
Ошибка 3: Игнорирование скобок
При решении задач всегда обращай внимание на скобки — они меняют порядок вычислений!
Частая ошибка на ЕГЭ: неправильное понимание импликации. Помни, что A → B ложна только при A = 1 и B = 0!
Ошибка 4: Неправильное применение законов де Моргана
НЕ (A И B) = НЕ A ИЛИ НЕ B (а не НЕ A И НЕ B)
Связь с законами алгебры логики
Понимание приоритетов помогает правильно применять законы алгебры логики:
Законы де Моргана:
- НЕ (A И B) = НЕ A ИЛИ НЕ B
- НЕ (A ИЛИ B) = НЕ A И НЕ B
Дистрибутивные законы:
- A И (B ИЛИ C) = (A И B) ИЛИ (A И C)
- A ИЛИ (B И C) = (A ИЛИ B) И (A ИЛИ C)
Законы поглощения:
- A ИЛИ (A И B) = A
- A И (A ИЛИ B) = A
Все эти законы работают только при правильном понимании приоритетов операций.
Упрощение логических выражений с учётом приоритетов
Пример 1: Упростим НЕ A И B ИЛИ A И B
Вынесем B за скобки:
B И (НЕ A ИЛИ A)
НЕ A ИЛИ A = 1
B И 1 = B
Ответ: B
Пример 2: Упростим A ИЛИ НЕ (НЕ A И B)
Применим закон де Моргана:
A ИЛИ (НЕ НЕ A ИЛИ НЕ B) = A ИЛИ (A ИЛИ НЕ B)
Свойство идемпотентности: A ИЛИ A = A
A ИЛИ НЕ B
Ответ: A ИЛИ НЕ B
Практические задачи для самопроверки
Задача 1 (лёгкая):
Вычисли НЕ (A И B) при A = 1, B = 0.
Задача 2 (лёгкая):
Найди значение A ИЛИ B И НЕ C при A = 0, B = 1, C = 0.
Задача 3 (средняя):
Построй таблицу истинности для A ⊕ B (исключающее ИЛИ).
Задача 4 (средняя):
Упрости выражение A И НЕ A.
Задача 5 (сложная):
При каких значениях переменных выражение (A → B) И (B → C) И НЕ (A → C) истинно?
Задача 6 (сложная):
Докажи, что (A ИЛИ B) И НЕ (A И B) эквивалентно A ⊕ B.
Ответы для самопроверки:
- Задача 1: 1
- Задача 2: 1
- Задача 3: Построй сам — см. раздел про XOR
- Задача 4: 0 (всегда ложь — закон противоречия)
- Задача 5: Таких значений нет (выражение всегда ложно)
- Задача 6: Построй таблицы истинности для обоих выражений и сравни
Заключение и рекомендации
Приоритет логических операций — фундаментальная тема, которую нужно понимать для успешного решения задач по информатике, математике и программированию.
Главное, что нужно запомнить:
- Порядок приоритетов: Скобки → НЕ → И → ИЛИ → Импликация → Эквивалентность
- Операции одного приоритета выполняются слева направо
- Скобки переопределяют любые приоритеты
- При сомнении — ставь скобки для ясности
- Таблицы истинности — твой лучший инструмент для проверки
Рекомендации для подготовки к экзаменам:
- Выучи таблицы истинности всех основных операций
- Потренируйся строить таблицы истинности для сложных выражений
- Решай задачи разного уровня сложности
- Обрати особое внимание на импликацию — она часто вызывает трудности
- Практикуйся в упрощении логических выражений
Понимание приоритетов логических операций откроет тебе дверь к более сложным темам: булева алгебра, цифровые схемы, алгоритмы, программирование. Это не просто школьная тема — это инструмент мышления, который пригодится тебе в IT-сфере и не только.
Удачи в изучении логики!




