Логічна операція. Основні логічні операції
Інформатика як наука про методики збору, упорядкування та обробки різних даних починає свій розвиток в середині ХХ століття. Хоча деякі історики вважають, що початок формуванню інформатики було покладено ще в 17 столітті, з винаходом першого механічного калькулятора, більшість асоціює її з епохою більш просунутою обчислювальної техніки. У 40-і роки 20 століття, з появою перших комп`ютерів, інформатика отримала новий поштовх у розвитку.
Предмет вивчення інформатики
Саме з появою перших обчислювальних машин з`явилася необхідність у розробці нових методів систематизації, обчислення та обробки великих масивів даних, а також у розробці алгоритмів, які дозволили б використовувати весь потенціал нових комп`ютерів. Інформатика отримала статус самостійної наукової дисципліни і перейшла з площини математичних обчислень до вивчення обчислення в цілому.
Вся сучасна комп`ютерна наука базується на логічних операціях. Їх можна назвати основною складовою. У програмуванні обчислювальних систем поняття логічної операції - це якусь дію, після виконання якого породжується нове поняття або значення, що формується на базі вже наявних понять. Набір подібних дій може варіюватися залежно від процесорного елемента, який повинен виконувати команди. Однак існують деякі операції, які є загальними практично для всіх існуючих систем. Це операції, які працюють з вмістом самих значень, наприклад заперечення, або ті, які змінюють кількісну характеристику поняття, - додавання, віднімання, множення, ділення.
Типи операндів логічних операцій
Оскільки алгебра логіки увазі роботу над абстрактними поняттями, то і в якості операндів всіх логічних операцій виступають узагальнені типи даних. Класичними елементами, з якими працює алгебра висловлювань, є висловлювання, помилкові або істинні. В електроніці і програмуванні для опису цих термінів використовують булевские змінні true і false або ж цілочисельні значення 1 (істина) і 0 (неправда). На комбінації цих значень, як би неймовірно це не звучало, зав`язана робота самих складних і масштабних систем. Весь програмний код, який виконується в комп`ютері або будь-якому цифровому пристрої, динамічно переводиться в послідовність одиниць і нулів - універсальний код, який може бути оброблений будь-яким процесором.
Види логічних операцій
Як було вже сказано раніше, у класичній булевої алгебри існує 2 типу функцій. Основні логічні операції над двійковими типами даних - це дії, що впливають на саме висловлювання (унарна, або одномісна, операція). Сюди ж відносять і операції, що породжують нові висловлювання на підставі існуючих значень (бінарні операції, або двомісні). Порядок логічних операцій такий же, як і при виконанні будь-яких математичних обчислень: зліва направо, з урахуванням дужок.
Найбільш простий і однією з найвідоміших функцій булевої логіки є функція заперечення. Ця найпростіша логічна операція являє собою протилежне значення вхідного операнда. В електроніці це дія ще іноді називається інверсією. Приміром, якщо проинвертировать судження «істина», то результатом буде «брехня». І навпаки - заперечення значення «брехня» дасть в результаті значення «істина». Така логічна операція в програмуванні дуже часто використовується для розгалуження алгоритмів і реалізації «вибору» подальшого набору команд на підставі вже наявних результатів або змінених умов.
Бінарні операції
У програмуванні та інформатики використовується обмежений набір довічних (бінарних) операцій. Вони отримали свою назву від латинського слова bi, що означає «два», і є видом функцій, які приймають на вході два аргументи і в результаті повертають одне нове значення. Для опису всіх функцій булевої алгебри використовуються таблиці істинності.
Для чого вони потрібні
Дана система складається для певної кількості вхідних операндів і описує всі результуючі значення, які може повернути задана логічна операція при зазначеному наборі вхідних параметрів.
Найбільш часто використовуваними функціями в інформатики та обчислювальної техніки є операції логічного додавання (диз`юнкція) і логічного множення (кон`юнкція).
Кон`юнкція
Логічна операція «І» - це функція за вибором найменшого з двох або n вхідних операндів. На вході ця функція може мати два (бінарна функція), три значення (тернарний) або ж необмежену кількість операндів (n-арная операція). При обчисленні результату функції ним стане найменше з наданих вхідних значень.
Аналогом в звичайній алгебрі є функція множення. Тому операція кон`юнкції часто називається логічним множенням. При запису функції знаком виступає або знак множення (точка) або амперсант. Якщо скласти таблицю істинності для цієї функції, то стане видно, що функція приймає значення «істина», або 1, тільки при істинності всіх вхідних операндів. Якщо ж хоча б один із вхідних параметрів буде дорівнює нулю, або значенням «брехня», то результатом функції також буде «брехня».
Це відображає аналогію з арифметичним множенням: множення будь-якого числа і набору чисел на 0 в результаті поверне завжди 0. Ця логічна операція коммутативна: порядок, в якому вона отримує вхідні параметри, ніяк не вплине на кінцевий результат обчислення.
Іншою властивістю цієї функції є асоціативність, або сочетательність. Ця властивість дозволяє при обчисленні послідовності бінарних операцій не враховувати порядок обчислення. Тому для 3 і більше послідовних операцій логічного множення немає необхідності враховувати дужки. У програмуванні ця функція використовується найчастіше для того, щоб переконатися в тому, що специфічні команди виконаються тільки при виконанні сукупності певних умов.
Диз`юнкція
Логічна операція «АБО» - вид булевої функції, який є аналогом алгебраїчного додавання. Інші назви цієї функції - логічне додавання, диз`юнкція. Точно так само, як і операція логічного множення, диз`юнкція може бути бінарною (обчислювати значення на основі двох аргументів), тернарной або n-арной.
Таблиця істинності для даної логічної операції є свого роду альтернативою кон`юнкції. Логічна операція «АБО» обчислює максимальний результат серед наданих аргументів. Диз`юнкція приймає на виході значення «брехня», або 0, тільки якщо всі вхідні параметри надходять зі значеннями 0 («брехня»). У будь-якому іншому випадку на виході буде отримано значення «істина», або 1. Для запису цієї функції найчастіше використовується математичний знак додавання («плюс») або дві вертикальні смуги. Другий варіант поширений в більшості мов програмування і краще, тому що дозволяє чітко відокремити логічну операцію від арифметичній.
Загальні властивості логічних операцій
Основні логічні операції, будь то унарні, бінарні, тернарние або інші функції, підпорядковані певним правилам і властивостями, які описують їх поведінку. Одним з таких фундаментальних властивостей, якими володіють описані вище логічні функції, є коммутативность.
Ця властивість гарантує, що від перестановки місць операндів значення функції не зміниться. Не всі операції мають цю властивість. На відміну від кон`юнкції і диз`юнкції, які задовольняють вимогам коммутативности, функція множення матриць такою не є, і перестановка множників в цій операції спричинить зміну результату, так само як і зведення в ступінь.
Додатковий аспект
Іншою важливою властивістю, яке часто застосовується в електроніці і схемотехніці, є підпорядкованість пар логічних операцій законам де Моргана.
Ці закони пов`язують пари логічних операцій за допомогою функції логічного заперечення, тобто дозволяють виразити одну логічну операцію за допомогою іншої. Приміром, функцію заперечення кон`юнкції можна виразити за допомогою диз`юнкції заперечень окремих операндів. За допомогою цих законів логічні операції "І", "АБО" можуть бути взаімовиражени і реалізовані з мінімальними апаратними витратами. Ця властивість вкрай корисно в схемотехніці, оскільки дозволяє економити ресурси при розрахунку і формуванні мікросхем.