Владимир Паронджанов писал(а):
Я бы хотел Вам возразить не с точки зрения структрности, а с точки зрения проблемы пересечений. Мой тезис такой: Силуэт НЕ обязан превращаться в примитив (без пересечений).
Владимир Даниелович, да ведь проблема пересечений - надуманна.
Она возникает исключительно при отображении алгоритма на плоскость.
И к структурности не имеет прямого отношения.
А структурность - и есть самое главное в алгоритмике.
Цитата:
Примитив с любым числом пересечений можно преобразовать в эквивалентный ему силуэт (путем введения дополнительных переменных)
А вот это как раз совсем не важно.
Более того, даже очевидно.
И практического смысла в этой теореме тоже нет. Важнее анализ с точки зрения эргономики: помогает такое разрезание или, напротив, мешает.
Моё мнение - помогает в редких частных случаях.
В общем случае - скорее мешает, потому что провоцирует (а правил, озвученных выше, никто пока соблюдать не собирается, увы).
albobin писал(а):
А зачем вообще нужно вводить понятие "веточный цикл" и особые иконки для него.
Всё верно. Это просто паллиатив, то есть сомнительная экономия, требующая введения лишних сущностей.
Гораздо правильнее было бы просто поддерживать нормальный фолдинг.
Но фолдинг - это динамика, а Владимир Даниелович до сих пор держится за твёрдую бумажную копию.
Мне кажется, что возникает противоречие между потребностями и представлениями о них.
Для коллегиального обсуждения ответственных (но не особо больших) алгоритмов хороша твёрдая копия.
Но для индивидуальной работы над большим и очень большим проектом - только динамическая компьютерная поддержка. Иначе - труба.
Цитата:
По силуэту мы вправе переходить на любой адрес и всё, а получаются при этом циклы или нет, и пересекаются они или нет - какая разница.
Вот в том-то и дело, что без специальных ограничительных правил - как угодно. И тут вылезут все прелести, от которых тщетно призывал избавиться Дейкстра...
Цитата:
Ведь если взять конечный автомат, то там же состояния чередуются как угодно.
Да, именно.
Но, согласитесь, конечный автомат - весьма частный случай. И, хотя для него "силуэт" без ограничений идеален, для всех прочих применений он плох.
Поэтому я бы предложил чётко разделить эти классы алгоритмов, в том числе по способу их визуального отображения.