Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Как+улучшить+работу+ума.doc
Скачиваний:
24
Добавлен:
29.10.2018
Размер:
8.78 Mб
Скачать

Визуализация функции или

Логическая функция ИЛИ принимает значение “да”, если хотя бы одна логическая переменная имеет значение “да”. Функция принимает значение “нет”, если все логические переменные имеют значение “нет” (рис. 58).

На языке ДРАКОН функцию ИЛИ можно записать двумя способами. Если выбран текстовый способ, рисуют одну икону “вопрос”, содержащую логическое выражение (рис. 59 слева). При визуальном способе используют несколько икон “вопрос”, у которых объединяют нижний выход; в каждой иконе пишут одну логическую переменную (рис. 59 справа). Из рис. 59 и 60 видно, что оба метода эквивалентны.

Визуализация функции не

Функция W =  называется функцией НЕ, если логические переменные Z и W принимают инверсные значения, т. е. удовлетворяют условиям:

если Z = да, то W = нет;

если Z = нет, то W = да.

6

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

Рис. 62

Рис. 63

Рис. 64

Рис. 65

Рис. 66

1-66

6

Рис. 67.  Как нарисовать дракон-схему для сложной логической функции?

7

6

Рис. 68.  Пример сложной функции “И” с логическими отрицаниями

Рис. 69.  Пример сложной логической функции

Рис. 70

Рис. 71

Рис. 72

Рис. 73

8-73

7

Рис. 74.  Сложная логическая задача с простыми вычислениями

4

Визуальные формулы на рис. 61 показывают, что знак логического отрицания можно исключить из дракон-схемы, если поменять местами слова “да” и “нет” на выходах иконы “вопрос” (при этом иконы, находящиеся в плечах развилки, следует оставить на своих местах).

Упражнения на рис. 62—66 помогут читателю закрепить материал.

Визуализация сложных логических функций

Рассмотрим функцию

Х = (A и и C) или (D и E и )

(1)

На рис. 67 показан визуальный способ записи этой функции. Из рисунка видно, что формула (1) разбивается на три части:

1)  А и и С;       2)  D и Е и ;       3)  Операция “или”.

Функция А и и С изображается с помощью трех икон А, В, С, расположенных на одной вертикали. Аналогично рисуют функцию D и Е и . Связка “или” реализуется с помощью линий, объединяющих нижние выходы икон С и F в точке K (рис. 67).

В формуле (1) некоторые члены записаны без логического отрицания (А, В, D, Е), другие — с отрицанием (, ). Члены без отрицания превращаются в иконы А, В, D, Е, у которых нижний выход помечен словом “да”. Членам с отрицанием соответствуют иконы В и F, где нижний выход помечен словом “нет” (рис. 67). Другие примеры алгоритмов, вычисляющих сложные логические функции, представлены на рис. 68—74.

Изложенные соображения позволяют сформулировать две теоремы.

Теорема 1.  Дракон-схему, содержащую логические связки И, ИЛИ, НЕ внутри икон “вопрос”, всегда можно преобразовать в эквивалентную дракон-схему, не содержащую указанных связок.

Теорема 2.  Если некоторый фрагмент дракон-схемы имеет один вход, два выхода и содержит только иконы “вопрос”, причем первый выход вычисляет функцию X, то второй выход вычисляет ее логическое отрицание (рис. 67—73).

Доказательство теорем предоставляем читателю.

ВЫВОДЫ

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

2. В языке ДРАКОН используются визуальные логические выражения, позволяющие при желании полностью исключить логические связки И, ИЛИ, НЕ из условных операторов.

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

Г Л А В А  10