Составьте алгоритмы, под управлением которых Робот закрасит указанные клетки. Используйте вспомогательный алгоритм. На рисунках а), б), в) показаны три клетчатых поля с отмеченным начальным положением Робота и закрашенными клетками: а) ветвящаяся фигура с тремя вертикальными полосами; б) сужающаяся ступенчатая фигура; в) фигура из нескольких вертикальных и горизонтальных полос.
Общий вспомогательный алгоритм «полоса» закрашивает
использовать Робот
алг полоса(арг цел x, y, n)
нач
нц x раз
вправо
кц
нц y раз
вниз
кц
закрасить
нц n- раз
вправо
закрасить
кц
нц x+n- раз
влево
кц
нц y раз
вверх
кц
кон
Для каждого рисунка запускаем отдельный основной алгоритм ниже. Координаты считаем от начальной клетки Робота:
а)
алг
нач
полоса( , , )
полоса( , , )
полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , )
кон
б)
алг
нач
полоса( , , )
полоса( , , )
полоса( , , )
полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , )
кон
в)
алг
нач
полоса( , , )
полоса( , , ); полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , ); полоса( , , )
полоса( , , ); полоса( , , )
полоса( , , )
кон
В случаях б) и в) Робот начинает во втором столбце поля, а в случае а) — в первом. Поэтому ни один вызов не выводит его за левую границу рисунка.
Три алгоритма с общей подпрограммой «полоса» закрашивают фигуры а), б) и в) по строкам.
