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

Что такое эргономичный текст?

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

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

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

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

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

Пример для исследования эргономичности логических выражений

Итак, мы собираемся найти эргономичный способ записи сложных логических выражений. Чтобы разобраться в сути вопроса, желательно иметь под рукой какой-нибудь пример, на котором мы будем “проигрывать” различные методы улучшения эргономичности.

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

Логический признак, разрешающий (или запрещающий) роботу ехать вперед, имеет идентификатор “Можно.ехать.через.перекресток”. Будем считать, что данный признак принимает значение “да” в трех случаях:

  • горит зеленый сигнал светофора и нет помех движению;

  • желтый сигнал загорелся, когда робот уже выехал на перекресток, и нет помех движению;

  • светофор сломался (нет ни зеленого, ни желтого, ни красного сигнала) и нет помех движению.

В остальных случаях признак имеет значение “нет”, запрещающее роботу движение через перекресток.

Введем обозначения, показанные на рис. 76, которым соответствуют очевидные равенства:

Y = Можно.ехать.через.перекресток (1)

А = Зеленый.сигнал.светофора (2)

В = Желтый.сигнал.светофора (3)

С = Красный.сигнал.светофора (4)

D = Робот.выехал.на.перекресток (5)

Е = Помехи.для.движения (6)

Если принять указанные условия и обозначения, логическая функция Y задается формулой

Y = (A & E)(B & D & E)(A & B & C & E) (7)

Пример, представленный на рис. 75 и 76, позволяет приступить к изучению проблемы. Ниже мы рассмотрим несколько вариантов записи логических выражений и сравним их между собой с эргономической точки зрения. При этом предполагается, что робот имеет пять датчиков, формирующих логические сигналы А, В, С, D, E, которые поступают в бортовой компьютер, управляющий движением робота.