Форум » Выполнение и анализ алгоритмов для исполнителей » [A13] тренировочная работа N3 » Ответить

[A13] тренировочная работа N3

1ро4ка_двадва88: Нужно, чтобы исполнитель попал в клетку, отмеченную серым цветом. Таких клеток 15?

Ответов - 14

oval: программа для проверки

tavabar: 1ро4ка_двадва88 пишет: Таких клеток 15 Скачайте программку и проверьте сами...

1ро4ка_двадва88: Скачал. Неправильно А почему при таком условии клетки F3-F5 не подходят?


1ро4ка_двадва88: Кстати, вопрос к Константину: зачем в вашем конспекте задачи на исполнитель черепашка, склейка букв и лесенка? Это задачи из прошлых лет?

Поляков: 1ро4ка_двадва88 пишет: зачем в вашем конспекте задачи на исполнитель черепашка, склейка букв и лесенка? Они появлялись в сборниках в предыдущие годы.

oval: если зашли во внешний цикл, то оба действия должны выполняться идти вниз или нет зависит от условия, а вправо идем всегда из клеток F3-F5 идем вниз до F6 и потом должны сделать шаг вправо, а там стена в клетке F6 не выполняется условие внешнего цикла(как и в клетках С4, С6, D2, F2) поэтому во внешний цикл мы не заходим, просто стоим на месте

1ро4ка_двадва88: oval пишет: а вправо идем всегда у нас же условие внешнего цикла "снизу свободно или справа свободно". не значит ли это, что после выполнения внутреннего цикла "пока снизу свободно - вниз" мы обрубаем внешний цикл во всех случаях, кроме когда внизу закрыто, а справа открыто?

oval: oval пишет: если зашли во внешний цикл, то оба действия должны выполняться если справа или снизу нет стены то 1 идем вниз пока нет стены 2 идем вправо и только после этого проверяем условие внешнего цикла для клетки С5 справа свободно, заходим во внешний цикл 1 снизу стена, внутренний цикл не работает 2 шаг вправо попали в клетку D5 снизу свободно, заходим во внешний цикл 1 снизу свободно идем в D6 2 шаг вправо попали в клетку E6 справа свободно, заходим во внешний цикл 1 снизу стена, внутренний цикл не работает 2 шаг вправо попали в клетку F6 снизу и справа стена во внешний цикл не заходим, попали на конец программы

1ро4ка_двадва88: oval, насколько я понимаю, это особенности алгоритмического языка? Потому как в паскале программа действовала бы иначе: выделяются два цикла, один из которых вложенный. Вначале открывается внешний цикл, затем сразу открывается вложенный цикл, завершается, и дальше проверяется условие внешнего. Если внизу свободно или справа свободно, то идем вправо ДО УПОРА (или до поломки, если справа закрыто, а внизу есть свободные клетки). А тут почему-то только один шаг вправо

oval: 1ро4ка_двадва88 пишет: А тут почему-то только один шаг вправо потому, что шаг вправо стоит внутри внешнего цикла в паскале это "выглядело" бы так: [pre]while <справа или снизу свободно> do begin while <снизу свободно> do вниз; вправо; end;[/pre]

oval: конец пока в 5ой строчке закрывает пока из 3ей строчки конец пока в 7ой строчке закрывает пока из 2ой строчки я не знаю как еще объяснить подробнее

1ро4ка_двадва88: "конец пока в 5ой строчке закрывает пока из 3ей строчки конец пока в 7ой строчке закрывает пока из 2ой строчки" Это-то я понимаю, но в этом и кроется логическая несостыковка, ибо у нас два цикла, в которых УСЛОВИЕ ЧАСТИЧНО СОВПАДАЕТ, следовательно, прокрутив один из циклов, другой уже не будет воспринимать УСЛОВИЕ истинно, т.к. оно уже пройдено в другом цикле. К конкретике: во внешнем проверяется условие СНИЗУ СВОБОДНО и во внутреннем оно же. Очевидно что, внутренний цикл не будет открываться, если не откроется внешний. Пусть условие внешенго истинно, переходим во внутренний цикл. ПОКА СНИЗУ СВОБОДНО: опускаемся вниз, цикл заканчивается, как результат - внизу стена. Теперь надо посмотреть, а истинно ли до сих пор условие внешнего цикла? А истинно оно лишь в том случае, если справа свободно. Логично, что если условие неверно, то цикл прекращает работу. То что вы хотели сказать, я понял. Цикл не проверяет истинность условия после открытия внутреннего цикла.

oval: 1ро4ка_двадва88 пишет: Теперь надо посмотреть, а истинно ли до сих пор условие внешнего цикла? не теперь, а только после выполнения команды вправо

1ро4ка_двадва88: ясно, спасибо



полная версия страницы