если (не справа свободно) или (не слева свободно) или (не сверху свободно)

Закрасить

Все

Идем вверх. Поскольку длина галереи неизвестна, используем цикл пока сверху свободно. В каждой клетке галереи мы должны проверять наличие двух стен – и левой, и правой. Используем команду условия если, применяя сложное условие с логической связкой и: (не справа свободно) и (не слева свободно).

| Идем вверх, проверяя наличие двух стен

Нц пока сверху свободно

Вверх

Если (не справа свободно) и (не слева свободно)

Закрасить

Все

кц

После выполнения цикла пока мы пройдем всю галерею, за исключением верхней клетки, которую обработаем отдельно. У этой клетки уже есть одна стена – верхняя, поэтому для того, чтобы она была закрашена, достаточно хотя бы одной стены – правой или левой.

| Отдельно обрабатываем верхнюю клетку галереи

Если (не справа свободно) или (не слева свободно)

Закрасить

Все

Следует проверить универсальность составленного алгоритма, протестировав его в других условиях среды, удовлетворяющих тексту задания, например:

         
в)   Р    
         
         
г)        
    Р    
         
д)   Р    
         
         
б)        
    Р    
         
         
         
         
         
         
         
а)   Р    
         
         
         
         
         
         
         
         
         

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: