Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ обход массива по спирали

Автор: Maxic$$$@a 20.02.2004 1:35

              Не в лом, помогите!!!                                                    

                                                                           Задание 3
Дан прямоугольник из m*n клеток. Робот начинает  движение из клетки (1, 1) вправо по спирали против часовой стрелки. Напечатать координату клетки, где он остановится.
                                      (Код цикла, задающий движение по спирали???)

Автор: Atos 20.02.2004 15:47

Но здесь вовсе можно без цикла! Рассуждаем логически:

Код

if m=n then
  begin
  n0:=n div 2+1;
  if m mod 2 = 0 then m0:=m div 2  else m0:=m div 2 +1;
  end;
if m>n then
  begin
  n0:= n div 2+1;
  if n mod 2 = 0 then m0:=n div 2 else  m0:=m- n div 2;
  end;
if n>m then
  begin
  m0:= m div 2+1;
  if m mod 2 = 0 then n0:=m div 2 else  n0:=n- m div 2;
  end;    
{в рассуждении, что робот выходит из левого нижнего угла
  m - длина n - высота,  m0 n0- где робот остановится}

Вроде бы так. Впрочем, проверить не мешает.