Помощь - Поиск - Пользователи - Календарь
Полная версия: обход массива по спирали
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Maxic$$$@a
              Не в лом, помогите!!!                                                    

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

Код

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- где робот остановится}

Вроде бы так. Впрочем, проверить не мешает.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.