↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Временно не работает,
как войти читайте здесь!
Балтика
вчера в 15:33
Aa Aa
#программируем_с_балтикой

Наконец-то подоспела третья глава! В этой главе вы узнаете, что такое алгебра логики и зачем она нужна.

Для начала необходимо понять что такое высказывание.

Высказывание — это повествовательное предложение, которое можно однозначно назвать истинным или ложным. К примеру, "Солнце — это звезда", "Кошки относятся к млекопитающим" — это правдивые высказывания, а "Собаки не относятся к хордовым" и "Система счисления бывает только позиционной" — ложные. Предложения по типу "Давай займемся программированием!" и "Может быть я научусь плавать" не являются высказываниями, так как первое не повествует, а призывает к действию, а второе содержит долю вероятности и его невозможно назвать правдивым или ложным.

Итак, любое предложение может быть истинным или ложным. У них есть разные обозначения: истина может обозначатся как да, yes, правда, true, 1, +, а ложь как нет, no, false, ложь, 0, -.

Кстати, интересный факт — основателем алгебры логики является Джордж Буль, из-за чего ее еще называют Булевой логикой.

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

Конъюнкция (логическое умножение) — истина может быть только тогда, когда оба высказывания верны. Возможные обозначения: ^, &, and, *, И. Мои любимые: И либо &. Программируя, будем использовать and.

Дизъюнкция (логическое сложение) — истина тогда, когда хотя-бы одно высказывание истинно. Возможные обозначения: V, |, +, ИЛИ, or. На письме легче использовать V либо ИЛИ. В программировании будем использовать or.

Инверсия (логическое отрицание) — делает истинное высказывание ложным и наоборот. Возможные обозначения: НЕ, NOT. В программировании будем использовать NOT.

По терминам можно легко понять, как какая функция работает
По терминам можно легко понять, как какая функция работает. К примеру, возьмем A и B. Предположим, они оба истинны. Тогда, следуя двум первым функциям, мы получим истину. Если же один из них не является истиной, то при логическом умножении мы получим ложь, а при сложении — истину.

Эти функции можно использовать комбинированно. Давайте попробуем.

Есть некоторое выражение: (A И B) ИЛИ (НЕ А).

Для того, чтобы решить это, нужно составить таблицу. Помним, что 0 это нет, т.е. ложь, а 1 — да, т.е. правда. Вписав данные в таблицу, мы сразу же все решим, начиная со скобок (либо начинаем с логического умножения, если нет скобок. Потом — по порядку).

A........B........A И B........НЕ A........A ИЛИ B

0........1........0................1..............1........

1........0........0................0..............0........

0........0........0................1..............1........

1........1........1................0..............1........

В итоге мы получим такую таблицу.


№2 Задание для укрепления материала: решите такие уравнения, построив таблицу:

1) (НЕ А) + (А ИЛИ (А И В)

2) В ИЛИ А И В И (НЕ А)

3) НЕ (А И В ИЛИ А)

№3 Задание повышенной сложности: решите это уравнение с помощью таблицы.

(НЕ А) ИЛИ НЕ (В И С ИЛИ А) И НЕ (В ИЛИ А)

№4 Делаем шпаргалку: сделаем шпаргалку. Напишите таблицы для каждой функции, учитывая все варианты А и В.

Ответы на вопросы вы найдете в комментариях (в № 2 и 3 будут даны только ответы при определенных А и В. Ответы выложу чуть позже публикации поста)


На этом мы закончим алгебру логики. В следующем мы перейдем к одной из самых, как по мне, важных тем - к алгоритмам.
вчера в 15:33
7 комментариев
Такое ощущение, что по учебнику идёт обучение =) Это очень тяжело и нудно. Булева логика - очень специфическая штука и нужна не всем, не всегда и не очень часто. И не в таком виде.
> Конъюнкция (логическое умножение) — истина может быть только тогда, когда оба высказывания верны.
> Дизъюнкция (логическое сложение) — истина тогда, когда хотя-бы одно высказывание истинно.
> Инверсия (логическое отрицание) — делает истинное высказывание ложным и наоборот.

XOR входит в чат.
MonkAlex
Ну вам не интересно, не читайте.
melody of midnight
MonkAlex
Ну вам не интересно, не читайте.
Я программист с опытом, я говорю что такой формат подачи - очень тяжел для восприятия. Булева логика она простая и вполне бытовая, но не так, как её подают учебники.
Например, возьмем высказывания что "у человека есть отец", "у человека есть мать" и построим простые конструкции:
у человека полная семья = есть отец и есть мать. Ключевое - и, т.е. оба условия.
у человека только один родитель = есть отец или есть мать. Ключевое - или.
у человека нет родителей = нет отца и нет матери. Можно заодно пронаблюдать, что отрицание в одной стороне уравнения включает отрицания каждого элемента и это снова "и".

Объяснения через таблицы, через А и Б, через функции - тяжело, имхо.
ПС: впрочем, я соглашусь с вами, лучше не буду читать, чтобы не реагировать и не мешать остальным.
MonkAlex
Я не программист, но эта тема мне интересна, поэтому не могу судить качество подачи информации.
Asteroid Онлайн
Какие унылые тролли нынче пошли...
Вспоминается, как нам пожилой преподаватель в школе объяснял программирование на Паскале через BNF. Для пояснения - это язык описания синтаксиса языков. Полезная штука для анализа и методологического описания языка, но в итоге программировали в классе всего два человека, которые и так уже это умели.
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть