Введение: что такое приоритет логических операций

Когда ты решаешь математическое выражение вроде 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 обычно равен приоритету дизъюнкции или конъюнкции. В разных языках программирования это может отличаться.

Правила применения приоритетов в выражениях

Когда вычисляешь логическое выражение, следуй этим правилам:

  1. Сначала выполняй операции в скобках — они имеют наивысший приоритет.
  2. Затем выполняй отрицание (НЕ) — оно применяется к отдельным переменным или выражениям в скобках.
  3. Потом конъюнкцию (И) — логическое умножение.
  4. Дальше дизъюнкцию (ИЛИ) — логическое сложение.
  5. После этого импликацию (→) — логическое следование.
  6. В конце эквивалентность (≡) — логическое равенство.
  7. Операции одного приоритета выполняются слева направо.

Пример:

Вычислим: A ИЛИ НЕ B И C

Порядок действий:

  1. НЕ B (приоритет 2)
  2. (НЕ B) И C (приоритет 3)
  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

Порядок действий:

  1. НЕ A = НЕ 1 = 0
  2. (НЕ A) И B = 0 И 0 = 0
  3. (результат) ИЛИ C = 0 ИЛИ 1 = 1

Ответ: 1

Пример 2:

Вычислим A И B ИЛИ НЕ A И C при A = 1, B = 1, C = 0

Порядок действий:

  1. НЕ A = НЕ 1 = 0
  2. A И B = 1 И 1 = 1
  3. (НЕ A) И C = 0 И 0 = 0
  4. 1 ИЛИ 0 = 1

Ответ: 1

Пример 3:

Вычислим (A ИЛИ B) → (B И C) при A = 0, B = 1, C = 0

Порядок действий:

  1. A ИЛИ B = 0 ИЛИ 1 = 1
  2. B И C = 1 И 0 = 0
  3. 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.

Алгоритм построения таблиц истинности

Чтобы построить таблицу истинности, следуй этому алгоритму:

  1. Определи количество переменных (обозначим N). Количество строк = 2^N.
  2. Определи количество столбцов: переменные + промежуточные операции + финальный результат.
  3. Заполни столбцы переменных всеми возможными комбинациями 0 и 1.
  4. Вычисли промежуточные операции в порядке их приоритета (сначала НЕ, потом И, потом ИЛИ и т.д.).
  5. Вычисли финальное выражение в последнем столбце.

Пример: построим таблицу истинности для (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.

Решение:

  1. НЕ A = НЕ 1 = 0
  2. 0 ИЛИ 0 = 0

Ответ: 0

Задача 2: Вычисли A И B И C при A = 1, B = 1, C = 1.

Решение:

  1. A И B = 1 И 1 = 1
  2. 1 И C = 1 И 1 = 1

Ответ: 1

Задача 3: Найди значение A ИЛИ НЕ A при A = 0.

Решение:

  1. НЕ A = НЕ 0 = 1
  2. 0 ИЛИ 1 = 1

Ответ: 1 (это всегда истина, независимо от A — закон исключённого третьего)

Примеры задач с решениями (средний уровень)

Задача 1: Вычисли A И НЕ B ИЛИ B И C при A = 1, B = 0, C = 1.

Решение:

  1. НЕ B = НЕ 0 = 1
  2. A И НЕ B = 1 И 1 = 1
  3. B И C = 0 И 1 = 0
  4. 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 приоритеты логических операций:

  1. not (отрицание) — самый высокий
  2. and (конъюнкция)
  3. 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++ приоритеты логических операций:

  1. ! (отрицание) — самый высокий
  2. && (конъюнкция)
  3. || (дизъюнкция) — самый низкий

Пример:

int a = 1, b = 0, c = 1;
int result = a || b && c;
// Порядок: b && c = 0, затем a || 0 = 1
// result = 1

Также есть побитовые операции &, |, ^ с другими приоритетами.

Java

В Java приоритеты аналогичны C/C++:

  1. ! (отрицание)
  2. && (конъюнкция)
  3. || (дизъюнкция)

Пример:

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: Построй таблицы истинности для обоих выражений и сравни

Заключение и рекомендации

Приоритет логических операций — фундаментальная тема, которую нужно понимать для успешного решения задач по информатике, математике и программированию.

Главное, что нужно запомнить:

  1. Порядок приоритетов: Скобки → НЕ → И → ИЛИ → Импликация → Эквивалентность
  2. Операции одного приоритета выполняются слева направо
  3. Скобки переопределяют любые приоритеты
  4. При сомнении — ставь скобки для ясности
  5. Таблицы истинности — твой лучший инструмент для проверки

Рекомендации для подготовки к экзаменам:

  • Выучи таблицы истинности всех основных операций
  • Потренируйся строить таблицы истинности для сложных выражений
  • Решай задачи разного уровня сложности
  • Обрати особое внимание на импликацию — она часто вызывает трудности
  • Практикуйся в упрощении логических выражений

Понимание приоритетов логических операций откроет тебе дверь к более сложным темам: булева алгебра, цифровые схемы, алгоритмы, программирование. Это не просто школьная тема — это инструмент мышления, который пригодится тебе в IT-сфере и не только.

Удачи в изучении логики!