Рубрики
ЕГЭ Информатика

7.1. Логические высказывания и действия с ними Высказыванием или суждением называют повествовательное…

7.1. Логические высказывания и действия с ними

Высказыванием или суждением называют повествовательное предложение, в отношении содержания которого можно сказать, что оно истинно или ложно. В более широком смысле под высказыванием понимается выражение не только на разговорном языке, например, на языке математическом или алгоритми­ческом.

Примеры истинных высказываний: «Вода — жидкость», «10 — 3 = 7″и т. п.

Примеры ложных высказываний: «Кошка — насекомое», «3 > 4» и т. п.

В качестве примера высказывания, о котором ничего нельзя сказать о его истин­ности или ложности, можно привести высказывание «Я всегда лгу». Если допус­тить, что оно истинно, то истинно то, что оно утверждает, следовательно, оно ложно. И наоборот, если оно ложно, то ложно его утверждение, следовательно, оно истинно.

Высказывание «Река Нева вытекает из Ладожского озера» всегда истинное. Вы­сказывание «Три больше четырех» всегда ложное. Такие высказывания — кон­станты.

Истинность или ложность высказываний «Дождь идет», «Светит солнце» зависит от конкретной ситуации, месте и времени действия. То же самое можно сказать о высказываниях «х > 5», «x

При решении задач на компьютере высказывания используются в качестве усло­вий, истинность или ложность которых определяет дальнейшую последователь­ность выполняемых действий. Рассмотрим пример.

Пусть в задаче используются числа x, a, b, с и требуется выполнить следующее действие. Если x > 0 = истина, то вычислить с = a + b. Если же х > 0 = ложь, то вычислить с = a — b. Здесь высказывание x > 0 выступает в качестве условия, истинность или ложность которого изменяет ход решения задачи. Для значений X = 5, A = 10, b = 7 имеем с = A + b = 17. В случае если x = -2, то получим с = AB = 3.

Значения «ложь»(False) и «истина»(True) часто заменяют соответственно сло­вами «нет» и «да» (есть), буквами Л и И, а также цифрами 0 и 1 (табл. 7.1). В дальнейшем будем пользоваться в основном двоичным алфавитом: истина — 1, ложь — 0.

Таблица 7.1. Значения логических переменных

Ложь

False

Нет

Л

0

Истина

True

Да (Есть)

И

1

Уже древними философами была замечена важная роль в разговорном языке таких логических связок, как «И», «ИЛИ», отрицания «НЕ» и т. п. Эти связки вы­ступают в качестве логических операций над высказываниями. Одни операции объединяют простые высказывания в сложные. Другие изменяют истинность высказываний. При этом истинность сложных высказываний зависит от истин­ности или ложности входящих в него простых высказываний.

7.2. Логические операции и функции

Набор используемых в алгебре операций называют базисом алгебры. Логиче­ские операции определяют соответствующие логические функции. Базис алгеб­ры логики содержит шесть функций:

□ инверсия (отрицание);

□ конъюнкция (логическое умножение);

□ дизъюнкция (логическое сложение);

□ импликация (операция импликация, следование);

□ эквивалентность (равнозначность);

□ сумма по модулю 2 (неравнозначность, отрицание равнозначности).

Подробное определение перечисленных логических функций с многочисленны­ми примерами дано в предыдущей главе. Кратко напомним особенности их записи и чтения.

Операция отрицание (НЕ) определяет функцию инверсия. Варианты заПИси в булевой алгебре и алгебре логики отрицания переменной Х следующие: Х или ­X. В языках программирования отрицание логической переменной Х записы­вают так: Not X. Читаются такие записи так: «Не Х», «Не верно, что Х».

С помощью связки И выполняется операция логическое умножение, которая оп­ределяет функцию конъюнкция. Варианты записи в булевой алгебре и алгебре логики конъюнкции логических переменных Х и Y следующие: X &Y, XY, XYИ X ∧Y. На языках программирования запись следующая: X And Y. Читаются такие записи так: «X и Y».

С помощью связки ИЛИ выполняется операция логическое сложение, которая определяет функцию дизъюнкция. Логическая сумма двух переменных X и Y за­писывается в булевой алгебре и алгебре логики так: X ∨Y. На алгоритмическом языке запись функции следующая: X Or Y. Читаются такие записи так: «X или Y». Операции импликация (следование) соответствует одноименная функция импли­кация. Знак операции импликации — стрелка (→). В алгебре логики импликация переменных X и Y записывается так: X → Y. В базисЕ булевой алгебры функцию импликации записывают такой формулой: X∨ Y. Можно записать X→Y=X∨Y. Такую запись называют тождеством. Элементы тождества об­ладают свойством равносильности. На алгоритмическом языке запись функции импликация следующая: X Imp Y. Читаются эти записи так: «Импликация от X к Y»или «Если X, то Y». Одно из полезных свойств импликации следующее: X → γ = γ X.

Операция равнозначность определяет логическую функцию эквивалентность. В алгебре логики знак операции равнозначность — двойная стрелка (θ). Функ­ция эквивалентность формулой записывается так: X θ Y.В булевой алгебре функция записывается следующими формулами: XY ∨ XY или XY ∨ X 1 Y.

На алгоритмическом языке запись функции следующая: X Eqv Y. Одно из полез­ных свойств равнозначности таково: X θ Y = (X Y)(Y X) .

Логической операции сумма по модулю 2 соответствует функция неравнознач­ность. Используя функции булевого базиса (дизъюнкцию, конъюнкцию и ин­версию), функцию неравнозначность можно записать так: XYXY . На алго­ритмическом языке функция неравнозначность записывается следующим обра­зом: X Xor Y.

Замечание о записи формул функций

Не все исторически сложившиеся варианты знаков логических операций удобны в использовании, не все приводят к простым и наглядным записям функций. Но с этим приходится мириться, т. к. многие тестовые задания для обучаемых, в том числе и задачи из ЕГЭ, содержат самые разнообразные варианты записи функций.

Например, функция неравнозначность может быть записана в следующих ва­риантах:

□ F1(X, Y) = не X и Y или X и не Y;

□ F2(X, Y) = XYX∧-Y;

□ F3(X, Y) = -X&Y∨X &-Y;

□ F4(X, Y) = XY ∨XY;

□ F5 (X, Y) = (Not (X) And Y) Or (X And not(y));

□ F6 (X, Y) = Not X And Y Or X And Not y;

□ F7(X, Y) = X Xor Y.

Заметим, что это далеко не все варианты записей. Из них наибольшей простотой и наглядностью обладает запись F4. Вариант записи F2используется в задачах по булевой алгебре и алгебре логики в ЕГЭ. Предпоследняя строка вариантов записей получена из предыдущей строки исключением скобок. В них нет необ­ходимости, но они подчеркивали структуру формулы.

Замечание об очередности выполнения операций

Очередность выполнения логических операций: Not, And, Or, Xor и Eqv, Imp. На­помним также, что в сложных выражениях последовательность выполнения операций следующая: арифметические и строковые, отношения, логические.

Все шесть функций алгебры логики сведены в табл. 7.2.

Таблица. 7.2. Таблица функций алгебры логики

Функции (операции)

Разговорный язык

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

Булева алгебра

Бейсик

Инверсия

Не А

А, — А

А, — А

Not А

Конъюнкция

А и В

A B, AB, A &B, A ∙ B

A ∧B, AB, A &B, A ∙ B

A And B

Дизъюнкция

А или В

A ∨B

A ∨B

А Or B

Импликация (следование)

Если А, то В

A → B

А ∨B

А Imp B

Эквивалентность (равнозначность)

А тогда и только тогда, когда В

A О B

AB ∨AB

А Eqv B

Отрицание равнозначно­сти (сумма по модулю 2)

Или А, или В, но не вместе

A О B

AB AB

A Xor B

Логику работы логических функций принято задавать и пояснять таблицами ис­тинности, которые связывают значение функции со значениями ее аргументов. Таблица 7.3 задает таблицу истинности функции инверсия.

Таблица 7.3. Таблица истинности инверсии

X

Not (X)

0

1

1

0

В таблицу истинности (табл. 7.4) сведены все функции алгебры логики. К ним добавлен второй вариант функции импликации — импликация от Y к X.

Таблица 7.4. Таблица истинности функций алгебры логики

X

Y

X

XY

X Y

X→Y

Y→X

XoY

X О Y

0

0

1

0

0

1

1

1

0

0

1

1

0

1

1

0

0

1

1

0

0

0

1

0

1

0

1

1

1

0

1

1

1

1

1

0

7.3. Логические операции

В программировании

Логические операции широко применяются в языках программирования. При записи программ они используются для записи логических условий.

Результаты операций отношения (знаки операций: =, <>, >, <, >=, <=) принимают значение "истина"(True), если условие выполняется, и "ложь"(False), если ус­ловие не выполняется. Отношения можно интерпретировать как простые выска­зывания, которые могут быть истинными или ложными.

При работе с отношениями следует учитывать, что, как правило, имеем дело с тремя альтернативами: больше (>), меньше (<) и равно (=). Например, если (Х > 0) = True, то Not (X > 0) = (Х <= 0) = (X < 0) Or (X = 0) = False.

С помощью логических операций And, Or, Not, Xor, Eqv и Imp из простых отноше­ний можно строить сложные, составные конструкции и использовать их в ка­честве условий, например, в условных операторах (If), операторах цикла (Do…Loop).

Программа, показанная в листинге 7.1, печатает результаты операций отноше­ния величин чисел a, b и с (рис. 7.1).

Листинг 7.1. Результаты отношений (макрос)

Sub Логика_1() ‘Логика_1 Макрос

A = 5:

B

= 3

C = 1

F1 =

A

>b

‘f1 = True

F2 =

A

‘f2 = False

F3 =

A

Or b >c ‘f3 = True

F4 =

A

>b

And Not (b >c) ‘f4 = False

Debug. Print «f1 = «; f1, «f2 = «; f2, «f3 = «; f3, «f4 = «; f4 End Sub

Рис. 7.1. Моделирование результатов отношений

ПРИМЕР 7.1

Пусть условие состоит из двух отношений, из которых может одновременно вы­полняться только одно. Если эти отношения х = а и y >b, то условие можно записать так:

(x = a) And (y < = b) Or (x <>a) And (y >b)

Или так:

((x = a) And Not(y >b)) Or (Not (x = a) And (y >b))

Последняя запись представляет собой функцию неравнозначность (сумму по модулю 2). Более компактно это условие записывается с помощью логического оператора Xor:

(x = a) Xor (y >b)

Заметим, что скобки в формулах примера не обязательны. Но они часто подчер­кивают структуру формул, делают их более наглядными.

ПРИМЕР 7.2

Если условие для отношений из предыдущего примера должно быть истинным, когда оба отношения истинны или оба отношения ложны, то в этом случае удобно воспользоваться оператором Eqv (равнозначность):

(x = a) And (y > b) Or Not (x = a) And (y > b)

(x = a) Eqv (y > b)

ПРИМЕР 7.3

Рассмотрим пример использования сложного логического условия. Пусть требу­ется табулировать функцию, заданную графиком на рис. 7.2. Это можно сделать с помощью программы, показанной в листинге 7.2.

•2-1012 x

Рис. 7.2. График функции

Листинг 7.2. Табуляция функции, заданной рис. 7.2 (макрос)

Sub Логика_2()

‘ Логика_2 Макрос

X = InputBox(«Bβeguτe х»)

X = Val(x)

If x < -2 Or x > -1 And x < 1 Or x > 2 Then y = 0 Else y = 1

‘ Эту же функцию можно задать так:

‘If x > = -2 And x < = -1 Or x > = 1 And x < = 2 Then y = 1 Else y = 0 Debug. Print "При х = "; x, "y = "; y

End Sub

ПРИМЕР 7.4

Заданы не равные нулю длины трех отрезков прямой: a, b, c. Записать логиче­ское условие проверки: можно ли построить треугольник со сторонами a, b, c.

Решение

Известно, что всякая сторона треугольника меньше суммы и больше разности двух других сторон. Поэтому треугольник можно построить, если истинным яв­ляется, например, следующее логическое выражение:

(a + b >c) And (a + c >b) And (b + c >a)

Инверсия этого выражения будет принимать значение «истина» только в случае, если треугольник построить нельзя:

(a + b < = c) Or (a + c < = b) Or (b + c < = a)

Задания для самостоятельной работы

ЗАДАНИЕ 7.1

Заданы стороны треугольника a, b, c. Записать логическое условие проверки:

1. Является ли треугольник равносторонним.

2. Является ли треугольник равнобедренным.

3. Является ли треугольник прямоугольным.

4. Является ли треугольник тупоугольным.

5. Является ли треугольник остроугольным.

ЗАДАНИЕ 7.2

Заданы не равные нулю длины четырех отрезков прямой: a, b, c, d. Записать ло­гическое условие проверки: могут ли эти отрезки быть сторонами квадрата или ромба?

7.4. Логические операции

Над высказываниями

Простые высказывания, в отношении которых можно сказать, что они истинны или ложны, в алгебре логики играют роль логических переменных. Простые вы­сказывания с помощью логических операций связываются в сложные высказы­вания.

Рассмотрим функции алгебры логики применительно к конкретным высказыва­ниям. Обозначим высказывания «Дождь идет» буквой D, «На небе тучи» бук­вой T. Можно записать: D = «Дождь идет» и T = «На небе тучи».

Конъюнкция (логическое умножение)

Сложное высказывание «D И T»понимается в том смысле, что «Дождь идет И На небе тучи». Обозначим это высказывание буквой A. Используя знаки операций булевой алгебры, можно записать: A = D ∙ T. На языке программирования это запишется так: A = D And T.

Дизъюнкция (логическое сложение)

Сложное высказывание «D Или T»читается так: «Дождь идет Или На небе тучи».

Обозначим его буквой B. Можно записать: B = D ∨T и B = D Or T.

Инверсия (отрицание)

Одноместную операцию отрицание можно применить как к простому, так и сложному высказыванию. Высказывание «Не D»читается «Не верно, что Дождь идет» или «Дождь Не Идет». Это записывается формулами так: D или Not D.

Если A = D ∙ T, то под высказыванием «Не A»понимается следующее: «Не вер­но, Что Дождь идет и на небе тучи». Соответственно, их можно записать так: A = D ∙ T или Not A = Not (D And T) = Not D Or Not T. Последнее выражение можно прочитать, например, так: «Дождь не идет или нет на небе туч». К по­следнему выражению приводит применение правила де Моргана (инверсия конъюнкции равна дизъюнкции инверсий).

Импликация (следование)

Операция импликация эквивалентна выражению на разговорном языке «Если D, То T», где D и T — некоторые высказывания. Допустим, что D и T — это те же введенные ранее высказывания: D = «Идет дождь» и T = «На небе тучи». Рас­смотрим функцию D → T.

Напомним, что если D = 1, то дождь идет, если же D = 0, то дождя нет. Анало­гично с тучей на небе. В пятом столбце таблицы истинности (см. табл. 7.4) запи­сано значение функции импликация на всех наборах значений аргументов. По­строчно эту функцию в отношении высказываний D и Т можно интерпретиро­вать так:

□ 1-я строка. 0 → 0 = 1. «Если дождь не идет, то на небе нет тучи» — высказы­вание истинно;

□ 2-я строка. 0 → 1 = 1. «Если дождь не идет, то на небе тучи» — высказывание истинно;

□ 3-я строка. 1 → 0 = 0. «Если дождь идет, то на небе нет тучи» — высказыва­ние ложно;

□ 4-я строка. 1 → 1 = 1. «Если дождь идет, то на небе тучи» — высказывание истинно.

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

Эквивалентность (равнозначность)

В принятых ранее обозначениях (D — дождь, T — тучи) эта функция записыва­ется в булевой алгебре, алгебре логики и на языке программирования следую­щими формулами: C = D ∙ T ∨D ∙ T , C = DО T и с= d Eqv т, т. е. сложное вы­сказывание С истинно в случаях, если простые высказывания D и T оба истинны или оба ложны. Формулу равнозначности в булевой алгебре можно прочитать, например, так: «Идет дождь И На небе тучи Или не Идет дождь И нет На небе туч».

Неравнозначность (сумма по модулю 2)

Эта фуНКция в отношении дождя и туч может быть записана формулой так: D ∙ T ∨D ∙ T, т. е. «Дождь идет и на небе нет туч или дождя нет и на небе ту­чи» — или одно, или другое, но не оба. Неравнозначность — инверсия эквива­лентности. На языке программирования неравнозначность записывается так: С = D Xor т.

7.5. Формализация высказываний

Логические функции и высказывания

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

Конъюнкция: «А и В», «как А, так и В», «не только А, но и В», «А вместе с В», «А, несмотря на В», «А, в то время как В» и т. п.

Дизъюнкция: «А или В», «А, или В, или оба» и т. п.

Если встречается связка «либо», например, «А либо В«, то это означает «или А, или В, но не оба», «только А или только В«, что формализуется формулой A ∙ B ∨A ∙ B, т. е. операцией Xor, которая равна инверсии операции Eqv.

Инверсия: «не А», «неверно, что А», «А не имеет места».

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

Следующие высказывания записываются формулой В → А: «если В, то А», «А, если В», «А тогда, когда В», «для А достаточно В» и т. п.

К импликации приводят выражения, содержащие слова «необходимо» и «достаточно». Например, обозначим А = «пошел дождь», В = «на небе тучи». Рассмотрим высказывание «Чтобы пошел дождь, необходимо наличие на небе туч». Левая часть этого высказывания — посылка, правая — заключение. Правило следующее. Если об утверждении говорится, что оно необходимо, то это утверждение записывается справа от знака импликации, в качестве за­ключения. Формулой это записывается так: А → В. Эту формулу можно про­читать: «Для А необходимо В».

Рассмотрим высказывание «Чтобы пошел дождь, достаточно на небе туч». В нем говорится, что утверждение является достаточным условием. Оно за­писывается слева от знака импликации, формулой В → А и читается «В доста­точно для А». Можно сделать вывод, что необходимые условия записываются в качестве заключения справа, а достаточные условия записываются в фор­муле слева, в качестве посылки.

При решении задач полезно помнить запись импликации в булевой алгебре:

A → B = A B, B A = A B .

Некоторые выражения разговорного языка по форме напоминают имплика­цию, а по содержанию требуют запись в виде конъюнкции. Например: «Если Петр любитель ходить по гостям, то Павел домосед». «Если в планиметрии изучают плоские фигуры, то в стереометрии изучают трехмерные геометри­ческие тела».

Неравнозначность: «А или В, но не оба», «А либо В», «либо А, либо В», либо не А, либо не В».

Эквивалентность (равнозначность): «А эквивалентно В», «А тогда и только тогда, когда В», «А необходимо и достаточно для В». Напомним, что в буле­вой алгебре, алгебре логики и на языке программирования эквивалентность (равнозначность) записывается так:

C = A ∙ B ∨A B , C = A О B, С = A Eqv в.

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

A → B = A B,

А → В = В → А,

(А о В) = (А → В)(В → А) = (A ∨B)(B ∨A) = А ∙ В ∨А ∙ В.

Примеры формализации высказываний

ПРИМЕР 7.5

Введем и обозначим несколько простых высказываний:

A = «Цветок ароматный»;

O = «Цветок осенний»;

В = «Цветок белый»;

P = «Цветок полевой»;

С = «Цветок синий»;

R = «Цветок красный»;

G = «Цветок желтый»;

S = «Цветок садовый»;

K = «Цветок комнатный»;

V = «Цветок весенний»;

L = «Цветок луковичный»;

W = «Цветок крупный»;

M = «Цветок красивый»;

Z = «Цветок загадочный»

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

□ X1= «Цветок белый и ароматный».

XI = B ∙ A, Xl = B And A.

□ X2 = «Цветок садовый или полевой».

X2=S∨P, X2 = S Or P.

□ X3 = «Цветок, хотя и не садовый, но крупный и красивый».

Xз = S W K, X3 = Not S And W And K.

□ X4 = «Цветок желтый, весенний или осенний».

X4=G(V∨O), X4 = G And (V Or O) .

□ X5 = «Цветок полевой или садовый, но некрупный и некрасивый».

X5 =(P ∨ S) ∙W ∙ M, X5 = (P Or S) And Not W And Not M.

□ X6 = «Не верно, что если цветок луковичный, то он полевой или комнат­ный».

X6 =L→(P ∨K), X6 = Not (L Imp (P Or K)) .

□ X7 = «Если цветок весенний, то он красный и не ароматный».

X7 = V → K ∙ A, X7 = V Imp (K And Not A) .

□ X8 = «Цветок осенний и загадочный, если он комнатный или желтый».

X8 = (K ∨G) O Z, X8 = (K Or G) Imp (O And Z) .

□ X9 = «Если цветок садовый, то он должен быть крупным и ароматным, и все это только в случае, если цветок не луковичный».

X9 = L → (S → W ∙ A), X9 = Not L Imp (S Imp W And A).

□ X10= «Чтобы цветок был осенним, необходимо, чтобы он был загадочным».

X10=O→Z, X10 = O Imp Z.

□ X11= «Чтобы цветок не был крупным, достаточно, чтобы он был полевым».

XII = P → W, Х11 = P Imp Not W.

□ X12= «Чтобы цветок был красивым, необходимо и достаточно, чтобы он был комнатным».

X12= M θ∙ K, X12 = M Eqv K.

□ X13= «Чтобы цветок не был луковичным и был синим, необходимо и доста­точно, чтобы он был весенним и не был полевым».

X13 = L ∙ C θ V ∙ P, X13 = Not L And C Eqv V And Not P.

□ X14= «Цветок ароматный тогда и только тогда, когда он садовый и желтый».

X14= A θ∙ S ∙ G, X14 = A Eqv S And G.

Напомним очередность выполнения операций: Not, And, Or, Xor и Eqv, Imp. Для объединения аргументов отдельных функций вводят скобки (см. например, функцию X8). Скобки вводятся в формулы также с целью изменить эту очеред­ность, т. к. сначала выполняются действия в скобках (см. функцию X9). Часто необязательные скобки добавляют, чтобы подчеркнуть структуру формулы, сделать ее более наглядной, обозначить последовательность выполнения опе­раций.

ПРИМЕР 7.6

Рассмотрим решение обратной задачи. Пусть заданы и обозначены простые вы­сказывания и формулы логических функций, содержащих эти простые высказы­вания в качестве логических переменных. Требуется записать заданные логиче­ские формулы словами, содержательными предложениями.

Дано:

Z = «Яблоко зеленое», K = «Яблоко красное», V = «Яблоко вкусное»,

S = «Яблоко сладкое», G = «Яблоко кислое», W = «Яблоко крупное»,

L = «Яблоко мелкое», Т = «Яблоко твердое», М = «Яблоко мягкое».

Y1=KV= K And V

Y8=(M ∨Z)→T =

(M

Or Z)

Imp T

Y2=Z∨M = Z Or M

Y9=KM→(W∨V)

= ]

K And M

Imp W Or V

Y3=WS= W And S

Y10 =Z→(L→T)=

Z

Imp (L

Imp T)

Y4=KGV= K And G And V

Y11=S→K= S Imp

K

Y5= SV = S And Not V

Y12=K→S= K Imp

S

Y6= (Z Or K) And T

Y13= S О K = S Eqv

K

Y7=W →S= Not(W Imp S)

Y14= G О Z = G Eqv

L

And Z

Решение:

□ Y = «Яблоко красное и вкусное»;

□ Y2= «Яблоко зеленое или мягкое»;

□ Y3= «Яблоко не только крупное, но и сладкое»;

□ Y4= «Яблоко красное, хотя и кислое, но вкусное»;

□ Y5= «Яблоко сладкое, но невкусное»;

□ Y6= «Яблоко зеленое или красное, но твердое»;

□ Y7= «Не верно, что если яблоко крупное, то оно сладкое»;

□ Y8= «Если яблоко мелкое или зеленое, то оно твердое»;

□ Y9= «Яблоко крупное или вкусное, если оно красное и мягкое»;

□ Y0= «Если яблоко мелкое, то оно должно быть твердым, и все это только в случае, если яблоко зеленое»;

□ Y1= «Чтобы яблоко было сладким, необходимо, чтобы оно было красным»;

□ Y2= «Чтобы яблоко было сладким, достаточно, чтобы оно было красным»;

□ Y3= «Чтобы яблоко было сладким, необходимо и достаточно, чтобы оно бы­ло красным»;

□ Y4= «Яблоко кислое тогда и только тогда, когда оно мелкое и зеленое».

Для проверки правильности записей иногда полезно рассмотреть таблицу ис­тинности записываемых функций. Например, могут вызвать сомнения функции Y11и Y12. Представим их таблицей истинности 7.5.

Рассмотрим функцию Y11=S→K. Первая строка говорит о том, что несладкое яблоко может быть не красным. Это высказывание истинно. Вторая строка ука­зывает на то, что несладкое яблоко может быть красным. Это высказывание также истинно. Четвертая строка также соответствует истинному высказыва­нию: сладкое яблоко должно быть также и красным. И только третья строка го­ворит, что не может быть, чтобы сладкое яблоко не было красным. Необходимо, чтобы оно было красным. Высказывание «Яблоко сладкое, но не красное» — ложное и противоречит смыслу исходной формулы: «Если яблоко сладкое, то оно красное», «Чтобы яблоко было сладким, необходимо, чтобы оно было красным».

Таблица 7.5. Таблица истинности функций импликация

S

K

S → K

K → S

0

0

1

1

0

1

1

0

1

0

0

1

1

1

1

1

Аналогично рассматривается функция Y12=K→S. Она принимает значение 0 (ложь) только на наборе SK = 01, который соответствует тому, что красное яблоко оказалось несладким. Чтобы яблоко было сладким, достаточно, чтобы оно было красным. Но, как видно из таблицы, сладкое яблоко может быть и не красным. Видим, что требование достаточности менее жесткое, чем требование необходимости.

Задания для самостоятельной работы

ЗАДАНИЕ 7.3

Задано несколько простых высказываний о погоде. Из них составлены сложные высказывания. Записать эти высказывания формулами алгебры логики и на язы­ке программирования.

Простые высказывания:

C = «Идет снег»;

О = «На улице оттепель»;

D = «Идет дождь»;

P = «Небо пасмурное»;

G = «На дорогах гололедица»;

S = «Ветер южный»;

I = «На деревьях иней»;

Т = «Температура плюсовая»

М = «На улице мороз»;

U = «На улице туман».

N = «Ветер северный»;

Сложные высказывания:

□ X1= «На улице мороз, идет снег, но гололедицы нет»;

□ X2 = «На улице оттепель и на деревьях иней или на улице туман»;

□ X3 = «Если северный ветер или идет снег, то на улице мороз»;

□ X4 = «На дорогах нет гололедицы, на деревьях нет инея и на улице нет тума­на, если дует северный ветер при морозе»;

□ X5 = «На улице оттепель или на деревьях иней, если температура плюсовая»;

□ X6 = «Для того чтобы шел дождь или снег, необходимо наличие пасмурного неба»;

□ X7 = «Для появления на деревьях инея достаточно пасмурного неба и отте­пели»;

□ X8 = «Для гололедицы на дорогах необходимо и достаточно наличие плюсо­вой температуры при северном ветре и тумане»;

□ X9 = «Чтобы не было ни снега, ни дождя, необходимо, чтобы небо не было пасмурным»;

□ X10= «На улице туман или на деревьях иней может быть тогда и только то­гда, когда на улице оттепель»;

□ X11= «При южном ветре на улице оттепель только тогда, когда пасмурное небо и плюсовая температура»;

□ X12= «На деревьях иней, на улице туман и на дорогах гололедица тогда, когда дует южный ветер и на улице оттепель».

ЗАДАНИЕ 7.4

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

подпись: программирования.
простые высказывания:
□ b =
подпись: □ j =
подпись: □ r = подпись: □ w =
подпись: □ y7= g ∙w → j ∙ c;
□ y8= c ∙ j θ b ∨l ∨g;
□ y9= e ∙ m θ g ∙w ∙ l;
□ y10 = l ∙ z ∨b ∙ r ∨p ∙ k → c;
□ y11= c θ j;
□ y12 = u → b ∙ p ∙ g-w.

ЗАДАНИЕ 7.5

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

Простые высказывания:

А = «Цветок ароматный»;

P = «Цветок полевой»;

B = «Цветок белый»;

R = «Цветок красный»

C = «Средней величины»;

S = «Цветок астра»;

D = «Цветок домашний»;

Т = «Цветок тюльпан»

G = «Цветок желтый»;

V = «Цветок садовый»

K = «Цветок крупный»;

Z = «Цветок роза».

М = «Цветок мелкий»;

Сложные высказывания:

□ Y = «Цветок крупный, ароматный, полевой или садовый»;

□ Y2= «Цветок крупный или мелкий, белый и не домашний»;

□ Y3= «Если цветок садовый, то он крупный или ароматный»;

□ Y4= «Для того чтобы цветок был ароматным и крупным, необходимо и дос­таточно, чтобы он был домашним или садовым»;

□ Y5= «Чтобы цветок был полевым тюльпаном, необходимо, чтобы он был желтым или красным»;

□ Y6= «Чтобы цветок был крупным или ароматным, достаточно, чтобы он был не астрой, а розой»;

□ Y7= «Не верно, что если цветок полевой, то он ароматный, также не соответ­ствует действительности, что если цветок садовый, то он мелкий»;

□ Y8= «Не верно, что если цветок крупный и белый или желтый и ароматный, то это астра или роза».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *