(*  На квадратном поле 15 на 15 выложен орнамент из красных плиток. Если в
    каком-нибудь столбце или какой-нибудь строке лежат 2 красные плитки,
    то снять все красные плитки с поля; в противном случае орнамент
    не меняется.
    Для выполнения программы орнамент подготовить самостоятельно.    *)
(* Саша! Обрати внимание!
    В твоем паркетчике не было средсв, чтобы подпрограмма могла вернуть
    или хотя бы сообщить о результатах своей работы.
    Вследствии этого программа долго искала красние плитки,
    хотя подпрограмма ОЧИСТИТЬ уже выполнялась!!!
    Из этого положения можно выходить при помощи
    глобальной переменной (в этом примере "нашел")
*)
цел нашел;
Подпрограмма ОЧИСТИТЬ
цел i,j
{
 нашел:=1;
 Делать от i =1  до 15  {
  Делать от j =1  до 15  {
      Перейти на (i ,j );
      Если (к ) то {Снять плитку; }
}}}

Подпрограмма ИСКАТЬВСТРОКЕ (короб:k,l)
цел i,j,i1
{
Если (не справа стена  ) то {
  Делать от i =k+1  до 15  {
    Перейти на (i ,l );
    Если (к ) то {(* искать 3-ю до конца строки *)
                  Если (не справа стена  ) то {
                          Делать от i1 =i+1  до 15 {
                            Перейти на (i1 ,l );
                            (* при трех плитках ничего не делать *)
                            Если (к ) то  { Возврат; }
                          }
                                               }
                 (* если не нашли 3-ю плитку *)
                 Вызвать ОЧИСТИТЬ;
                 }
}}
}

Подпрограмма ИСКАТЬВСТОЛБЦЕ (короб: k,l)
цел i,j,j1
{
Если (не сверху стена  ) то {
  Делать от j =l+1  до 15  {
   Перейти на (k ,j );
   Если (к ) то {
                 (* искать 3-ю до конца столбца *)
                 Если (не сверху стена  ) то {
                     Делать от  j1 =j+1  до 15  {
                      Перейти на (k ,j1 );
                      Если (к ) то { Возврат; }
                     }
                                              }
                (* если не нашли 3-ю плитку *)
                Вызвать ОЧИСТИТЬ;
                }
}  }
}

Программа 
цел i,j
{
нашел:=0;
Делать от  i=1  до 15  {
Если ( нашел=1 ) то {Покинь; }
      (* поиск  1-й в столбце *)
      Делать от j =1  до 15  {
        Перейти на (i ,j );
        Если (к ) то { Вызвать ИСКАТЬВСТОЛБЦЕ(i,j); Покинь;}
      }
     (* поиск  1-й в строке  *)
      Делать от j =1  до 15  {
        Перейти на (j ,i );
        Если (к ) то { Вызвать ИСКАТЬВСТРОКЕ(j,i); Покинь;}
      }
}
}
