Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика.Учебное пособие - КузГТУ.pdf
Скачиваний:
227
Добавлен:
10.05.2015
Размер:
5.61 Mб
Скачать

в) мультимедийный вид самостоятельных типов не имеет, однако для представления графических объектов может использоваться тип объектов, а свойства этого вида задаются целыми числами.

Дата и время могут представляться в виде чисел, однако к числовому виду они не относятся. Для них применяется тип даты и времени.

Наряду с названными типами, относящимися к тем или иным видам, существуют также:

логический тип;

тип объектов.

Кроме того, в некоторых языках программирования предусмотрена возможность создания пользовательского типа, а также имеется тип Variant (например, в объектно-ориентированном языке Visual Basic for Applications), совместимый со всеми другими типами.

1.4. Алгебра логики

Алгебра логики (математическая логика или булева алгебра, или алгебра высказываний) используется в информатике для того, чтобы можно было определять истинность или ложность составных высказываний, не вникая в их содержание.

Каждое составное высказывание можно выразить в виде формулы (логического выражения), в которую войдут логические переменные, обозначающие высказывания, и знаки логических операций, обозначающие логические функции. Для записи составных высказываний в виде логических выражений на формальном языке (языке алгебры логики) в составном высказывании нужно выделить простые высказывания и логические связи между ними. Истинность или ложность составных высказываний можно определять чисто формально, руководствуясь законами алгебры высказываний, не обращаясь к смысловому содержанию высказываний.

В алгебре логики (высказываний) суждениям (простым высказываниям) ставятся в соответствие переменные (заглавные буквы латинского алфавита), которые могут принимать только два значе-

ния "истина (true)" (1) и "ложь (false)" (0). Пример: А − "2 × 2 = 4" − истина (1) А = 1

В − "2 × 2 = 5" − ложь (0) В = 0 8

Простые высказывания называются переменными, а сложные −

логическими функциями.

1.4.1. Основные логические операции

Логическое умножение (конъюнкция) – объединение 2-х (или нескольких высказываний) в одно с помощью союза "И". Конъюнкция истинна тогда и только тогда, когда истинны входящие в нее простые высказывания. Обозначения: &, ^, *, and.

Например, F = A&B, F = A^B, F = A × B, F = A and B. Ниже приведена таблица истинности для операции логического умножения.

A

B

F = A and B

0

0

0

0

1

0

1

0

0

1

1

1

Логическое сложение (дизъюнкция) – объединение 2-х (или не-

скольких) высказываний в одно с помощью союза "ИЛИ". Дизъюнкция истинна тогда, когда истинно хотя бы одно из входящих в выражение простых высказываний. Обозначения: v, +, or.

Например, F = A v B, F = A + B, F = A or B. Ниже приведена таблица истинности для операции логического сложения.

A

B

F = A or B

0

0

0

0

1

1

1

0

1

1

1

1

Логическое отрицание (инверсия) – присоединение частицы

"НЕ" к высказыванию. Инверсия делает истинным ложное высказывание, ложным – истинное высказывание. Обозначения: ¬, not.

Например, ¬F = A, F = ¬A, F = not A. Ниже приведена таблица истинности для операции логического отрицания.

A

 

F = not A

0

 

1

1

 

1

 

9

Обычный

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

1) инверсия, 2)

конъюнкция, 3) дизъюнкция.

Значение логической функции для разных сочетаний значений входных переменных или наборов входных переменных обычно задается таблицей истинности. Таблицы истинности для всех логических операций приведены выше.

1.4.2. Свойства операций

Логические операции по свойствам во многом аналогичны привычным математическим, но имеют и свою специфику.

Коммутативность – «от перестановки слагаемых сумма не изменяется»

A and B = B and A A or B = B or A

Идемпотентность

X and X = X X or X = X

Ассоциативность – порядок выполнения операций не важен

(A and B) and C = A and (B and C) (A or B) or C = A or (B or C)

Дистрибутивность – раскрытие скобок

C or (A and B) = (C or A) and (C or B) C and (A or B) = (C and A) or (C and B)

Законы де Моргана (ударение на «о»)

Not (A and B) = (Not A) or (Not B) Not (A or B) = (Not A) and (Not B)

Законы поглощения

A and (A or B) = A A or (A and B) = A

Другие полезные закономерности, в которых фигурируют константы true и false выглядят следующим образом:

A and true = A A or true = true

A and false = false

A or false = A

A and (not A) = false A or (not A) = true

10

Пример: Выполнить некоторое действие с файлом, «если дата его создания T меньше времени L, а если время T больше L, то требуется выполнение дополнительного условия P». Это можно записать так:

T < L or (T > L and P)

Используем дистрибутивность – раскрываем скобки: (T < L or T > L) and (T < L or P)

Первая скобка всегда «истина», а «истина и что-то – равно что-то». Получаем выражение:

T < L or P

Даже в таком простом выражении нам удалось вдвое уменьшить количество операций.

Строго говоря, в алгебре логики рассматриваются не только операции «И», «ИЛИ» и «НЕ». Есть и другие операции, не обладающие всеми перечисленными свойствами. В прикладном программировании же используются преимущественно только эти три операции, а любые другие можно выразить с их помощью.

Пример: «ИСКЛЮЧАЮЩЕЕ ИЛИ (Xor)» можно выразить

так:

A Xor B = (A or B) and (not A or not B)

или

A Xor B = (A and not B) or (B and not A)

1.4.3. Равносильные логические выражения

Логические выражения, у которых таблицы истинности совпадают, называются равносильными (эквивалентными). Обозначение

– знак "=".

Пример: Докажем, что ¬A&¬B = ¬(A v B).

A

B

¬A

¬B

¬A&¬B

AvB

¬(AvB)

0

0

1

1

1

0

1

0

1

1

0

0

1

0

1

0

0

1

0

1

0

1

1

0

0

0

1

0

Таблицы истинности совпадают, следовательно, логические выражения равносильны: ¬A&¬B = ¬(A v B).

Импликация и эквиваленция. В обыденной и научной речи кроме базовых логических связок «И», «ИЛИ», «НЕ», используются и

11

некоторые другие: «ЕСЛИ..., ТО...», «ТОГДА... И ТОЛЬКО ТОГДА, КОГДА...» и др. Некоторые из них имеют свое название и свой символ и им соответствуют определенные логические функции.

Логическое следование (импликация) образуется соединением двух высказываний в одно с помощью оборота речи «ЕСЛИ..., ТО...». Логическая операция импликации «ЕСЛИ А, ТО В», обозначается А ® B. Таблица истинности логической функции импликация приведена ниже.

A

B

А ® B

0

0

1

0

1

1

1

0

0

1

1

1

Составное высказывание, образованное с помощью операции логического следования (импликации), ложно тогда и только тогда, когда из истинной предпосылки (первого высказывания) следует ложный вывод (второе высказывание).

Например:

1)высказывание «Если число делится на 10, то оно делится на 5» истинно, так как истинны и первое высказывание (предпосылка),

ивторое высказывание (вывод);

2)высказывание «Если число делится на 10, то оно делится на 3» ложно, так как из истинной предпосылки делается ложный вывод.

Однако операция логического следования несколько отличается от обычного понимания слова «следует». Если первое высказывание (предпосылка) ложно, то вне зависимости от истинности или ложности второго высказывания (вывода) составное высказывание истинно. Это можно понимать таким образом, что из неверной предпосылки может следовать что угодно.

Валгебре высказываний все логические функции могут быть сведены путем логических преобразований к трем базовым: логическому умножению, логическому сложению и логическому отрицанию.

Докажем с помощью сравнения таблиц истинности, что операция импликации А ® B равносильна логическому выражению

12

¬A v B. Таблица истинности логических выражений ¬A v B и А ® B приведена ниже.

A

B

¬A

¬A v B

А ® B

0

0

1

1

1

0

1

1

1

1

1

0

0

0

0

1

1

0

1

1

Из вышеприведенной таблицы видно, что ¬A v B = А ® B, что и требовалось доказать.

Логическое равенство (эквивалентность) образуется соедине-

нием двух высказываний в одно с помощью оборота речи

«... ТОГДА И ТОЛЬКО ТОГДА, КОГДА...». Логическая операция эквивалентности «А ЭКВИВАЛЕНТНО В» обозначается А ~ В и выражается с помощью логической функции, которая задается соответствующей таблицей истинности.

А

В

А~ В

0

0

1

0

1

0

1

0

0

1

1

1

Составное высказывание, образованное с помощью логической операции эквивалентности, истинно тогда и только тогда, когда оба высказывания одновременно либо ложны, либо истинны.

Рассмотрим, например, два высказывания А = «Компьютер может производить вычисления» и В = «Компьютер включен».

Составное высказывание, полученное с помощью операции эквивалентности, истинно, когда оба высказывания либо истинны, либо ложны.

1)«Компьютер может производить вычисления тогда и только тогда, когда компьютер включен».

2)«Компьютер не может производить вычисления тогда и только тогда, когда компьютер не включен».

Составное высказывание, полученное с помощью операции эквивалентности, ложно, когда одно высказывание истинно, а другое – ложно.

13