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

Улучшение эргономичности алгоритмов с помощью цепочки эквивалентных преобразований

Когда рисуешь алгоритм, нужно стремиться, чтобы он с самого начала удовлетворял правилам и был эргономичным. А если это не получилось? Если первый блин комом, как на рис. 31а? В этом случае необходимо довести алгоритм до ума с помощью последовательности эквивалентных преобразований. Вообще говоря, в примере на рис. 31а достаточно сделать всего две рокировки (преобразовав обе развилки) и мы сразу получим нужный ответ — искомую эргономичную схему на рис. 31д.

Однако, чтобы сделать изложение более наглядным, лучше избрать другой путь и двигаться к цели мелкими шажками. Для начала используем визуальную формулу на рис. 32 и с ее помощью заменим нижнюю развилку на рис. 31а на икону-вставку “Приведи комнату в порядок”. Результат подстановки представлен на рис. 31б. Затем выполним рокировку и получим схему на рис. 31в. После этого произведем обратную подстановку по формуле на рис. 32 и заменим икону-вставку на раз­вилку “Чернильница разбилась?” Полученная схема показана на рис. 31г. Наконец, делаем еще одну рокировку и приходим к искомой эргономичной схеме на рис. 31д.

Д

Рис. 32.  Пример операции “подстановка”

ля удобства читателя на рис. 33 дана общая сводка эквивалентных преобразований.

В Рис. 33. Эквивалентные преобразования алгоритмов ыводы

1. Понятие эргономичного алгоритма весьма актуально. Применение достижений эргономики к теории алгоритмов позволяет значительно улучшить понимаемость алгоритмов и программ.

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

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

Г Л А В А 8

Визуализация циклов

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

Наталья Завалова, Борис Ломов, Владимир Пономаренко

Обычный цикл

В языке ДРАКОН имеется следующий ассортимент циклов:

  • обычный цикл;

  • переключающий цикл;

  • цикл ДЛЯ;

  • веточный цикл;

  • цикл ЖДАТЬ.

П

Рис. 34.  Цикл ДО

Рис. 35.  Цикл ПОКА

Рис. 36.  Гибридный цикл

ервые четыре цикла рассматриваются в этой главе, цикл ЖДАТЬ — в гл. 11.

р

Рис. 37.  Пример цикла ПОКА

ис. 37

р

Рис. 39.  Досрочный выход из цикла происходит потому, что Карлсон больше не хочет есть (сравни с рис. 37)

Рис. 38.  Пример цикла ДО

ис. 38 и 39

р

Рис. 40.  Досрочный выход из цикла, потому что кончилась краска

Рис. 41.  Досрочный выход из цикла, потому что краска в ведре кончилась. И в сарае краски тоже нет

ис. 40 и 41

р

Рис. 42.  Два досрочных выхода: (1) потому что краска кончилась, (2) потому что ребята позвали играть в футбол

ис. 42

р

Рис. 43.  Как построить цикл в цикле

Рис. 44.  Цикл в цикле. Внутри цикла ПОКА находится цикл ДО (сравни с рис. 37)

ис. 43 и 44

С

Рис. 45.  Четыре варианта конструкции “цикл в цикле”

оставной визуальный оператор “обычный цикл” (рис. 2, макроикона 4) содержит иконы “вопрос” и “петля цикла” (рис. 1, иконы И4, И24). Он охватывает циклы трех типов (рис. 34—36):

  • цикл ДО (do-while),

  • цикл ПОКА (while-do),

  • гибридный цикл (do-while-do).

Примеры циклов ПОКА и ДО приведены на рис. 37, 38. Досрочный выход из цикла показан на рис. 39—42. Конструкция “цикл в цикле” представлена на рис. 43—45.

Анализируя рисунки, можно заметить следующие особенности.

  • Оператор “обычный цикл” имеет один вход и один или несколько выходов.

  • Цикл с одним выходом представляет собой шампур-блок (вход и выход находятся на одной вертикали).

  • Если цикл имеет более одного выхода, основной выход размещается на главной вертикали, дополнительные — правее ее.

  • Петля цикла находится правее главной вертикали и закручена против часовой стрелки.

  • Икона “вопрос” задает условие цикла, которое распадается на две части: условие продолжения и условие окончания (рис. 37).

  • Условие продолжения соответствует правому выходу иконы “вопрос”, условие окончания — нижнему.

  • Условие окончания может помечаться как словом “нет”, так и словом “да”. То же самое относится и к условию продолжения.