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

Использование рокировки для улучшения эргономичности

Мы убедились, что рокировка алгоритма на рис. 8а позволила получить алгоритм на рис. 8б, который имеет более высокие эргономические характеристики, так как на рис. 8б соблюдается правило “главный маршрут идет по шампуру”. Это означает, что равносильное преобразо­вание “рокировка” в примере на рис. 8 действительно улучшает эргономичность алгоритма.

Попытаемся обосновать аналогичный вывод для рис. 21, рассмотрев последовательно все промежуточные шаги рассуждений.

На первом шаге выдвигаем гипотезу: для сравнения двух маршрутов на рис. 21а можно использовать признак “лучше—хуже”.

На втором шаге проверяем гипотезу с помощью рассуждений: если брюки впору — это хорошо, если их приходится подворачивать — это плохо. Следовательно, использование в данном алгоритме признака “лучше—хуже” правомерно.

На третьем шаге определяем главный маршрут, который по соглашению соответствует признаку “хорошо”. Следовательно, главный маршрут на рис. 21а идет через правое плечо развилки, что соответствует хорошей ситуации “брюки впору — их не надо подворачивать”.

На четвертом шаге констатируем, что главный маршрут на рис. 21а не идет по шампуру. Делаем вывод: алгоритм на рис. 21а является плохим, неэргономичным, однако его можно исправить с помощью рокировки.

На пятом шаге выполняем рокировку и получаем более эргономичный алгоритм на рис. 21б. На этом процедура заканчивается1.

Рассмотрим теперь более сложный алгоритм на рис. 10а. Этот алгоритм тоже плохой, потому что содержит три плохие (неэргономичные) развилки: 1) “В меню есть твой любимый салат?”, 2) “Борщ очень вкусный?”, 3) “Жаркое, как подошва?”. Последовательно применяя к развилкам три операции “рокировка”, получаем эргономичный алгоритм на рис. 10б.

Таким образом, на основании анализа примеров мы убедились: равносильное преобразование “рокировка” позволяет улучшить эргономичность алгоритмов. Однако этот вывод относится только к смысловым алгоритмам (где можно указать главный маршрут) и неприменим к литеральным алгоритмам (где понятие главного маршрута теряет силу). Отсюда вытекает, что применение рокировки к литеральной схеме на рис. 22 бессмысленно, так как в данном случае рокировка не влияет на эргономичность.

Вертикальное и горизонтальное объединение

Бывает, что в дракон-схемах одинаковые иконы повторяются несколько раз. Например, на рис. 23а икона “Отдай мотоцикл в ремонт и впредь будь умнее” встречается три раза. Это плохо: навязчивые повторения раздражают читателя, которому приходится тратить лишнее время и несколько раз читать одно и то же. К счастью, некоторые повторы можно устранить. Такая возможность появляется, если одинаковые иконы соседствуют друг с другом, причем их выходы соединены между собой (рис. 23а). В этом случае действует правило “повторы запрещены”. Устранение повторов производится с помощью вертикальной линии (рис. 23б) и называется вертикальным объединением. Нетрудно доказать, что операция “вертикальное объединение” осуществляет равносильное преобразование алгоритмов.

Название “объединение” объясняется тем, что несколько одинаковых икон объединяются в одну. Последовательность действий такова: сначала входы этих икон объединяются вертикальной линией, после чего удаляются все одинаковые иконы, кроме крайней левой.

Сравнивая алгоритмы на рис. 23а и б, легко заметить, что схема на рис. 23б обладает более высоким эргономическим качеством: она стала более компактной, ясной и наглядной, поскольку освободилась от бессмысленного повторения икон. Отсюда проистекает вывод: равносильное преобразование “вертикальное объединение” позволяет улучшить эргономичность алгоритмов.

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

Рассмотрим пример на рис. 24а. Сначала с помощью горизонтального объединения устраним повторение иконы “Съешь кашу” и получим схему на рис. 24б. Затем применим вертикальное объединение и исключим повторение развилки “Есть можно?”. Окончательный результат показан на рис. 24в. Полученная схема более удобна и занимает меньше места, чем исходная схема на рис. 24а.

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

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