Логические операции
И · ИЛИ · НЕ
Это понятие впервые встречается на программе «Электроника, программирование и инженерная практика» — примерно 13-14 лет (7-8 класс).
Действия над ответами «да/нет»: И — верны оба сразу, ИЛИ — хотя бы один, НЕ — переворачивает ответ на противоположный.
Двери: И — две двери друг за другом, пройдёшь, только если открыты обе; ИЛИ — две двери рядом, хватит одной открытой.
Собрать в Scratch условие «⟨клавиша пробел нажата?⟩ И ⟨касается края?⟩» и назвать два случая, когда оно даёт «нет».
Операции над значениями «истина/ложь»: И (AND) даёт истину, только когда истинны оба операнда; ИЛИ (OR) — когда истинен хотя бы один; НЕ (NOT) меняет значение на противоположное. Каждая операция описывается таблицей истинности — результатами для всех комбинаций. Ими соединяют простые проверки в сложные условия программ.
Заполнить таблицы истинности для И, ИЛИ и НЕ; предсказать ответ выражения (5 > 3) И НЕ (2 = 2), затем проверить его блоками Scratch.
Булева алгебра: операции над {ложь; истина} — конъюнкция (И, &&), дизъюнкция (ИЛИ, ||), отрицание (НЕ, !), исключающее ИЛИ (XOR). Законы де Моргана: НЕ(A И B) = НЕ A ИЛИ НЕ B. В большинстве языков вычисление сокращённое (short-circuit): в A && B второй операнд не вычисляется, если A ложно. Аппаратная реализация — логические вентили, из которых собран процессор.
Упростить по закону де Моргана условие !(x > 5 && y > 5) в скетче Arduino и показать таблицей истинности, что оба варианта совпадают; составить таблицу для XOR.
Частое заблуждение
«ИЛИ означает: либо одно, либо другое». Нет: логическое ИЛИ истинно и тогда, когда оба условия верны сразу; строгое «либо-либо» — отдельная операция, исключающее ИЛИ.