Евгений Темиргалеев писал(а):
По-моему не всё столь однозначно.
1) Вопрос, что труднее понять: один сложный алгоритм или (по отдельности) два более простых, пусть и больших в сумме по объёму, нежели первый.
Зависит от степени инкапсуляции простого алгоритма.
В данном примере она никакая, потому что тащится (вернее, создаётся искусственно, ради разделения только), куча входов и выходов из "маленького участка". Вместо выигрыша от "простого алгоритма" имеем гораздо более весомый проигрыш от распухшего его интерфейса.
Цитата:
2) Не совсем понятно, как повторение может дать усложнение на порядок, когда это именно повторение. Повторение второй части идёт по стопам первой, уже понятой..
А вот нифига. Ещё доказать надо, что это именно повторение. Причём даже самому себе, в процессе восприятия. Поэтому неизбежны огромные затраты мысленных ресурсов:
- на многократное повторное обозрение, запоминание и сравнение;
- на построение в голове ВСЕЙ модели целиком и безуспешные попытки удержать там же все связи (входы/выходы интерфейса выделенных участков), необходимые для понимания.
Цитата:
Ваши конкретные задачи/алгоритмы мне не известны, т.е. Вам, на месте, т.сказать, виднее.
Вы меня сильно удивляете. Неужели Вы считаете, что общеалгоритмические соображения настолько зависят от задачи?!
Цитата:
Но, по-моему, имеет место аналогия между Вашим стремлением уменьшить размер схемы и избежать повторений, с предпочтением текстовых неструктурных конструкций структурным, которое любят обосновывать тем же --- уменьшением объёма текста и исключением повторений...
А это что? Табу? Ярлык инакомыслия?
Если на одной чаше весов лежит "структурность", а на другой - лишнее повторение, то отнюдь не очевидно, что именно перевесит.
Структурность, имхо, бывает разная:
- та, которая обусловлена неадекватностью представления алгоритма;
- та, которая способствует ясному пониманию и грамотному проектированию.
Не далее как совсем недавно Илья показывал, что топология направленного графа не сильно коррелирует со структурностью линейного текстового языка программирования. В данном случае как раз имеет место первая разновидность "структурности", от которой целесообразно избавляться.
Драконограф писал(а):
В иконе Выбор переменная выбора реально д.б.
...которая хранит тот самый номер, с которого слились на вход переключателя... ну и присвоить этот номер нужно явно при выходе с каждой развилки на слияние.
Упущено самое главное - в задаче НЕ НУЖЕН переключатель. Как и автоматность с флагами и т.п.