Онлайн книга «Теоретический минимум по Computer Science. Все что нужно программисту и разработчику»
												![]() Рис. 1.4. Логика программиста [7] Для начала мы поэкспериментируем с логическими высказываниями и операторами. Затем научимся решать задачи с таблицами истинности и увидим, как компьютеры опираются на логику. Операторы 
В математике переменные и операторы (+, ×, −, …) используются для моделирования числовых задач. В математической логике переменные и операторы указывают на достоверность. Они выражают не числа, а истинность (true) или ложность (false). Например, достоверность выражения «Если вода в бассейне теплая, то я буду плавать» основывается на достоверности двух вещей, которые можно преобразовать в логические переменные A и B: A: Вода в бассейне теплая. B: Я плаваю. Они либо истинны (true), либо ложны (false)
[8]. A = True обозначает теплую воду в бассейне, B = False обозначает «Я не плаваю». Переменная B не может быть наполовину истинной, потому что я не способен плавать лишь отчасти. Зависимость между переменными обозначается символом
 A
 При помощи других операторов можно выражать другие идеи. Для отрицания идеи используется знак! оператор отрицания.!A противоположно A: !A: Вода в бассейне холодная. !B: Я не плаваю. Противопоставление. Если дано A
 Для любых двух переменных A и B A
 Еще пример: если вы не умеете писать хороший код, значит, вы не прочли эту книгу. Противопоставлением данному суждению является такое: если вы прочли эту книгу, значит, вы умеете писать хороший код. Оба предложения сообщают одно и то же, но по-разному [9]. Двусторонняя условная зависимость. Обратите внимание, что высказывание «Если вода в бассейне теплая, то я буду плавать» не означает: «Я буду плавать только в теплой воде». Данное высказывание ничего не говорит насчет холодных бассейнов. Другими словами, A
 A <—> B: Я буду плавать, если и только если вода в бассейне теплая. Здесь теплая вода в бассейне равнозначна тому, что я буду плавать: знание о воде в бассейне означает знание о том, что я буду плавать, и наоборот. Опять же, остерегайтесь обратной ошибки: никогда не предполагайте, что B
 AND, OR и XOR. Эти логические операторы — самые известные, поскольку они часто записываются в исходном коде в явном виде — AND (И), OR (ИЛИ) и XOR (исключающее ИЛИ). AND возвращает True, если все идеи истинны; OR возвращает True, если любая идея истинна; XOR возвращает True, если идеи взаимоисключающие. Представим вечеринку, где подают водку и вино: A: Вы пили вино.
 B: Вы пили водку.
  | 
										
		![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_016.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_016.jpg]](img/book_covers/092/92372/i_016.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_017.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_017.jpg]](img/book_covers/092/92372/i_017.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_018.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_018.jpg]](img/book_covers/092/92372/i_018.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_019.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_019.jpg]](img/book_covers/092/92372/i_019.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_020.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_020.jpg]](img/book_covers/092/92372/i_020.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_021.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_021.jpg]](img/book_covers/092/92372/i_021.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_022.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_022.jpg]](img/book_covers/092/92372/i_022.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_023.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_023.jpg]](img/book_covers/092/92372/i_023.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_024.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_024.jpg]](img/book_covers/092/92372/i_024.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_025.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_025.jpg]](img/book_covers/092/92372/i_025.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_026.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_026.jpg]](img/book_covers/092/92372/i_026.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_027.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_027.jpg]](img/book_covers/092/92372/i_027.jpg)
![Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_028.jpg] Иллюстрация к книге — Теоретический минимум по Computer Science. Все что нужно программисту и разработчику [i_028.jpg]](img/book_covers/092/92372/i_028.jpg)