DRAKON.SU https://forum.drakon.su/ |
|
Предложение для улучшения удобства восприятия границ For https://forum.drakon.su/viewtopic.php?f=172&t=6174 |
Страница 1 из 2 |
Автор: | usr345 [ Четверг, 10 Ноябрь, 2011 01:19 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Мне понравилась идея. Гораздо лучше воспринимается. |
Автор: | Ильченко Эдуард [ Четверг, 10 Ноябрь, 2011 01:47 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Да, в данном случае, выглядит лучше. Но если слева будут присоединены иконы, то петля отодвинется и восприятие ухудшится. Причём чем больше выступ влево, тем хуже. К тому же к иконам цикла слева нельзя будет добавить комментарий. Вложение: А что делать вот с такой конструкцией? Вложение: For2.png [ 10.92 КБ | Просмотров: 20762 ] По сообщениям Владимира Паронджанова она часто применяется. |
Автор: | Alexey_Donskoy [ Четверг, 10 Ноябрь, 2011 07:02 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Ильченко Эдуард писал(а): А что делать вот с такой конструкцией? По сообщениям Владимира Паронджанова она часто применяется. Правда? Мне не попадались, а то б давно возмутился таким нарушением! Потому что разрывы внутри цикла, и гарантии последовательного прохождения веток нет. Гораздо хуже, чем goto!А уж про восприятие такого цикла и говорить не стоит... |
Автор: | Владислав Жаринов [ Четверг, 10 Ноябрь, 2011 09:09 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Да всплывало это уже не раз... хотя бы здесь... или здесь... Хотя сам вводил "компромиссное" обозначение для цикла ДЛЯ (одноветочного) в этом примере - но считаю, что правильно выписывать итератор явно в обычном цикле (как Дмитрий_ВБ уточнял здесь, различного типа). Что и сделал здесь. |
Автор: | Ильченко Эдуард [ Четверг, 10 Ноябрь, 2011 09:10 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Alexey_Donskoy писал(а): Ильченко Эдуард писал(а): А что делать вот с такой конструкцией? По сообщениям Владимира Паронджанова она часто применяется. Правда? Мне не попадались, ...Мне тоже не попадались : ), но Владимир Паронджанов писал(а): Драконограф писал(а): Далее, Вы изложили решение - но не аргументацию, почему считаете его [цикл for] нужным. Какова цель? Если сохранить совместимость с ГОСТ на блок-схемы - то ведь шампур-метод идёт дальше ГОСТа... Уважаемый Владислав Жаринов (Драконограф)! Я опираюсь на следующие соображения. ![]() инженеры и комплексники) используют цикл ДЛЯ, в том числе занимающий несколько веток. Я не слышал от них никаких жалоб или замечаний по этому поводу. Они все прекрасно понимают. Это для меня РЕШАЮЩИЙ аргумент. Иными словами, я опираюсь на производственный опыт. На опыт организации работы инженеров и комплексников, разрабатывающих алгоритмы. Именно они, то есть люди, знающие физику процессов (а не программисты) являются авторами алгоритмов. |
Автор: | Владислав Жаринов [ Четверг, 10 Ноябрь, 2011 09:23 ] |
Заголовок сообщения: | Об инженерной записи итераторов |
Ильченко Эдуард писал(а): Да, в данном случае, выглядит лучше. А в дейкстрал (или ЦД внутри ветки) преобразовать у сочинителя никак не получится?.. Но если слева будут присоединены иконы, то петля отодвинется и восприятие ухудшится. Причём чем больше выступ влево, тем хуже. К тому же к иконам цикла слева нельзя будет добавить комментарий. Вложение: For1.png А что делать вот с такой конструкцией? Вложение: For2.png По сообщениям Владимира Паронджанова она часто применяется. ![]() |
Автор: | Владимир Паронджанов [ Четверг, 10 Ноябрь, 2011 10:11 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Хочу пояснить. 1. Эдуард, в описанном случае "Начало цикла ДЛЯ" должно размещаться сразу после иконы "имя ветки". А не в середине, как Вы нарисовали. 2. Зачем нужна конструкция "цикл ДЛЯ в нескольких ветках". Предположим, что цикл длинный и не помещается в одной ветке. Что делать?
б) использовать "цикл ДЛЯ в нескольких ветках". 3. Каждый выбирает по своему вкусу. Никто никому не навязывает "нелюбимые" конструкции. |
Автор: | ==== [ Четверг, 10 Ноябрь, 2011 19:30 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Владимир Паронджанов писал(а): Хочу пояснить. 2. Зачем нужна конструкция "цикл ДЛЯ в нескольких ветках". Предположим, что цикл длинный и не помещается в одной ветке. Что делать? ..... б) использовать "цикл ДЛЯ в нескольких ветках". 3. Каждый выбирает по своему вкусу. Никто никому не навязывает "нелюбимые" конструкции. Есть серьезное ограничение - нельзя лиану присоединять к другой ветке, что может потребоваться в пределах цикла ДЛЯ, в частности на конец цикла. |
Автор: | Владимир Паронджанов [ Четверг, 10 Ноябрь, 2011 20:01 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Уважаемый Геннадий Николаевич! Вы совершенно правы. В этом случае придется отказаться от многоветочного цикла ДЛЯ и использовать другие способы, например, пункт а) |
Автор: | ==== [ Пятница, 11 Ноябрь, 2011 03:41 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
При использовании цикла ДЛЯ в нескольких ветках, необходимо образование так же веточного цикла, что не является является необходимым для алгоритма. Использование лишней для алгоритма логической констукции, создает помеху в восприятии и значительно снижает наглядность дракон-схемы. Эта тема обсуждалась на форуме ранее, начиная от http://forum.oberoncore.ru/viewtopic.php?p=36390#p36390 Цитата: В.Д., у меня вопрос. При цикле FOR в нескольких ветках, куда передается управление из иконы "Конец FOR" после завершения последней итерации? Ведь за ней находится икона "Адрес" с передачей управления на ветку с иконой "Начало FOR", т.е. цикл FOR находится внутри веточного цикла. Нужен ли цикл FOR, ведь работает веточный цикл? Или цикл FOR нужен только для наличия переменной цикла? Выход из цикла возможен только по иконе "Вопрос" через заземленную лианы на внешнею ветку и невозможен при завершению всех итераций. Свободное и произволное толкование правил языка Дракон снижают его ценность до уровня блок-схем по ГОСТу. На форуме уже высказывалось мнение: http://forum.oberoncore.ru/viewtopic.php?p=67116#p67116 Цитата: Бизнес-процессы очень важная и интересная тема в том числе и для меня. Но разве не в том преимущество ДРАКОНа, которое Вы замечательно показали в Ваших книгах, что он позволяет имеющимися средствами формализовать любые процессы самых разных отраслей - от медицины до экономики? Конечно, у всего есть своя специфика. Но это же не повод изобретать для каждой отрасли новые иконы языка ДРАКОН... ДРАКОН-бюджетный процесс, ДРАКОН-бизнес процесс, ДРАКОН-медицина и т. п. Получится сборная солянка. т.е. хотят иметь внятный, строгий и стабильный язык Дракон.
|
Автор: | Ильченко Эдуард [ Пятница, 11 Ноябрь, 2011 11:12 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Геннадий Тышов писал(а): При использовании цикла ДЛЯ в нескольких ветках, необходимо образование так же веточного цикла, что не является является необходимым для алгоритма. Использование лишней для алгоритма логической констукции, создает помеху в восприятии и значительно снижает наглядность дракон-схемы. Этот момент Владимир Паронджанов поправил в той же теме: http://forum.oberoncore.ru/viewtopic.php?p=55684#p55684 Владимир Паронджанов писал(а): Ильченко Эдуард писал(а): Владимир Паронджанов писал(а): Правило 6 следует отменить. Вы вообще отказались от использования цикла FOR, разнося его на разные ветки силуэта, или допускаете использование в каком-то другом варианте? Считаю нужным использовать цикл FOR. В том числе разнося его на разные ветки силуэта. Во избежание недоразумений изложу свою позицию подробно. Красным написано то, что следует удалить. 6. Правило. Если цикл ДЛЯ занимает две или более веток, то цикл ДЛЯ должен быть обрамлен веточным циклом. 6.1. Икона "Начало цикла ДЛЯ" размещается сразу под иконой "имя ветки", обозначающей начало веточного цикла. 6.2. Икона "Конец цикла ДЛЯ" размещается перед иконой "адрес" обозначающей конец веточного цикла. 6.3. В иконе "имя ветки",обозначающей начало веточного цикла, в данном случае написано ДИАЛОГ.НАЧАЛО, 6.4. В иконе "адрес",обозначающей конец веточного цикла, в данном случае написано ДИАЛОГ.КОНЕЦ, 7. Пояснение. Цикл ДЛЯ может быть длинным. Он может не поместиться в одну ветку (и даже в две ветки). В этом случае иконы "Начало цикла ДЛЯ" и "Конец цикла ДЛЯ" могут оказаться в разных ветках (см. пункты 6.1 и 6.2). Красный текст заменяется на следующий: 6. Правило. Цикл ДЛЯ может быть длинным. Он может не поместиться в одной ветке (и даже в двух ветках). В этом случае иконы "Начало цикла ДЛЯ" и "Конец цикла ДЛЯ" могут оказаться в разных ветках. :6.1. Рекомендация. Если цикл ДЛЯ размещается в двух или более ветках, рекомендуется икону "Начало цикла ДЛЯ" размещать сразу под иконой "имя ветки". (чтобы ее можно было легко отыскать взглядом). |
Автор: | Владимир Паронджанов [ Пятница, 11 Ноябрь, 2011 11:33 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Уважаемый Эдуард! Большое спасибо за трудоемкий поиск в "архиве". Подтверждаю, что моя позиция заключается в следующем Цитата: 1. Цикл ДЛЯ может быть длинным. Он может не поместиться
в одной ветке (и даже в двух ветках). В этом случае иконы "Начало цикла ДЛЯ" и "Конец цикла ДЛЯ" могут оказаться в разных ветках силуэта. 2. Если цикл ДЛЯ размещается в двух или более ветках, рекомендуется икону "Начало цикла ДЛЯ" размещать сразу под иконой "имя ветки". (чтобы ее можно было легко отыскать взглядом). |
Автор: | MaximGB [ Пятница, 11 Ноябрь, 2011 22:18 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Ильченко Эдуард писал(а): Да, в данном случае, выглядит лучше. Но если слева будут присоединены иконы, то петля отодвинется и восприятие ухудшится. Причём чем больше выступ влево, тем хуже. К тому же к иконам цикла слева нельзя будет добавить комментарий. Вложение: For1.png Ну я бы не сказал что наглядность тут сильно пострадала, даже с коментарием. Ильченко Эдуард писал(а): А что делать вот с такой конструкцией? Вложение: For2.png По сообщениям Владимира Паронджанова она часто применяется. Тут у меня своё мнение, я такие конструкции не применяю. Межветочный цикл "Для" мегя пугает ![]() "Силует" с правильным межветочным циклом "Для", по-моему, не сильно будет выигрывать перед обычным "шампуром". |
Автор: | Владислав Жаринов [ Суббота, 12 Ноябрь, 2011 09:48 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Согласен. ![]() Вообще циклу ДЛЯ место в языке (визуальном в частности) в двух случаях: * в спецификациях для представления итераторов (если читателям привычно ![]() * в гибридах с языками, имеющими итератор (если опять же привычно не представлять через обычный цикл ![]() То и другое, как я понимаю, может не упрощать и "мозговую проверку"... и эффективность реализации алгоритма. Достаточно опять же взглянуть на упомянутый пример - число величин при переводе сократилось... а логика прояснилась. Также у Острейковского есть замечание (ессно, это не чисто его личный опыт ![]() |
Автор: | Владимир Паронджанов [ Суббота, 12 Ноябрь, 2011 10:59 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
MaximGB писал(а): ... По работе, для общения с зарубежными коллегами я часто использую Дракон-диаграмы, так уж вышло что цикл For я в них практически не применял, а тут вот увидел ситуацию когда он как раз к месту, нарисовал и понял что цикла мои коллеги там не увидят, так как нет явного замыкания. Тогда я иконки конца и начала цикла For замкнул стрелкой с левой стороны, всё равно у нас диаграммы и "шампур" и ветки "силуета" растут вправо и вниз, так что слева место всегда есть. В общем замкнул и для себя понял что так воспринимать цикл гораздо удобнее, поэтому выношу предложение на обсуждение ![]() Уважаемый MaximGB! Я приветствую Ваши эксперименты. И желаю Вам успеха. Сообщайте время от времени, как у Вас дела - прижилась левая стрелка или нет. По Вашему предложению у меня два замечания. 1. Нужна ли сплошная линия? Может, лучше пунктир? 2. Сомневаюсь, что Вам нужна стрелка. Мне кажется, что Вам нужна не стрелка (которая показывает обратную связь цикла), а нечто иное. Что именно? Мне кажется, нужна всего лишь подсказка, что начало цикла и конец цикла имеют связь. Если я прав, то вполне достаточно сплошной (а лучше пунктирной) линии. Стрелка избыточна. А всякая избыточность затемняет. ___________________________________________ Не следует воспринимать мое мнение как нечто категорическое. Наоборот, я считаю. что эксперименты полезны и приветствую их. |
Автор: | ==== [ Суббота, 12 Ноябрь, 2011 18:16 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Цитата: Цикл ДЛЯ может быть длинным. Он может не поместиться в одной ветке (и даже в двух ветках). "Цикл ДЛЯ в N ветках" - в Драконе вероятно это дурной стиль алгоритмизации, адекватнее использовать веточный цикл.
|
Автор: | Владимир Паронджанов [ Воскресенье, 13 Ноябрь, 2011 11:43 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
Геннадий Тышов писал(а): Цитата: Цикл ДЛЯ может быть длинным. Он может не поместиться в одной ветке (и даже в двух ветках). "Цикл ДЛЯ в N ветках" - в Драконе вероятно это дурной стиль алгоритмизации, адекватнее использовать веточный цикл.Уважаемый Геннадий Николаевич! Спасибо за критическое замечание. Я бы ответил так. Цикл ДЛЯ используется как цикл с параметором. В Википедии говорится о цикле со счетчиком. Вот цитата из Википедии Цитата: Цикл со счётчиком Цикл со счётчиком — цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз. В большинстве процедурных языков программирования реализуется оператором for, в котором указывается счётчик (так называемая «переменная цикла»), требуемое количество проходов (или граничное значение счётчика) и, возможно, шаг, с которым изменяется счётчик. Например, в языке Оберон-2 такой цикл имеет вид: FOR v := b TO e BY s DO ... тело цикла END (здесь v — счётчик, b — начальное значение счётчика, e — граничное значение счётчика, s — шаг). Вопрос. В какой иконе писать Цитата: v := b TO e BY s Я считаю, это надо писать в иконе "Начало цикла ДЛЯ". Если принять Вашу точку зрения, это надо писать в иконе "имя ветки". Таким образом, по-вашему получается, что в иконе "имя ветки" надо писать ДВЕ ВЕЩИ: 1. название ветки; 2. имя счётчика v, начальное значение счётчика b , граничное значение счётчика e и шаг s. Я считаю, что две записи в одной иконе - это слишком много. Это слишком громоздко. Это может вызвать путаницу и спровоцировать ошибку. Кроме того. икона "имя ветки" предназначена для записи названия ветки. Она не предназначена для записи дополнительных вещей. Не следует перегружать икону "имя ветки" другими вещами. И тем самым размывать и делать нечетким ее основное назначение. Попытка записать в икону "имя ветки" посторонее содержание нарушает принцип: Цитата: Форма иконы должна ясно указывать на ее функциональное назначение Возникает вопрос. В какой иконе следует писать имя счётчика v, начальное значение счётчика b , граничное значение счётчика e и шаг s? На этот вопроос есть четкий ответ. В иконе "Начало цикла ДЛЯ" |
Автор: | ==== [ Воскресенье, 13 Ноябрь, 2011 14:52 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
На форуме давно критикуют использование цикла FOR. Info21, Заголовок сообщения: Долой цикл FOR (?), Среда, 04 Март, 2009 12:34 - http://forum.oberoncore.ru/viewtopic.php?p=25129#p25129 Владимир Даниелович, нет проблем, посмотрите. |
Автор: | Владислав Жаринов [ Понедельник, 14 Ноябрь, 2011 09:14 ] |
Заголовок сообщения: | Re: Предложение для улучшения удобства восприятия границ For |
А можно и так, как здесь: http://drakonografika.narod.ru/images/G ... r-DR_2.png Веточный цикл - такой же ДЛЯ, но записанный обычным образом. Условие находится там, где и положено - в развилке цикла... ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |