Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги_docv / Паронджанов Как улучшить работу ума.doc
Скачиваний:
337
Добавлен:
21.03.2015
Размер:
15.07 Mб
Скачать

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

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

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

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

Визуальные формулы на рис. 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: Что такое эргономичный текст?

Все в алгоритме понятно и ясно, Если он сделан эргономично. Эргономично — это прекрасно! Эргономично — значит отлично!

Можно ли сделать логические выражения эргономичными?

Одна из основных целей языка ДРАКОН— улучшение понимаемости алгоритмов, программ и технологий. До сих пор мы решали эту задачу методом визуализации, превращая часть текста в эргономичный графи­ческий образ. А как должна выглядеть другая часть текста — та, что неподлежит визуализации и записывается внутри икон? Как изменить эргономические характеристики текстовых надписей на дракон-схемах, чтобы в максимальной степени улучшить их понимаемость?

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

Для обсуждения темы лучше всего подходят формальные идентификаторы и формальные логические выражения. Это значит, что визуальный псевдоязык ДРАКОН-1 для указанной цели не годится, так как его текстовый синтаксис неформальный. По этой причине материал настоящей главы опирается на идеи визуального языка программированияДРАКОН-2, у которого обе части синтаксиса (и визуальная, и текстовая) являются строго формальными. Таким образом, в данной главе мы впервые коснемся вопроса о программировании на языкеДРАКОН. Точ­нее говоря, речь пойдет об одном частном вопросе программирования, касающемся правил записи логических выражений.