ЗдесьВладимир Паронджанов писал(а):
Привожу пример реальной дракон-схемы.
...
http://store.oberoncore.ru/lib/image/drakon/list4.pnghttp://store.oberoncore.ru/lib/image/drakon/list5.pngОбратите внимание на следующее:
...
5. Описание цикла ДЛЯ на листах 4 и 5.
Цикл ДЛЯ занимает три ветки:
…
6. Правило. Если цикл ДЛЯ занимает две или более веток, то цикл ДЛЯ
должен быть обрамлен веточным циклом.
…
Имхо, правило №6 порождает потенциальную опасность непонимания алгоритма.
Об этом уже говорил Геннадий Тышов
Геннадий Тышов писал(а):
При цикле FOR в нескольких ветках, куда передается управление из иконы "Конец FOR" после завершения последней итерации?
Ведь за ней находится икона "Адрес" с передачей управления на ветку с иконой "Начало FOR", т.е. цикл FOR находится внутри веточного цикла.
…
Выход из цикла возможен только по иконе "Вопрос" через заземленную лианы на внешнею ветку и невозможен при завершению всех итераций.
Ниже рисунок, показывающий в упрощённом виде алгоритм, изображённый на листах 4 и 5
Вложение:
a1.png [ 61.99 КБ | Просмотров: 19018 ]
(стрелки к алгоритму не относятся, просто показывают передачу управления)
Если я правильно понял, Владимир Паронджанов в алгоритме хотел показать 1 цикл, расположенный в разных ветках. Но визульно считывается 2 цикла: веточный и вложенный в него цикл FOR.
При этом:
1. Ошибкой является невозможность выхода из цикла по завершению всех итераций.
2. Создаётся впечатление присутствия 2-х циклов (веточный цикл и, вложенный в него, цикл FOR), хотя автор намеревался показать именно 1 цикл.
Ошибку №1 Владимир Паронджанов предложил исправить следующим образом (на рисунке ниже выделено жёлтым цветом)
Владимир Паронджанов писал(а):
...
Ответ...
Геннадий Тышов писал:
Цитата:
В.Д., у меня вопрос.
При цикле FOR в нескольких ветках, куда передается
управление из иконы "Конец FOR" после завершения
последней итерации?
...
2. После иконы "Конец цикла ДЛЯ" вставляется икона вопрос.
3. После окончания цикла ДЛЯ икона вопрос изменяет путь
(выходим направо через да) и входим в икону адрес
"Завершение" и т. д.
4.Не забудьте: Надо заблаговременно инициализировать идентификатор
в иконе вопрос.
Вложение:
a2.png [ 50.96 КБ | Просмотров: 19018 ]
Появляется совершенно лишняя и ненаглядная для цикла FOR проверка.
А ведь Дракон-схема — это эргономичность, наглядность, понимание с первого взгляда.
Ошибка №2 (по крайней мере я это воспринимаю как ошибку) никак не устранена.
Ценность Дракон-схем (опять же, по крайней мере для меня) в том, что человек глядя на неё, практически без знания правил языка Дракон, может правильно понять алгоритм.
Обрамление цикла FOR веточным циклом, имхо, неестественно и путает восприятие.
Например, если ввести две новых иконы и разрешить использовать иконы Цикл FOR в качестве имени ветки и адреса то может получиться схема показанная на рисунке ниже.
Правила для цикла FOR, расположенного в разных ветвях силуэта:
1. Иконы «Адрес в цикле» и «Имя ветки в цикле» могут использоваться только внутри цикла FOR, размещённого на разных ветках силуэта.
2. Икона «Адрес» может передать управление только на начало цикла FOR и никогда во внутрь цикла, а также из цикла FOR наружу.
3. Иконы «Адрес в цикле» может передавать управление только внутри цикла FOR, включая начало цикла FOR.
4. При завершении цикла FOR управление естественным образом передаётся на следующую справа от цикла FOR ветку.
5. Икона "Начало цикла FOR" всегда располагается в шапке силуэта.
Вложение:
a3.png [ 60.38 КБ | Просмотров: 19018 ]
Слова «оператор» в скобках - это пробование на вкус других терминов : )